Swift and iOS dev with Igor
The ride of the iOS developer

Portfolio

Most of my work is covered under NDA, but there are few things I can show here.

All iOS apps support Dynamic Type and Dark mode.

Hole Fill

Hole Fill was a take home assignment that I've used to present ultra-modular design of decoupled composable components. For explanation see this blog post.

The goal of this task is to build a small image processing library that fills holes in images, along with a small command line utility that uses that library, and answer a few questions.


fill-hole terminal command showing help in case of incorrect input.



Top-level view of modules and dependencies.



Detailed view with components.


CIFilterBrowser

Core Image, SwiftUI, Combine

Core Image is Apple's framework for image processing and analysis. It's great and performant but not very friendly, especially for Swift programmers.

One of the framework's pillars is CIFilter image filter. There are 230 filters in 21 categories - one filter could belong to multiple categories. Filters have different customisation options, but API is “Stringly typed” and that is Objective-C’s legacy we have to live with.

I've made an app CIFilterBrowser to make it easier to get into CIFilter details.


CIFilterBrowser main screen view options: list and grid, switched with menu.



CIFilterBrowser: search filters (names, categories, descriptions), change image for main view, apply filter by category (selection of multiple categories is allowed).



CIFilterBrowser: CIFilter detail view with controls to tweak filter parameters.



Coming soon to App Store.


Where to start

For initial dive in into the CIFilter world I highly recommend An Introduction to Core Image · objc.io by Warren Moore and Processing an Image Using Built-in Filters in Apple Developer Documentation.


Mobility

My own Chart Library, SwiftUI, Combine

An app for the Apple Mobility Index



Mobility Index Bar Chart, Country list and search (by country, region/ sub-region or city).



Mobility Index Calculation Options, country selection by bar.



Country mobility line charts: raw data and 7 days moving average.


Covid-19 Observer

My own Chart Library, MapKit, Core Data, UIKit, SwiftUI, Combine.


Covid-19 Observer: global overview, charts with floating legend.



Covid-19 Observer: map and color settings.



Covid-19 Observer: country data, chart with point inspector.



Data by John Hopkins University.



MAXimatica

SwiftUI, Combine

Pre-school math (Russian only).


MAXImatica: onboarding and mission selection.



MAXImatica: results and history.