|
|
# Applications natives
|
|
|
|
|
|
Churros utilie [Capacitor](https://capacitorjs.com) pour faire des applications distribuables sur l'App Store et le Google Play Store.
|
|
|
|
|
|
Capacitor permet de packager une application web dans une application native, en injectant le code de l'application compilée dans des projets natifs Android Studio et XCode.
|
|
|
|
|
|
La bibliothèque fournit également des paquets pour étendre l'application avec des capacités inaccesibles depuis un site web, telles que du NFC (TODO), des notifications push natives, la vibration (sur iOS), ouvrir les liens externes dans le navigateur principal de l'appareil, etc.
|
|
|
|
|
|
## Architecture
|
|
|
|
|
|
Les projets natifs sont inclus dans `churros/churros` en tant que [submodules Git](https://git-scm.com/book/en/v2/Git-Tools-Submodules). Les projets sont séparés en deux dossiers:
|
|
|
|
|
|
- `android`: le projet Android Studio
|
|
|
- `ios`: le projet XCode
|
|
|
|
|
|
Pour également avoir le code, il suffit de cloner les submodules:
|
|
|
|
|
|
```sh
|
|
|
# Les deux projets
|
|
|
git submodule update --init --recursive
|
|
|
|
|
|
# Seulement Android
|
|
|
git submodule update --init --recursive android
|
|
|
# Seulement iOS
|
|
|
git submodule update --init --recursive ios
|
|
|
```
|
|
|
|
|
|
## Contribuer
|
|
|
|
|
|
### Android
|
|
|
|
|
|
1. Installer [Android Studio](https://developer.android.com/studio)
|
|
|
2. Ouvrir le projet `android` dans Android Studio
|
|
|
|
|
|
#### Tester l'appli
|
|
|
|
|
|
1. Configuer les variables d'environement spécifiques à Android (voir `.env.example`)
|
|
|
**NOTE:** Ne pas oublier de lancer `yarn cp-env` depuis la racine si vous mettez à jour votre `.env`
|
|
|
1. Compiler l'application avec `yarn build:android` dans `packages/app`
|
|
|
1. Dans Android Studio, lancer l'application sur un émulateur ou un appareil connecté. Pour connecter un appareil, voir [Utiliser ADB](./adb.md)
|
|
|
|
|
|
#### Regarder les logs
|
|
|
|
|
|
Y'a deux options:
|
|
|
|
|
|
- Regarder le Logcat dans Android Studio (plutôt pour du code au niveau natif, même si les `console.log` sont remontés)
|
|
|
- Lancer l'inspecteur de chrome pour inspecter la webview (Ouvrir `chrome://inspect`)
|
|
|
|
|
|
#### Faire un .apk
|
|
|
|
|
|
- Dans Android Studio, aller dans `Build > Build Bundle(s) / APK(s) > Build APK(s)`
|
|
|
|
|
|
### iOS
|
|
|
|
|
|
TODO |