React Native allows developers to build real mobile apps using React. It uses the same fundamental UI building blocks as regular iOS and Android apps. Some key lessons include:
1. Navigation libraries like React Navigation are powerful but have learning curves and limitations.
2. Native UI components and APIs like the camera require extra configuration for cross-platform support.
3. Offline support requires careful handling of caching, storage, and networking.
4. App publishing involves platform-specific processes for both iOS and Android like certificates, permissions, and approval times.
1 of 28
Download to read offline
More Related Content
Building Apps with React Native - Lessons Learned
1. Building Apps with React Native -
Lessons Learned
Alexandra Anghel
CTO & Co-founder at Appticles, Co-founder Codette
2. What is React Native?
<With React Native, you don't build a "mobile web app", an
"HTML5 app", or a "hybrid app". You build a real mobile app that's
indistinguishable from an app built using Objective-C or Java.>*
* https://facebook.github.io/react-native/
14. Dependencies: React Navigation
- JavaScript based
- nested navigators are di?cult to con?gure (ex. drawer vs. stack)
- used a lot of modals for getting around the screens structure
- visible performance issues on Android
- handled Android back button by writing the navigation stack
in the Redux state
)
17. Dependencies: React Native Navigation
- Native based (project must be ejected from CRNA)
- Single screen app vs. Tab app
- A lot of duplicate code for handling navigation events
(push, pop, resetTo)
- Can¡¯t reset to a particular screen in the stack
- Double tap bug on Android
)
18. Dependencies: Ui
- Styling options are limited (?exbox)
- Smaller packages are not updated often (forks)
- Some speci?c iOS vs. Android styling (Platform.OS)
- Don¡¯t make Android styling speci?c to the screen size
*
21. Dependencies: React Native Camera
- Single component instance
- Sometimes buggy (ex. ?ash)
- Check user permissions before rendering it (iOS)
!
23. - Redux & Redux Persist (same as PWAs)
- Redux Persist v4 and v5 are not backwards compatible
- Blacklist setup is not intuitive
- Async storage for iOS
- Filesystem storage for Android (slower) - 2MB / key
- Careful with how much data you load
Of?ine Mode
#
25. - It SUCKS!
- Do changes manually, ruined Info.plist
- Create a new app and added all dependencies
Upgrading React Native
-
26. App Stores: iTunes
- Create certi?cates from the Apple developer account
- Create an app on iTunes
- Sign & upload app from xCode
- Use TestFlight for testing
- Beta review is required for sending invites to
other email accounts besides those in iTunes
- Permissions messages must be explicit
- 2-3 days for approval
?
27. - Generate a private key
- Sign the apk and upload from the developer account
- Invite email addresses to beta testing (install from URL)
- Check (extra) permissions
- 1-2 days for approval
App Stores: Google Play
%