Hi, I'm Mark. 👋

iOS Developer | SwiftUI Enthusiast | Medical Engineering PhD

I'm a native iOS developer from Hamburg, Germany, who enjoys writing Swift code and delighful user interfaces with SwiftUI. Before discovering my passion for software development, I pursued a career in Medical Engineering.

Field Experience

Urban MobilityCoral RestorationMedical Engineering

Knowledge

SwiftSwiftUIUIKitasync/awaitCombineMapKitCoreLocationSwiftPM...

Favorite Creators

Majid JabrayilovPaul HudsonSarun W.Chris EidhofJavier (swiftui-lab)John SundellSoroush KhanlouJanum Trivedi

Work.

Mobimeo / Moovel

At Moovel, and subsequently at Mobimeo, I worked on integrating Mobility Service Providers (MSP) into white-label apps designed to offer multiple mobility options for urban travel in one place. My primary focus was developing discovery, booking, and trip search features for Sharing MSPs (Scooter-, Bike- and Car-Sharing) and occasionally for Ridehailing. For this, I built multiple dedicated packages within the modularized app architecture but I also took the opportunity to get involved in most other parts of the app over the years. A central theme, which spans across many features, was the visualization of vehicles, routes, or areas of operation on a map.

Tech Stack

SwiftUIKitSwiftUIMapKitCoreLocationSwiftPMasync/awaitFirebaseGithub ActionsSwiftGen

  • Synchronized vehicles stored in a Firebase Realtime Database with a map using Geohashes.
  • Improved scalability by conceptualizing a generalized Sharing MSP framework.
  • Advanced the internal design system by collaborating with the design team to strategize it’s adaptation by developers and building a range of key UI components.
  • Drove the gradual introduction of async/await and SwiftUI into the codebase by giving presentations and providing compatibility and testing helpers.
  • Regular participation in the recruitment process by conducting technical interviews and reviewing/creating iOS coding challenges.

Coral Gardeners

Coral Gardeners is a Tahiti-based NGO focused on restoring coral reefs. I developed their internal iOS ReefAPP from scratch using vanilla SwiftUI. The app is used by the coral restoration team to manage coral sites and collect health information during underwater growth monitoring. Yes, the app is used underwater with a waterproof iPhone case. The data is collected in a Firestore database due to its excellent offline data persistence and synchronization capabilities.

Tech Stack

SwiftSwiftUICombineasync/awaitMapKitNetworkCloudFirestoreGoogleSignInSwiftGen

  • Custom design system for consistent user interface and feature development speed
  • Interactive Map showing different types of coral sites
  • Coral health monitoring flow for use under water
  • Capturing of images under water including their automatic upload when network becomes available
  • Type-safe icon and translation generation using SwiftGen

Projects.

Noise Gauge

Inspired by a presentation about a circular noise gauge built in SwiftUI a while ago, I explored masks and gradients and built my own version. Recently, I revisited the code to develop a full-fledged noise level meter, which I hope to release on the App Store soon.

My Website

Just as I was planning to build my own website, Paul Hudson released Ignite, an open-source static site builder. Ignite enables you to create websites in Swift using a SwiftUI-like syntax. I quickly decided to go with it and soon began contributing to the project. My site is published using GitHub Pages. You can checkout the source code here.

AR-based Vehicle Discovery Hackathon

Locating shared vehicles on the street, especially scooters and bikes, can be challenging as they are often hidden behind cars. During a 2023 hackathon at Mobimeo, I collaborated with Daniel Büker (Design), Meik Mense-Koch (Design), and Metin Güler (iOS) to build an iOS prototype that used augmented reality (AR) to make these vehicles more visible. When the user looked down at the phone, they would see a conventional map, but when the phone was held upright, a camera view would appear, displaying the vehicles as AR objects floating above the ground. It was exciting to explore this concept, but we quickly discovered that the GPS accuracy of the scooters was insufficient. Additionally, AR-based navigation proved to be a complex task and is already a well-developed feature in both Apple and Google Maps.

Articles.

Effective Task cancellation in Swift by leveraging Combine’s AnyCancellable

async/awaitJun 23, 20236 min read

When I first saw async/await Swift code, I was amazed at how elegant and concise it was. In practice, however, I often found that I had to wrap asynchronous functions in a Task to be able to cancel them. This meant keeping a reference to each individual task, which can quickly become tedious, especially since they involve generics. In this article I will explore ways to improve the ergonomics of task cancellation by leveraging Combine’s AnyCancellable.


2024 Mark StamerLegal notice Created with Ignite using