Expo vs Native Code
Les deux solutions permettent de réaliser une application fonctionnelle et distribuable sur les stores d’Apple et Google. Le choix va se faire sur les besoins que vous allez avoir pour votre application notamment au niveau des library ou SDK.
Expo
Si votre besoin est d’avoir une application basique, sans nécessiter de SDK non inclus dans Expo, vous avez toutes les raisons d’utiliser la version simplifiée. Le gain de temps impressionnant et vous n’avez pas besoin d’ouvrir Xcode ou Android Studio pour configurer et déployer votre application, il faudra juste utiliser le gestionnaire Xcode pour envoyer votre .ipa sur l’App Store.
Expo permet d’avoir une solution d’émulation vraiment très rapide et qui permet également de partager rapidement celle-ci à d’autres personnes, il suffit d’installer l’application Expo sur son téléphone pour tester toutes vos applications en temps réel. C’est un vrai plaisir d’utiliser ce mode d’émulation et le gain de temps est considérable.
Expo propose une solution qui permet de “démonter” votre application est vous laisser au sources de votre projet afin de l’utiliser via les IDE et d’inclure les dépendances dont vous avez besoin.
Native Code
Dans le cas contraire si vous avez des besoins d’intégration de librairies particulières, parfois même spécifiques à iOS ou Android, il faudra passer la la solution du code natif. Certes un peu plus lourde à gérer mais bien plus personnalisée. Cette solution permet de modifier l’intégralité de l’application sous Xcode ou Android Studio et de jouer avec le langage natif spécifique aux deux plateformes et React Native.
Le côté négatif de cette solution est d’avoir à ouvrir les IDE pour configurer une bonne partie de l’application et ajouter soit même les librairies, une phase qui peut être longue pour les personnes non initiées au développement mobile natif et sujet à divers problèmes.
Cette contrainte permet néanmoins d’avoir la main sur l’ensemble des librairies et d’ajuster son besoin en utilisant des SDK externes. La personnalisation de votre application est un atout majeur et les détails importants pour avoir une bonne application qui donne envie de la télécharger.
****************************
EXPO :
https://expo.io/ Quick start : https://docs.expo.io/versions/latest/
Installation : https://docs.expo.io/versions/latest/introduction/installation/
- Download and Install Node.js. Expo depends on the Node.js platform for its command-line tools and dependency management.
- Install the Expo Client on your iOS or Android device. This is used to preview the app while you’re developing it.
- Install the command line tool. This allows you to generate a new Expo project, initiate a build process, and more. Execute the following command to install it:
npm install -g expo-cli
Créez un projet (https://docs.expo.io/versions/latest/workflow/up-and-running/) :
expo init
Editez le fichier App.js et tapez les commandes pour exécutez le code :
cd TestText
npm start
Games :
https://docs.expo.io/versions/latest/tutorials/create-floatyplane-game/#__next
https://github.com/EvanBacon/Expo-Crossy-Road
https://codeburst.io/how-i-created-a-simple-game-with-expo-react-native-redux-cf4f0580f7f3
Upgrading SDK :
https://docs.expo.io/versions/latest/workflow/upgrading-expo-sdk-walkthrough/
Gestion des traductions :
https://docs.expo.io/versions/latest/sdk/localization/
React Native :
Tuto : https://www.raywenderlich.com/247-react-native-tutorial-building-android-apps-with-javascript
Background service : https://hackernoon.com/easy-os-background-tasks-in-react-native-bc4476c48b8a
Background Tasks : https://medium.com/@andi.gu.ca/background-tasks-in-react-native-android-fb5fa040b1f3
SMS :
https://www.npmjs.com/package/react-native-sms-x
https://www.npmjs.com/package/react-native-android-sms-listener
Références :
https://hackernoon.com/why-we-ditched-our-native-android-app-for-expo-36080f52690e