Slice: Pizza Delivery/Pick Up
This is the end consumer facing app from Slice, it's an online ordering marketplace app.
This app numbers monthly active sessions in the millions, so it's a priority to be testable and stable, because it is a source of revenue for the company.
The app offers live order tracking, with an interactive map, order history, multiple payment providers and basically everything you can imagine from an online ordering app. There's also Slice's reward program.
The architecture is rich and vivid, mainly consists of MVVM with coordinator platform. The app was originally launched in 2013, and because of that the code has a mix of everything. This is not a blocker for the app to have excellent test coverage. Quick & Nimble are used to ease with test writing.
The UI is a mixture of UIKit and SwiftUI, UI constraints are layed out using SnapKit. For reactive programming there's RxSwift & Combine. There is also usage of Swift Concurency's framework with Async/Await functions.

Owner's Portal
App that allows pizzeria owners to manage their shops.
The app main purpose is bridging the gap between restaurant owners and Slice. This app is build usingRxSwiftandUIKit. All UI is written in code, constraints are set up with the help of SnapKit. The architecture of the codebase isMVVM.
My responsibility is to take ownership of the app, align the codebase with company’s standards, implement testability and maintainability through documenting code and setting up the codebase for more developers to join. Frequent coordination with product owners and project managers is also part of my role. I am also devoting time and exploring options to enrich the experience of the app and make it more enjoyable for end users.Slice Register
Slice Register is a point of sale app running on an iPad.
The app has a large codebase and legacy Obj-C code. New features were built using Combine and Swift. The app architecture was MVVM with using routing/routers for navigation. I was part of “enabling” team whose purpose was the stability, deployment and monitoring of the app. We were achieving this by creating new APIs for the other developers to use. I overhauled the storage stack of the app(Core Data) and rewritten it in Swift. I also implemented custom migration mechanisms that were triggered during app update.
Testability was also very important as we wanted to deliver an always uptime system. I helped improve the testability by implementing dependency injection using Resolver. I also spent time optimising and fixing previous written tests.
Slice Driver
Slice Driver is the delivery app used by drivers on the Slice marketplace, part of the Slice Register ecosystem.
It helps drivers review order contents, launch navigation with one tap, and keep delivery progress updated in real time.
The app is built natively in Swift with UIKit and integrates real-time delivery state handling, order verification flows, and location-based navigation support for drivers on the road.
The tech stack is
UIKitwithMVVMarchitecture.I did maintenance and bug fixes on the app, while improving reliability and maintainability of key delivery flows, and ensuring the ordering lifecycle is easy to complete under difficult networking conditions.
Skopje ZOO
Mobile app for the local ZOO.
I have implemented offline and custom map using map tiles andMapKit. Offline navigation is also supported and uses custom GPX file to map the ZOO paths. UsingCoreLocationit is able to determine navigation path, from user location to selected point (animal) in the map and draw the path on the map.
The UI is build usingUIKitand storyboards. Every model and image that is used in the app is also saved on device to support offline usage. For images I have usedKingfisherand the models are simply converted to data and saved intoUserDefaults.
Some of the descriptions of the animals also have audio playback, this is implemented withAVAudioPlayer.The app also offers ticket purchase which is done through native screens up until the payment, which redirects to Webview where the payment is completed.(this was due to the limitation of the payment provider).
Navigation is done through a left sliding menu, using the open source library SideMenu. The menu has 3 options each of which underneath is aUINavigationController, thenViewControllers are pushed or presented from the rootUINavigationControllers.
eSign/eSign framework
This app is used for previewing and signing of PDF documents.
This app was implemented usingPDFKitat its core. It uses Apple's framework to preview and edit PDF documents. The UI is build usingUIKitand storyboards. On double tapping the PDF document a zoomed in screen shows up that accepts drawing of signatures, this is done by drawing with the help ofUIBezierPathobjects. After the drawing is complete, and scaling is taken into consideration, there is the option to resize the signature view, on completion the signature is transformed into aPDFKitAnnotationobject and stamped onto the PDF file, saved locally.
Storing and retrieving files is done through Apple's file system so everything is saved on device. StandardFileManageris used to achieve this.
The library that was used to distribute this code across multiple project wasXCFrameworkbundle. Later the said library was imported as a static library to other Xcode projects.
Neptun
Retail native app for consumer electronics retail store.
This was an MVC app using storyboards and build with Swift. I set up the networking architecture which used Alamofire networking. The images were loaded and cached usingKingfisher. The app supported and was localized in 2 languages.
The navigation of the app was build using aUITabBarControllerwith 5UINavigationControllerwhich represented each different tab. Based on the user state(logged in/out) the 4th tab would be loaded dynamically. The dashboard was build using separateUIViewControllerfor each section which were nested into container views.
Users could insert their loyalty card in their profile by scanning their physical card, and also generation of loyalty's card barcode was possible if it was previously added. This would mean users wouldn't have to carry their physical card if they had the mobile app.
After the items were added to the card the users could complete the purchase and insert all their information(or it was pre-filled if logged in) in native UI forms. The final step of inserting payment details was done through a web view because of payment provider limitations.
StopKorona!
StopKorona! was North Macedonia's COVID-19 exposure notification app.
At the height of the pandemic rush, it reached roughly 100,000 users and became the top app on the local App Store.
The app used the Apple/Google Exposure Notification system and Bluetooth-based proximity detection to privately inform users when they may have been in close contact with someone who later reported a positive COVID-19 test.
Before Apple and Google released the Exposure Notification APIs, earlier versions of the app used custom Bluetooth Low Energy (BLE) logic to detect nearby devices and record encounters. If a user reported a positive test, they could choose to upload their anonymized contact traces, and other users would be notified if a match was found. Devices emitted randomized identifiers to preserve privacy.
I worked on the app's Bluetooth logic and UI.
