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.
Urban MobilityCoral RestorationMedical Engineering
SwiftSwiftUIUIKitasync/awaitCombineMapKitCoreLocationSwiftPM...
Majid JabrayilovPaul HudsonSarun W.Chris EidhofJavier (swiftui-lab)John SundellSoroush KhanlouJanum Trivedi
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.
SwiftUIKitSwiftUIMapKitCoreLocationSwiftPMasync/awaitFirebaseGithub ActionsSwiftGen
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.
SwiftSwiftUICombineasync/awaitMapKitNetworkCloudFirestoreGoogleSignInSwiftGen
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.
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.
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.
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