Expo pour le web đž
Cet article est Ă©galement disponible sur mon site
Expo est un outil merveilleux qui, en plus de vous permettre de crĂ©er des applications mobiles ANDROID et IOS, vous donne Ă©galement la possibilitĂ© de crĂ©er des applications web et progressive web app(pwa) trĂšs facilement Ă partir de la mĂȘme base de code Javascript et React đ.
Dans cet article nous allons voir ensemble les bases pour créer et déployer rapidement une application web et une pwa en quelques minutes avec Expo.
Comment ça marche ? đ€
Câest exactement comme si vous dĂ©veloppiez avec Expo et react native pour du mobile, il y a presque rien qui change cotĂ© dĂ©veloppement. Vous utilisez les mĂȘmes composants pour crĂ©er vos vues : View , Text , Button. Vous avez aussi accĂšs Ă quasi toutes les fonctionnalitĂ©s du Expo SDK.
Notre app web đ
Nous allons crĂ©er et dĂ©ployer une application web trĂšs simple qui va permettre Ă lâutilisateur dâuploader une photo (grace au expo-image-picker), puis il pourra effectuer une rotation de lâimage (grace au expo-image-manipulator).
Letâs go
Création du projet
Pour créer un projet expo il nous faut le expo-cli. Installons le globalement.
npm install -g expo-cli
On peut maintenant créer un projet expo avec la commande expo init
Si on regarde dans le app.json on voit que les plateformes supportées sont : android , ios et web.
Exécution du projet
On se place au niveau du projet et on lance la commande expo start -w ou expo start -web ou juste yarn web
expo start -web ou expo start -wou yarn start
Votre application sera directement lancée dans votre navigateur aprÚs cette commande.
Nous venons de lancer notre premiĂšre application web avec expo đđđđ
DĂ©veloppement de notre app
Comme on a dit plus haut on va crĂ©er une app web dans laquelle lâutilisateur va uploader une image et il pourra faire une rotation de lâimage pour la voir Ă lâenvers. trĂšs simple.
Installation des librairies Expo (EXPO SDK)
- Pour lâupload dâimage nous avons le expo-image-picker
expo install expo-image-picker
- Pour la manipulation dâune image, expo nous fournit le expo-image-manipulator
expo install expo-image-manipulator
Intégration
Import des librairies dans notre fichier App.js
import * as ImagePicker from 'expo-image-picker';import * as ImageManipulator from 'expo-image-manipulator';
DĂ©clarons notre state qui va contenir le chemin de lâimage uploadĂ©
const [selectedImage, setSelectedImage] = React.useState(ââ);
Créons notre fonction pour uploader :
CrĂ©ons notre fonction pour faire la rotation de lâimage:
Voici notre vue:
DEMO
Application web
đđđđđđđđđđđđ Voici le rendu sur le navigateur
Application mobile
đđđđđđđđđđđđ Voici le rendu sur un Iphone
Write once, run everywhere
DĂ©ploiement du projet
Notre application fonctionne trÚs bien sur le web, nous allons donc procéder au déploiement et le rendre accessible à tout le monde.
BUILD
Avant de dĂ©ployer une application web il faut dâabord la builder et la prĂ©parer pour la production. Pour ce faire expo nous fournit une commande
expo build:web
Cette commande va bundler notre projet pour la production et nous crĂ©er un dossier de build web-build dans la racine , câest ce dossier que nous allons dĂ©ployer.
Pour tester notre build en local on peut juste faire :
npx serve web-build
et lâouvrir sur : http://localhost:5000
DEPLOIEMENT
Nous avons builder notre app elle est maintenant prĂȘte pour la production. Pour dĂ©ployer une app web, vous avez plusieurs choix de nos jours :
Pour chaque solution vous pouvez voir comment déployer dans la doc de expo.
Nous allons utiliser netlify aujourdâhui.
- Installons le cli netlify
npm install netlify-cli -g
- DĂ©ployons notre app
netlify deploy
Notre app est maintenant en ligne đđđđ
Vous pouvez également faire du continus delivery avec netlify, de ce fait chaque fois que vous allez push sur Github , netlify va automatiquement builder et déployer votre app:
- Créer un projet Sur netlify
- SĂ©lectionner votre provider Git puis votre repo
- Appuyer sur
Build your site
Vous pouvez tester lâapplication web ici.
Progressive Web App:
Quand vous crĂ©ez une application web avec expo, par dĂ©faut elle est une progressive web app. Ce qui veut dire que lâapplication que nous venons de crĂ©er est une pwa đ„°.
On a effectivement un bouton + qui nous propose dâinstaller lâapplication:
Quand on clique sur installer , notre application devient comme une application native de lâappareil.
Quand on accĂšde sur le site via un smartphone on peut aussi lâinstaller et du coup lâapp est visible dans le homeScreen du tĂ©lĂ©phone comme une application native.
âšâ đ
Câest sympa ! Mais ceci nâest pas une pwa complĂšte, si vous voulez aller plus loin vous pouvez vous mĂȘme personnaliser votre pwa. Rendez vous dans la doc de expo pour les configurations pwa.
Le code source est dispo sur GitHub.
Thanks Evan Bacon for this amazing work.
Merci dâavoir lu et nâoubliez pas de partager si vous trouvez cet article intĂ©ressant. đđ