Expo pour le web 🕾

Mohamed aly sidibe
5 min readMay 9, 2020

--

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 :

Upload function

CrĂ©ons notre fonction pour faire la rotation de l’image:

Rotate function

Voici notre vue:

Render

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.

Build

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
DĂ©ploiement netlify

Notre app est maintenant en ligne 🎉🎉🎉🎉

App live

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:

  1. Créer un projet Sur netlify
  2. SĂ©lectionner votre provider Git puis votre repo
  3. 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.

PWA

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. 😀🚀

--

--