This is inspired from several resources for offering you a checklist of control points to build resilient Client-Side mobile applications. Feel free to contribute
NameChronologyCategoryLevelComment / Details / Tools
Define your release train1 - before developmentdeploymentmoderateRelease Cycle, alpha, beta, polished, external, prod...
Define business requirements (SLA/SLO/SLI)1 - before developmentmonitoringhighQuantify, example, Availability SLI, Satisfying Latency SLI
Add Strong Customer Authentication1 - before developmentsecurityhighEU Payments Services Directive (PSD2) has been delayed by about 2 years for EU businesses (at least in the UK) but all FE and BE payment flows must be designed with SCA steps in mind, especially if you have complex payments flows and processes, otherwise face disruption to your revenues as soon as PSD2 is official.
Set app versioning2 - during developmentbackward compatibilitylowSemantic versioning (
Define forward compatibility2 - during developmentforward compatibilityhighPrevent app from crashing, being unavailable because of server API changes
Define timeouts/retries/circuit-breakers/fallback for every call2 - during developmentavailabilitymoderate
Set feature toggling / Gatekeeper2 - during developmentsecuritymoderateUse them according to the relevant distribution platform's rules
Record events2 - during developmentmonitoringhigh(eg. action, location)
Write unit tests2 - during developmentreliabilityhigh
Monitoring battery / network usage2 - during developmentmonitoringmoderate
Be forward compatible2 - during developmentavailabilityhighConsidering the scale and lack of control in the mobile environment, managing changes in a safe and reliable manner is arguably one of the most critical pieces of managing a reliable mobile application.
Add caching2 - during developmentavailabilitymoderate
Add documentation2 - during developmentdocumentinghigh
Implement CI/CD2 - during developmentdeploymenthigh
Support prod / test mode switch2 - during developmentreliabilitymoderate
Be immutable2 - during developmentreliabilityhigh
Support i18n2 - during developmentreliabilitymoderate
Consider risk / criticity3 - before productionsecurityhigh
Runbook, configure alerting3 - before productionrecoverabilitymoderate
Be GDPR compliant3 - before productionsecurityhighIf your app is available in Europe.
Staged rollout / Phased Releases3 - before productionreliabilityhighDefine a progressive release life cycle
Dogfooding / Internal testing3 - before productionreliabilityhigh
Test all rollback toggles / killswitch before deploying3 - before productionreliabilityhigh
Crash / error tracing3 - before productiontroubleshootinghigh
Update changelog3 - before productiondeploymentlow
Post-mortems4 - after productionmonitoringlow