Mobile Engineering
Key Questions
When should we build a Progressive Web App (PWA) instead of a Mobile App?
Do we actually need a mobile app, or do we just want an icon on the home screen?
Are we prepared to support 3 different versions of the app simultaneously because users refuse to update?
What is the difference between Native (Swift/Kotlin) and Cross-Platform (React Native/Flutter)?
Why can't we just "hotfix" a bug on mobile like we do on the web?
How much engineering time are we budgeting for "React Native Upgrades" and breaking changes?
Why does Apple take 2 days to review my app while the website updates instantly?
What is 'Offline-First' and why is it so hard to build?
Learning Objectives
Learning Objectives
Track your progress as you learn
Hard Truths
Everyone wants an 'App' for the prestige, ignoring that a PWA solves 99% of the use case for 10% of the cost.
On the web, you deploy when you want. On Mobile, you deploy when Apple & Google review your binary. Maybe 24 hours, maybe a rejection!.
Critical bug in production? On the web, you fix it in 5 minutes. On mobile, you fix it and wait 3 days for users to download the update (if they ever do).
React Native/Flutter is great until you need a specific native feature. Then you end up writing 3 codebases: JS/Dart, Swift, and Kotlin.
The speed of React Native evolution is a double-edged sword. You are always one `npm install` away from a broken build that takes 3 days to debug.
It works on your developer's iPhone 15 Pro. It crashes on DS's Pixel 10 Pro. Welcome to fragmentation hell.