Senior iOS Developer · Prague

Miroslav
Tourek

Eight years building iOS apps — 18 shipped for Heureka, ŠKODA AUTO, Tesco and Patria Finance. The sole iOS developer on most projects; for the last nearly five years the iOS guarantor at Heureka: Swift 6, Kotlin Multiplatform and CI/CD with build time cut from 14 to 3 minutes.

Looking for iOS roles in Prague or remote, including Kotlin Multiplatform projects.

  • 8years in iOS
  • 18apps shipped
  • 10projects as the sole iOS developer

Selected projects.

Apps I worked on as an iOS developer at Heureka Group, adastra.one and Unicorn a.s.

Heureka.cz app icon Heureka.sk app icon

E-commerce · Heureka Group

Heureka.cz & Heureka.sk

08/2021 – 05/2026 · CLEAN, MVI + FlowController

Nearly 5 years of iOS development of price-comparison and shopping-advice apps for the Czech and Slovak markets — over 55,000 e-shops and millions of products to compare and buy. One of two in-house iOS developers, working alongside 2–3 agency developers. We moved most features to Kotlin Multiplatform — the domain and data layers and part of the view models are shared, while the UI stayed native in SwiftUI, UIKit and Jetpack Compose. I connected iOS to the shared layer, rewrote parts into shared Kotlin and contributed to the Android UI. I led the Swift 6 and strict concurrency migration. I took over iOS CI/CD and the build server, rebuilt them several times and cut the build time from 14 to 3 minutes. One codebase produces four apps — two markets, two platforms.

  • Swift 6
  • SwiftUI
  • UIKit
  • Swift Concurrency
  • Combine
  • KMP
  • Jetpack Compose
  • Koin
  • Ktor
  • Apollo/GraphQL
  • Factory
  • SPM
  • Firebase
  • XCTest
Radio Kiss app icon Radio Beat app icon Radio 1 app icon SPIN RADIO app icon Country Radio app icon Signál Rádio app icon

Media · MEDIA CLUB

Radio Kiss, Beat, Radio 1, Spin, Country and Signál

11/2019 – 03/2020 · Coordinator + MVVM

Apps for six commercial radio stations — live streaming, news, programme schedule and presenter profiles. After an analysis I rewrote the inherited codebase from scratch so that it produces all six apps, each with its own brand, content and part of the features. I delivered all six within five months, alongside other projects. I was the sole iOS developer on the project, working with a designer and a backend developer.

  • Swift 5
  • UIKit
  • AVAudioRecorder
  • Alamofire
  • Firebase
  • CocoaPods
  • TestFlight
  • XCTest
ŠKODA logo

Automotive · ŠKODA AUTO

ŠKODA Portable Check-In

10/2018 – 04/2019 · Coordinator + MVVM

An interactive multi-page form for handing a car over from a ŠKODA AUTO dealer to the customer — photo documentation, vehicle data loaded by VIN and on-screen signatures of both parties. I delivered four apps — FULL and LITE editions in versions 2.2 and 3. The apps also worked offline, because there was often no connection at the handover location. I was the sole iOS developer on the project. The apps are no longer distributed.

  • Swift 4/5
  • UIKit
  • Alamofire
  • XCTest
Patria Finance app icon

Fintech · Patria Finance

Patria MobileTrader

10/2018 – 04/2019 · Coordinator + MVVM

Trading app for Patria Finance clients — portfolio, security details and charts, order entry, price alerts and transaction history. I was the sole iOS developer on the project, working with the product owner.

  • Swift 4/5
  • UIKit
  • Alamofire
  • XCTest
Travel FREE CZ app icon

Retail · Travel FREE

Travel FREE CZ

10/2018 – 04/2019 · Coordinator + MVVM

Loyalty app for Travel FREE stores — a digital CLUBCARD with collected points and coupons, blocking and replacing the card right from the phone, a product range overview and a store map with opening hours and contacts. As the sole iOS developer I maintained and developed the app, working with the product owner.

  • Swift 4/5
  • UIKit
  • Alamofire
  • Firebase
  • CocoaPods
  • XCTest
Český florbal app icon

Sport · T-Mobile CZ

Český florbal

10/2019 – 07/2021 · Coordinator + MVVM

The official app of Czech floorball — results, schedules and statistics from all league and cup competitions of the union including the national teams, profiles of teams, players and referees, and videos from ceskyflorbal.tv. As the sole iOS developer I maintained the app and added new features, working with a designer and a backend developer. Thanks to CoreData, results and statistics are available offline. Signed-in users pick favourite competitions, teams and players and get push notifications for them. The version I worked on is no longer distributed.

  • Swift 5
  • UIKit
  • CoreData
  • Alamofire
  • Firebase
  • Fastlane
  • AppCenter
  • XCTest
Tesco logo

E-commerce · Tesco Malaysia

Tesco Online Malaysia

05/2019 – 07/2021 · MVC

Tesco's customer app for the Malaysian market — grocery shopping with category browsing, filtered search, favourite products and promotions, plus booking home delivery or in-store pickup slots and editing orders until the cut-off. As the sole iOS developer I maintained the inherited Objective-C codebase with XIB-based UI, added new features and shipped every release — continuously throughout my time at adastra, alongside other projects. I worked with a designer and a backend developer. The app is no longer distributed.

  • Objective-C
  • UIKit
  • AFNetworking
  • JWT
  • RNCryptor
  • Pulse
  • Firebase
  • CocoaPods
  • AppCenter
  • XCTest
Tesco Lotus Thailand app icon

E-commerce · Tesco Lotus

Tesco Lotus Thailand

05/2019 – 07/2021 · MVC

A sister app to Tesco Malaysia, built for the Thai market — the same shopping model from catalogue to delivery-slot booking, but its own codebase. The two apps shared a technology base, not code. Sign-in was done by scanning a barcode; the cart and payment ran in a web view. As the sole iOS developer I maintained the inherited Objective-C codebase with XIB-based UI, added new features and shipped every release — continuously throughout my time at adastra, alongside other projects. I worked with a designer and a backend developer. The app is no longer distributed.

  • Objective-C
  • UIKit
  • AFNetworking
  • JWT
  • RNCryptor
  • CocoaPods
  • Firebase
  • AppCenter
  • XCTest
Tesco logo

Internal tool · Tesco

Tesco ATC

10/2018 – 04/2019 · Coordinator + MVVM

Internal app for Tesco store employees — scheduled shifts and attendance status of the signed-in employee. Localized into four languages for Poland, Czechia, Slovakia and Hungary and distributed via an Enterprise certificate outside the App Store. I was the sole iOS developer on the project, working with the product owner.

  • Swift 4/5
  • UIKit
  • Alamofire
  • Firebase
  • CocoaPods
  • XCTest
BidX1 logo

PropTech · BidX1 Technology

BidX1

09/2019 – 11/2019 · MVVM

MVP of a digital real-estate marketplace — online auctions and listing management sorted by region: South Africa, Ireland, the United Kingdom and Cyprus. I was the sole iOS developer on the project, working with a designer and a backend developer. The owner decided never to release the app to production.

  • Swift 5
  • Combine
  • Moya
  • XCTest

Transport · Freelance

Public transport app

04/2018 – 09/2018 · MVVM

MVP for tracking Prague public transport — the nearest departures from the five closest stops, with the location taken from the Apple Watch. The watch part showed departures from the nearest or a selected stop. I did both the visual design and the implementation; the backend supplied data from publicly available sources. Because the data was hard to obtain, the project stayed on the shelf.

  • Swift 4
  • watchOS
  • UIKit
  • URLSession
  • Firebase
  • XCTest

Experience.

  1. 06/2026 → present

    iOS Developer · Own apps

    Prague

    I'm building several of my own apps for iPhone and Apple Watch — from idea and design through architecture to release. Where it makes sense, the domain and data layers are shared via Kotlin Multiplatform. The apps are currently in a closed beta.

    • Swift 6
    • SwiftUI
    • Observation
    • Swift Concurrency
    • Swift Testing
    • SwiftData
    • CoreData
    • MapKit
    • WidgetKit
    • SPM
    • Firebase
    • Kotlin Multiplatform
    • Koin
    • Ktor
  2. 08/2021 → 05/2026

    iOS Developer · Heureka Group

    Prague · 4 yrs 10 mos

    iOS guarantor for the Heureka.cz and Heureka.sk apps, one of two in-house iOS developers. Swift 6, CLEAN + MVI, Kotlin Multiplatform, iOS CI/CD and build server — build time cut from 14 to 3 minutes.

    • Swift 6
    • Swift Concurrency
    • SwiftUI
    • UIKit
    • Observation
    • Combine
    • Apollo/GraphQL
    • Kotlin Multiplatform
    • Jetpack Compose
    • Koin
    • Ktor
    • SPM
    • Factory
    • Firebase
    • GitLab CI
    • Fastlane
    • XCTest
  3. 05/2019 → 07/2021

    iOS Developer · adastra.one

    Prague · 2 yrs 3 mos

    As the sole iOS developer I took over and further developed Tesco Online Malaysia and Tesco Lotus Thailand in legacy Objective-C on MVC, Český florbal and six radio station apps in Swift 5 on Coordinator + MVVM — after an analysis I rewrote the radio apps from scratch into a single codebase. I built BidX1 from scratch as an MVP on MVVM.

    • Swift 5
    • Objective-C
    • UIKit
    • Combine
    • CoreData
    • Moya
    • Alamofire
    • AFNetworking
    • AVAudioRecorder
    • Firebase
    • CocoaPods
    • Fastlane
    • XCTest
  4. 10/2018 → 04/2019

    iOS Developer · Unicorn a.s.

    Prague · 7 mos

    As the sole iOS developer I delivered apps for ŠKODA AUTO, Patria Finance and Travel FREE, and the internal Tesco ATC for stores in PL/CZ/SK/HU, distributed via an Enterprise certificate. Built in Swift 4 on Coordinator + MVVM, migrated to Swift 5 at the end.

    • Swift 4/5
    • UIKit
    • Alamofire
    • Firebase
    • CocoaPods
    • XCTest
  5. 04/2018 → 09/2018

    iOS & watchOS Developer · Freelance

    Prague · 6 mos

    Public transport app for iOS and watchOS — my first independent project after moving into development.

    • Swift 4
    • iOS
    • watchOS
    • UIKit
    • URLSession
    • Firebase
    • XCTest
Before iOS: 16 years of graphic design, events and business
  • Freelance graphic designer (2004 → 2016) — side activity: visuals and promotional materials for music events. Photoshop, Illustrator, Affinity Designer.
  • Event manager, freelance (2000 → 2013) — side activity: organising music nights and festivals with Czech and international artists.
  • Owner & manager, Sensation Factory iRadio (2010 → 2014) — side business alongside employment: running the team and operations of an internet radio station, dealing with content providers.
  • Project purchaser, BRK - stavební (2015) — preparation and purchasing for the construction of a residential project with 33 apartments.
  • Trade officer, HOCHTIEF CZ (2006 → 2013) — budgets and bids for large public and private construction contracts.
  • Trade officer, AQUATEST (2004 → 2006) — preparing and coordinating bids for large public environmental contracts.

Tech stack.

Languages & platforms

  • Swift 6
  • Swift Concurrency
  • Swift 5
  • Swift 4
  • Kotlin Multiplatform
  • Kotlin
  • iOS
  • watchOS
  • Objective-C

Architecture

  • CLEAN
  • MVI + FlowController
  • Coordinator + MVVM
  • MVP
  • Factory (DI)
  • Koin (DI)
  • MVC

UI & frameworks

  • SwiftUI
  • UIKit
  • Jetpack Compose
  • Observation
  • Combine
  • MapKit
  • WidgetKit
  • AVAudioRecorder
  • Moko-resources
  • XIB

Data & networking

  • Apollo/GraphQL
  • Ktor
  • URLSession
  • Alamofire
  • SwiftData
  • CoreData
  • JWT
  • Moya
  • RNCryptor
  • AFNetworking

Tools & CI

  • GitLab CI
  • Fastlane
  • Claude Code
  • XCTest
  • Swift Testing
  • TestFlight
  • SPM
  • Shell scripts
  • Pulse
  • AppCenter
  • CocoaPods
  • Git

Analytics & tools

  • Firebase
  • AppsFlyer
  • Meiro
  • Didomi
  • Figma
  • Affinity Designer
  • Illustrator
  • Photoshop
  • Jira
  • Poeditor

About me.

I came to iOS development by a detour. For sixteen years I did graphic design, organised music events and prepared bids for large public contracts — then in 2018 I finished my bachelor's degree at Unicorn University and started programming full-time. That path still pays off: I know what a project looks like from the other side of the table, and I get along well with designers and product managers.

Besides programming itself, I enjoy architecture that still holds together years later. I like exploring code sharing between iOS and Android with Kotlin Multiplatform and experimenting with AI. I write testable code and automate whatever I would otherwise do by hand a second time.

Contact

Get in touch.

Looking for iOS roles in Prague or remote, including Kotlin Multiplatform projects. Drop me a line — I'm happy to talk about your project.

miroslav.tourek+web at gmail.com

E-commerce · Heureka Group

Heureka.cz & Heureka.sk

08/2021 – 05/2026 · iOS Developer

When I joined the team, the iOS and Android apps were separate, each with its own logic. I was one of two in-house iOS developers, working alongside 2–3 agency developers. During my time there the company decided to go multiplatform — Kotlin Multiplatform was brought in by the partner agency — and most features moved to KMP: shared domain and data layers and, next to the native view models, view models shared by iOS and Android. The UI stayed native — SwiftUI and UIKit on iOS. One codebase thus produces four apps — Heureka.cz and Heureka.sk for iOS and Android.

My contribution

Throughout my time there I continuously developed new features and changes to existing ones based on product requirements — from requirement analysis and solution design through implementation with tests to release on TestFlight and the App Store. On top of that, code reviews and testing other developers' builds. Selected highlights:

Kotlin Multiplatform — I connected the iOS UI to the shared layer, rewrote parts of the code into shared Kotlin and contributed to the Android UI (Jetpack Compose). As the person responsible for the iOS app, I tested and signed off the production release of the KMP version.

Swift 6 — I led the migration of the apps to Swift 6 and strict concurrency: async/await and actors across the codebase, Sendable and @MainActor isolation.

CI/CD and build server — as the sole owner I took over iOS CI/CD on GitLab CI, Fastlane and shell scripts as well as the build server, and rebuilt them several times over the years — tests, pre-production and production builds, and distribution to TestFlight and the App Store. I cut the build time of the app with the shared KMP code from 14 to 3 minutes. We moved the build server to MacStadium and, after an efficiency and cost analysis, back to our own hardware — with faster response times, a return on investment within a year and data fully under our own control.

AI code review — I integrated AI code review built on Claude Code into CI/CD. It posts a comment on every merge request — and with it, a more consistent check of how changes affect code security.

Product comparison — I designed and implemented the feature from solution design to release (see the “product comparison” screenshot in the gallery above). Later I also reworked the look and behaviour of the product detail.

Codebase modernisation — first I cleaned presentation logic and state management out of the views, then rewrote them in SwiftUI (navigation stayed in UIKit). I migrated selected features from REST to GraphQL, introduced local SPM packages and adopted Liquid Glass in the apps.

Buying right in the app — I connected the apps to Heureka's web cart — the cart runs in a web view inside the app, so users can buy without leaving it.

What the apps do

The apps track over 55,000 e-shops, including well-known stores such as Alza, Datart, Allegro, Notino and Pilulka, and together offer millions of products — not only to compare, but also to buy right in the app or at the chosen e-shop.

Architecture — CLEAN

We designed the architecture together with an external company; I enforced it in code review. Before that I had introduced MVP in the presentation layer.

Technologies

Firebase for Remote Config, Crashlytics, A/B testing and messaging.

Designs delivered in Figma, planning and issue tracking in Jira.

CI/CD

E-commerce · Tesco Lotus · adastra.one

Tesco Lotus Thailand

05/2019 – 07/2021 · iOS Developer

Customer app of the Tesco Lotus chain for the Thai market — catalogue, filtered search, favourite products, promotions, booking home delivery or in-store pickup slots and editing orders until the cut-off. Sign-in was done by barcode scanning; the cart and payment ran in a web view.

I was the sole iOS developer on the app, working with a designer and a backend developer. I maintained a large inherited Objective-C codebase with XIB-based UI, implemented new features in it and shipped every release. The app is no longer distributed.

Architecture

Technologies

Authentication based on JSON Web Tokens; sensitive data in local storage encrypted with RNCryptor.

E-commerce · Tesco Malaysia · adastra.one

Tesco Online Malaysia

05/2019 – 07/2021 · iOS Developer

Tesco's customer app for the Malaysian market — catalogue, filtered search, favourite products, booking time slots for home delivery or in-store pickup and editing orders until the cut-off.

A fully separate project with its own codebase — it shared a technology base with the sister Thai app, not code. I was the sole iOS developer on the app, working with a designer and a backend developer. I maintained the inherited Objective-C codebase and implemented new features in it. The app is no longer distributed.

Architecture

Technologies

Sport · T-Mobile CZ · adastra.one

Český florbal

10/2019 – 07/2021 · iOS Developer

The official app of Czech floorball — a results service for all league and cup competitions organised by the union, as well as the international competitions it covers — national team matches and the Champions Cup.

I was the sole iOS developer on the app, working with a designer and a backend developer. I took care of maintenance and implemented new features. The version I worked on is no longer distributed.

What the app does

Architecture

Technologies

Automation

Media · MEDIA CLUB · adastra.one

Radio Kiss, Beat, Radio 1, Spin, Country and Signál

11/2019 – 03/2020 · iOS Developer

Each app offered a live stream player, station news, the daily schedule, presenter profiles and contact to the newsroom. Selected stations also let listeners record and send a voice message to the station.

I split the inherited codebase into six products — each app had its own target, scheme and asset catalogue, so there was a single shared codebase and only the visuals, content and part of the features differed. I delivered all six within five months, alongside other projects. I was the sole iOS developer on the project, working with a designer and a backend developer.

Architecture

Technologies

Apps

Kiss Beat Radio 1 Spin Country Signál

Automotive · ŠKODA AUTO · Unicorn a.s.

ŠKODA Portable Check-In

10/2018 – 04/2019 · iOS Developer

An interactive multi-page form for handing a car over from a ŠKODA AUTO dealer to the customer. I delivered four separate apps — version v2.2 and then v3, each in FULL and LITE variants. The apps are no longer distributed.

I was the sole iOS developer on the project. I worked from the API documentation and consulted design changes with the product owner, who refined the requirements with the client's representative.

How the form worked

Architecture

Technologies

Fintech · Patria Finance · Unicorn a.s.

Patria MobileTrader

10/2018 – 04/2019 · iOS Developer

Trading app for Patria Finance clients. It let them manage their portfolio and trade on the stock exchange right from their phone, without the web app.

I was the sole iOS developer on the project, working with the product owner, who refined the requirements with the client's representative.

What the app did

Architecture

Technologies

The link leads to the successor app from 2022. The features are the same as in the version I worked on; the design and sign-in differ — today's version uses biometrics and a Mobile Key, mine used an SMS code.

PropTech · BidX1 Technology · adastra.one

BidX1

09/2019 – 11/2019 · iOS Developer

MVP of a digital real-estate marketplace for BidX1 Technology Limited, built for the markets in South Africa, Ireland, the United Kingdom and Cyprus.

Architecture

Technologies

Retail · Travel FREE · Unicorn a.s.

Travel FREE CZ

10/2018 – 04/2019 · iOS Developer

Customer app of Travel FREE stores, built around the CLUBCARD loyalty programme.

As the sole iOS developer I maintained and developed the app, working with the product owner, who refined the requirements with the client's representative.

What the app does

Architecture

Technologies

Internal tool · Tesco · Unicorn a.s.

Tesco ATC

10/2018 – 04/2019 · iOS Developer

Internal app for Tesco store employees in four countries — Poland, Czechia, Slovakia and Hungary. It was never publicly distributed, so there is no App Store listing and no screenshots.

I was the sole iOS developer on the project, working with the product owner, who refined the requirements with the client's representative.

What the app did

Architecture

Technologies

Transport · Freelance

Public transport app

04/2018 – 09/2018 · iOS & watchOS Developer

MVP app for tracking Prague public transport, for both iPhone and Apple Watch. My first independent project after moving from graphic design to development.

Apart from the backend I built the whole app myself — visual design and implementation. Because the data was hard to obtain, it stayed an MVP and the project was never released.

What the app did

Architecture

Technologies