Challenges Due to the Nature of Mobile Development

In-App Purchases on iOS and Android

Challenges Due to the Nature of Mobile Development

In-app purchases (IAP) are unique to iOS and Android in the amount of revenue they can drive, and the challenge of testing these on large and complex apps. IAP is unique to mobile platforms and when you sell digital products, not implementing it is rarely an option. You have to pay a hefty fee of 15% on revenue up to $1 million annually (both for iOS and for Android), and 30% above this. ...

CI/CD & The Mobile Build Train

Challenges Due to the Nature of Mobile Development

CI/CD for simple backend services and small web applications is straightforward. Yet, even for simple mobile applications, it is less so: mostly because of the manual submission step for the app store. Doing a fully automated continuous deployment pipeline is impossible to do so for iOS App Store apps due to the manual review gate. On Android, you can automate this process, as you can with enterprise iOS apps. You can’t have a fully automated continuous deployment to the App Store on iOS, thanks to the manual App Store Review process. ...

Offline Support & Weak Connectivity

Challenges Due to the Nature of Mobile Development

Though offline support is becoming more of a feature with rich web applications, it has always been a core use case with native apps. People expect native apps to be usable when connectivity drops. And they certainly expect state to not get lost, when the signal drops or gets weaker for a short period of time. Proper offline mode support adds a lot of complexity and interesting edge cases to an app. ...

App Crashes on iOS and Android

Challenges Due to the Nature of Mobile Development

An app crashing is one of the most noticeable bugs in any mobile app - and often ones with high business impact. Users might not complete a key flow, and they might grow frustrated and stop using the app (also referred to as churning), or leave poor reviews. Crashes are not a mobile-only concern: they are a major focus area on the backend, where monitoring uncaught exceptions or 5XX status codes is common practice. ...

The Long Tail of Old App Versions

Challenges Due to the Nature of Mobile Development

Old versions of the app will stay around for a long time - this can be measured in years. This is unless you’re one of the few teams that have a strict force app upgrade policy in place. Apps that have a rolling window of force upgrades include Whatsapp and Messenger. Several others use force upgrades frequently like banking apps Monzo or American Express. While the majority of users will update to new app versions in a matter of days, there will be a long tail of users being on several versions behind. ...

Mistakes are hard to revert

Challenges Due to the Nature of Mobile Development

The second most common pain point is caused by mobile apps being distributed as binaries. Once a user updates to a version with a client-side bug, they are stuck with that bug, until a new version is released and users update to this version. There are a few challenges here: Apple does not allow updating native code on the fly. Interestingly enough, they do allow this with non-native code like JavaScript: and this is why solutions where business logic is written using JavaScript, bug fixes are pushed to the client are gaining popularity. ...

State management

Challenges Due to the Nature of Mobile Development

State management is the root of most headaches for native mobile development - as well as single page app web development. Mobile applications are almost always stateful. On top of keeping track of the current state in business flows, you need to make sure you handle app lifecycle transitions (iOS, Android). Examples of the app-level lifecycle changes are the app pause and going to the background, coming back to the foreground or being suspended. ...