
Ask HN: Mobile vs. Web Development “Gotchas” Personal Stories - Cosmas17
Would you be willing to share any major &quot;gotchas&quot; from personal experience about getting started building mobile apps when coming from a background in web development?<p>Assumptions from web dev that don&#x27;t work in mobile dev? etc.<p>Particularly curious with regards to working in React Native vs React but any insight would be appreciated.<p>Thank you!
======
jamil7
Mobile is a lot of fun, some things are different other things are the same.
Some stuff off the top of my head, I know some of them still apply to web dev
but they're more pronounced on mobile:

* Your data should be cached across sessions and refresh periodically, be pushed or respond to the user refreshing. Depending on how complex your app is and what it does you may need some partial syncing behavior, this is a difficult thing to get perfect and often people opt for using a service to handle this. You may need to implement migrations, polling and queues to get your app syncing correctly and have your UI reflect all of these states.

* On the web your app throwing an error may or may not crash the whole app depending on how it's built, it might still be partially useable. In either case users on the web generally know to just command+r or reload the page. On mobile the whole thing dies and worst case scenario the user deletes your app or leaves you a bad review.

* Developers often complain about the review process (understandably) and it can be really irritating, especially you're used to just pushing fixes immediately. At the same time it does add an extra layer of QA to the app, sometimes app store review will catch something you missed.

* React Native specific I would say depending on what you're doing don't assume you won't have to write any native code or understand some platform APIs. If you're doing anything unusual then be prepared to write some bridging code or debug some cryptic errors. Keep your dependencies low if you can, this is a real pain to deal with in React Native and turned me off it. If you're using Expo, it'll balloon your binary to around 50mb and you won't have access to a lot of hardware APIs without ejecting. The whole expo release / publish / hot update stuff is great though.

~~~
Cosmas17
Thank you for this perspective, very helpful!

