Have you seen this man? Contact the police. That’s a feature I build into version 4.2.0 of the Dutch Police App.
Continue reading “All Points Bulletin”It’s time. Time for SwiftUI
During this Corona pandemic I’ve been lucky to have kept my freelance spot working on the apps for the Dutch Police. Managed to squeeze in the Coursera course on COVID-19 Contact Tracing, but I kept postponing learning all about SwiftUI.
Last week I came across this tweet by John Sundell:
Dutch Police
The Dutch National Police wanted a new iOS app where civilians can check for the latest regional news, missing persons / children, amber alerts, check for stolen / fenced items, report crimes, find and contact the nearest police station or officer.
Accesibility
As this is a public app from the police for all the citizens, the need for accessibility was factored in from the start. High contrast, Voice Over, the team and I went the extra mile to ensure the app is usable for everyone.
For testing we created some CI/CD pipelines with Fastlane, some shell scripting and Gitlab-CI for automated ui- and unit-test, nightly builds, acceptance and production releases.
Used Tools
For this project I used Autolayout, Alamofire, Mapkit, MLKit, AVKit, REST, JSON, Firebase, Carthage, Clean-swift, Swiftlint, Sonarqube and Xcode. The app is written 100% in Swift 5.
Download
Download the latest version of the iOS app from the app store: https://itunes.apple.com/us/app/nationale-politie/id765547809?l=nl&ls=1&mt=8
Always Hello
An app to safely and securely synchronise your contact data. I build the iOS part of this project. Started in Objective-C, migrated to Swift and continued development in Swift (iOS-SDK 8, 9, 10 & 11).
Used Tools
Use of public / private key encryption (RSA), symmetric encryption (AES), hashing (BCrypt), cross platform multi device syncing, push notificaties, Bluetooth & ultrasound communication, animation, custom views, security, Autolayout, UI-testing, Unit-testing, CoreData, Anonymous Tracking, openSSL, JSON, youtube, FontAwesome, Google Nearby, Pushkit, Universal links, MVC, MVVM and Xcode.
Created a complete Continuous Integration street via Jenkins & HockeyApp for automated unit test, UI-tests and nightly builds and releases to the AppStore.
Backup sysadmin for Amazon AWS and Docker.
Managed the junior and medior developers and remote teams in Bulgaria, Belarus and Serbia in an agile / scrum environment (part time scrum-master)
Download
https://itunes.apple.com/be/app/always-hello/id991743296?l=nl&mt=8
Fun with looping
I was reading the article “how to loop over arrays” over at Paul Hudsons Hacking with Swift blog, assuming I knew everything about looping over arrays. Guess what, I learned some new ways to iterate over an array!
So here’s a collection of cars:
"Tesla": "Model X",
"Lamborghini": "Aventador",
"Smart": "fortwo"
]
Swift Interview Questions
I’ve been doing a lot interviews recently looking for new freelance opportunities. Most of those interviews have a deeper technical part questioning me on the foundations of iOS, Swift and programming. Continue reading “Swift Interview Questions”
Chisel, your debugger on steroids
We all use the occasional print statement in our code to help with debugging. Advanced users use breakpoints to inspect the values of variables and state. I never knew there where so many helper methods for your lldb debugger.
MVVM at scale: Not so simple
I’ve been reading up on a lot of architecture stuff and came across an interesting presentation by Nataliya Patsovska on MVVM at scale: not so simple from the try! Swift NYC over at realm.io
TL; DR
Use design patterns while applying MVVM, separate objects for different layers. It forces you to manage the complexity, the most important technical topic in software development. It won’t fix all of your problems, but gives you a great start.