Apple introduces CoreML − Machine Learning Framework

On June 2017 in an opening keynote of WWDC in California, Apple introduced CoreML − machine learning framework that is designed to help developer build amazing user experiences.

Two main parts of this framework are Vision and NLP (Natural Language Processing).

Vision allows you to integrate machine learning features into your applications, like:  face tracking, face detection, landmarks, text detection, rectangle detection, barcode detection, object tracking, and image registration.

Where is NLP focused on: language identification, tokenization, lemmatization, part of speech, and named entity recognition.

This is a very big step forward for a developers. Giving this set of tools and API's will allow us in the next 5 months build and bring new category of applications into customers smartphones by the time new iPhone 8 (?) and iOS11 will be delivered by Apple.

Just as an example, imagine an application, that will allow you to point your camera onto a dog, flower, tree, piece of furniture, etc and get full information about it: name, breed, classification, price and so much more.

Considering this exciting news I've created example application and custom Image Recognizer class written in Swift that takes user provided picture, process it and returns name of the object and confidence number (from 0-100%). See example screenshot below.

apple coreml vision application exampleFull github example of the working application project can be found here.

1,969 total views, 2 views today

How to increment build number on every “Build” you perform in xCode Project

These are 5 steps that will allow you fully automate process of incrementing a build number in xCode project:

  1. Open your xCode project and go to Target Settings -> Build Settings -> Switch to show ALL settings
  2. Scroll down to Versioning tab and find option called Curent Project Version. Double click on it's value and set it to be the number of build you want increment to start from.
    Set Curent Project Version in xCode
  3. Now switch to Build Phases tab
  4. Click on + icon and select "New run script phase"
    Build Phases
  5. Click on newly created run script and copy next code snipped:


    "${DEVELOPER_BIN_DIR}/agvtool" next-version -all

    Auto increment build bumber xCode script

You all set! Now press command + B to build your application and see your Build Number automatically increments.
So what happens, is that on every build you perform xCode will execute terminal command that will instruct agvtool to increment your build number.

Happy coding!

1,607 total views, 1 views today

2016 in one post

January 17th 2016:

Detroit International Auto Show


January 30th 2016:

Moved out of my first rental house


Fabruary 2nd 2016:vMacklemore show (pic from Thrift shop song)


Fabruary 12nd 2016:

Visited Chicago for a weekend


Fabruary 28th 2016:

Moved to a new rental house, painted 2 rooms


March 19th 2016:

Partied at "Irish on Ionia" in Grand Rapids City for St. Patrick's Day


April 22nd 2016:

Went to see Queen Kwong show in Ferndale


June 29th 2016:

Cedar Point with my parents for my 28th Birthday


July 15th 2016:

Partied at Faster Horses Country Music Festival with Mike, Dale and Nick at the Michigan International Speedway in-field.


July 29th 2016:

Saw MM and Slipknot at DTE Music Theater


August 3rd 2016:

Saw Coldplay at Palace


August 20th 2016:

Woodward Dream Cruise and picture 1st camaro ever build


August 30th 2016:

Saw Blink-182 at DTE Music Theater


September 2nd to 5th 2016:

Vocation started! Explored San Francisco, California!


September 5th 2016:

Took a selfie like I'm a Macbook pro at Yosemite Valley, Cali


September 6th 2016:

Hiked Congress Trail to see Giant Sequias in Giant Sequias National Park, Cali.

Left that place speachless.


September 7th 2016:

Checkout Walk of Fame in Los Angeles. Took picture with a most famous star in the world.

Also, I hate traffic in that city.


September 8th 2016:

Surfed at Venice Beach for the first time in my life.

Hangover training like a pro:


September 9th 2016:

Saw the most beutiful sunset in my live over Pacific ocean in San Diego


September 28th 2016:

Attended Relient K and Switchfoot show at The Fillmore, Detroit


October 8th 2016:

Stole a sign with Mike and Dale at Polish festival "Pulaski days" in Grand Rapids


October 31st 2016:

Cosplayed Negan from The Wolking Dead for Halloween party at work


November 5th 2016:

Bought myself a cowboy hat and a boots in Nashville, Tennessee. Was initiated into hilbilly.





A photo posted by Eugene Pavlov (@hey_ep) on



November 24th 2016:

Went to upper peninsulla and: rode a four-wheeler, tracktor, shoot a gun, went on a deer hunt and become a real hillbilly in general. Awesome time.




I think I know what I'm gonna do when I'm retired 😆

A video posted by Eugene Pavlov (@hey_ep) on



December 13th 2016:

Visited Red Wings game at Joe Luise Arena. Farewell season.




Red Wings evening at Joe Luis Arena with Interns. #Detroit #Michigan #hockey #joeluisarena #redwings #ussr

A photo posted by Eugene Pavlov (@hey_ep) on



December 31st 2016:

On a Times Square in New York to celebrate New 2017.


Happy New Year!

A video posted by Eugene Pavlov (@hey_ep) on


2016 was alright. I traveled a lot, I visited a lot of good shows, met new friends, lost old ones. I shoot a gun for the first time, I bought myself a freaking COWBOY BOOTS! What a year!

But here is what I believe. 2017 will be sooo much better, it will be full of good surprizes and great happenings. I know that.

To all of you, Happy New 2017 Year! What a time to be alive!

1,454 total views, no views today

App: Watch Recorder — One Tap Audio Capturing


I've been an owner of an Apple Watch for almost a year now. Until recently, I never thought about using it as a audio recorder, in fact I never even actually though it's possible. But then I got this idea of how cool if would be to have a full portable recorder on your wrist. Kind of like almost being a spy (always dream of being one). At first I even wanted to call my app as "Watch Spy Recorder," but then I decided to stick with just Watch Recorder.

1. Research

First thing you do when you got an app idea — you research. Sure enough there are plenty of apps that can record audio from your Apple Watch microphone, but big ammount of them are not working (I assume due to watchOS 2.2 update, which simply broke audio recording), so there is a good market for an app with a good user interface and good sharing capabilities. Let's do this!

2. Bussines plan

Application is distributed for free, but will include in-app purchase of Premium version with extended capabilities. See screenshot below for differences between Free and Premium vesions of an application:


3. Making an Apple Watch app

Main part of an application is going to be an Apple Watch extension. Without actual physical Apple Watch device, connected iPhone app is not going to function (unless Watch was previously connected and some audio recorded).

Main screen of application is consist of timer that's shows time of previous recordin, settings labels that shows user what currect audio settings he has and four action buttons around it: record, settings, info and list of recordings. "Play" button will appear once user record an audio. Nice feature that user can use, is actually option to hide action buttons in the settings, but still have access to them using Force Touch.

Watch Recorder – main screen
Watch Recorder – hidden action buttons
Watch Recorder – Force Touch action buttons

Continue reading App: Watch Recorder — One Tap Audio Capturing

3,000 total views, no views today

How to easy document your swift code with Jazzy

This is quick and very basic guide on how to install and use awesome open-source project called Jazzy that may help you to create html, Apple-style like documentation for your code.

Before even proceeding to installation make sure you document your code appropriate, for example:

     Function to get formatted time
     - parameter interval: NSTimeInterval value
     - returns: NSString of formatted time
    func stringFromTimeInterval(interval:NSTimeInterval) -> NSString {
        let ti = NSInteger(interval)
        let ms = Int((interval % 1) * 1000)
        let seconds = ti % 60
        let minutes = (ti / 60) % 60
        let hours = (ti / 3600)
        return NSString(format: "%0.2d:%0.2d:%0.2d.%0.3d",hours,minutes,seconds,ms)

So, if you have done a good job of documenting your code you probably thinking on how to export all your commenting into HTML pages?

Well, there is very simple way:

  1. Open terminal (cmnd+space)
  2. Run next command: sudo gem install jazzy
  3. Enter your user password and wait till it's done installing files
  4. Navigate to your project folder, with command cd, for example: cd [your-folder]/ [sub-folder]/ [your-project-folder]
  5. Run command: jazzy
  6. Profit!

By default jazzy only documents public declarations. So, if running just jazzy command does not produce any meaningful documentation, expand it with next:

jazzy --min-acl internal
jazzy --min-acl private

Produced html pages can be found in your project /docs folder and will look something like this:


Hope this basic step-by-step helps!


Swift Documentation


1,906 total views, no views today

App: Simple Magic Ball


It's been not so long time ago due to not being American I discovered a fortune-telling toy called Magic 8-Ball. Nothing special, just a plastic ball with a special shaped 20-sided object inside called Icosahedron floating in colored alcohol. Each side of it contains an answer: 10 positive, 5 neutral and 5 negative. Workflow of using it is next: ask a question, shake a ball and get one of the answers shown to you. Fascinating.

magic-8-ball magic-8-ball-answer

1. Research

So, I got this "cool" idea of creating an mobile app for it. Well I thought it was cool, until I actually decided to research a bit and see if there any other applications that already in a market. And sure there where many of them. So I decided to install bunch of them and see how they work. And this was the point I got really excited: none of the applications where working the way I expected them to work. Major flaws are basically overcomplicated functionality: to many taps and to much animation involved before user actually get an answer. I basically wanted to delete them all after I tried to play for a minute. And this is where I saw some opportunity.

I asked myself a question: why such a simple game is being so much complicated on a user interface? Why can't I as a user just shake my phone and get and answer, shake it again and yet get a new answer almost instantly – the same way actual Magic Ball works? And I decided to make actually a Simple Magic Ball.

Simple first app as a iOS developer, simple user interface, simple yet beautiful animation and happy users in the end.


Continue reading App: Simple Magic Ball

3,283 total views, no views today

Fullscreen activityIndicator with Swift 2.3

fullscreen activityIndicator with semi-transparent background
fullscreen activityIndicator with semi-transparent background

Here is a code snippet for those who have been looking for simple solution on how to make fullscreen activityIndicator with Swift.

First, inside of yourt UIViewController create variable to hold activityIndicator:

var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()

Then add this two methods to start and stop activityIndicator when your application required:

    func startActivityIndicator() {
        let screenSize: CGRect = UIScreen.mainScreen().bounds
        activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 50, 50))
        activityIndicator.frame = CGRectMake(0, 0, screenSize.width, screenSize.height) =
        activityIndicator.hidesWhenStopped = true
        activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.White
        // Change background color and alpha channel here
        activityIndicator.backgroundColor = UIColor.blackColor()
        activityIndicator.clipsToBounds = true
        activityIndicator.alpha = 0.5
    func stopActivityIndicator() {

Hope it helps!

3,143 total views, no views today

Hello, mobile dev!

Welcome to a new “Mobile Dev” category! It’s going to be a hub of development work that I’ve been doing lately on iOS, WatchOS and tvOS platforms.

First of all: whats my angle? I’ve been doing web-development for about 8 years now. Thru all that time I’ve been telling myself not to ignore trends and to stay up-to-date developer: learn new programming languages and platforms. Couple of times I’ve tried (more below), but I never got a chance to deep-dive in it they way I always wanted. Time have come. Time for a changes.

Let me tell you how it’s all started. Back in the 2011 I bought my first iPhone 4 – and I must say I felt in love with it. Although, I was never a macOS user, my interest in iOS development started right about that time. Since I didn’t own any Mac computer I investigated my options and found tool called Adobe Flash Builder 4.5 and programming language Action Script. This wasn’t native development, but I decided to try.

My first app was targeting both iOS and Android platforms and was essentially an Hours Tracking tool that was talking to a web-service on one of my company servers: managing login/logout, fetching and saving data in the server MSSQL database. In that time I thought it looked cool (thanks for design from my friend and co-worker Hugo Tavares) and had a good amount of functionality, but as of it wasn’t app written in Objective-C it was a little slow and glitchy. I actually tried to run it couple of weeks ago in present 2016 on an Android phone and I was able to successfully login, although had some issues with saving data back to the server due to DB changes I wasn’t aware of. Here are couple of screenshots of an app:

hours_tracking_1 hours_tracking_2

I also had a shot of developing for Windows Phone 7 at that time and I even documented it in this very blog: First try programming for Windows Phone 7. In that blog post I was hoping that this app is not going to be my last app for Windows Phone, which is sadly was:

After that short endeavor my research and mobile dev learning process stopped. I think it was multiply reasons: got really busy with web-development at work, didn’t had mac computer or windows phone…excuses, excuses…I can make up many.

Gladly, here I’m again. Now in 2016 starting this new blog category, hoping to write more and develop even more. Right now, my main target is Apple products, in specific: Apple Watch, Apple TV, iPhone and iPad.

This time I didn’t come for this journey unprepared. Got all the equipment I need: got all the devices for testing, including access to new Apple TV box, got mac for development and even got theoretical and practical base. Speaking of which, I bought couple (3 to be exact) of online courses on Udemy (iOS, watchOS and tvOS) and been doing a lot of learning and trying for the past month or so.

More to it, I’m actually on the way to publish couple of apps to an App Store soon. Will they be approved or not, I will make sure that I take my time to write a couple of blog posts here to describe them and the process of development.

Stay tuned!

1,600 total views, no views today

блог о жизни в США, авто, мотоциклах, путешествиях, программироваю, музыке и всяких разных штуках