Tech Stack

Having worked on various projects, my experiences are quite broad (within the iOS platform). These are some of my experiences, skills and interests - overall, we can call it my tech stack.

Itโ€™s pretty obvious, but my language of choice is, of course, Swift ๐Ÿงก

๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป Software

Well, I guess these things are pretty fundamental to any iOS developer, but I get along well with:

  • macOS
  • Xcode & its additional tools
  • Terminal
  • and a lots of other tools that help make my work more effective ๐Ÿ˜Ž

๐Ÿ•น๏ธ Version control

Is anyone using anything other than git nowadays? ๐Ÿ˜… Iโ€™m also pretty familiar with rebasing and keeping a clean history.

๐Ÿ“ฑ User Interface

Currently, I mainly use SwiftUI, but I still have a lot of experience with UIKit - especially in the programmatic form (using Stevia framework)

Iโ€™m quite aware that we all need to know UIKit as well as thereโ€™s still a lot that SwiftUI doesnโ€™t cover ๐Ÿฅฒ

โณ Asynchronous programming

Glad to be able to use the nicely readable Swift concurrency (async/await), but also have broad experience with reactive frameworks - worked for years with RxSwift and then with Combine (mostly before the Swift concurrency came).

๐Ÿ› Architectures

Have participated in introducing of own architecture (in SYNETECH) based on the clean architecture with modular presentation modules mainly inspired by VIPER. The architecture was quite robust, as the intention was to have one architecture for all types of projects that weโ€™ve worked on in the company.

Have described the advantages of the clean architecture in the mobile apps environment in the article Example usage of the clean architecture.

Used the Swinject framework for dependency injection ๐Ÿ’‰, but also have tried (and probably liked more) a more lighterweight framework Resolver.

๐ŸŒ Networking

Used to work mainly with Alamofire, but lately have been using the URLSession more.

For analysis and debugging I use tools like Postman and Proxyman.

๐Ÿช App Store

Have quite some experience with app signing and release process. Also worked with in-app purchases, but I wouldnโ€™t call myself an expert in that area.

๐Ÿ‘ท๐Ÿผโ€โ™‚๏ธ Code management

  • use Tuist to manage Xcode projects
  • Swift packages for dependency management (previously worked with CocoaPods)
  • have some experience with CI/CD (on GitLab and GitHub)

๐Ÿง™๐Ÿผโ€โ™‚๏ธ Augmented reality

Iโ€™m very interested in augmented reality (the ARKit and RealityKit frameworks in the context of Apple) and already have experience with several AR projects.

You can find a few examples of my work with augmented reality in the References: AppParade AR zone, Festival Svobody or R&D project SYNEVision