|
# Applications natives
|
|
# Applications natives
|
|
|
|
|
|
Churros utilie [Capacitor](https://capacitorjs.com) pour faire des applications distribuables sur l'App Store et le Google Play Store.
|
|
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.
|
|
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.
|
|
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
|
|
## 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:
|
|
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
|
|
- `android`: le projet Android Studio
|
|
- `ios`: le projet XCode
|
|
- `ios`: le projet XCode
|
|
|
|
|
|
Pour également avoir le code, il suffit de cloner les submodules:
|
|
Pour également avoir le code, il suffit de cloner les submodules:
|
|
|
|
|
|
```sh
|
|
```sh
|
|
# Les deux projets
|
|
# Les deux projets
|
|
git submodule update --init --recursive
|
|
git submodule update --init --recursive
|
|
|
|
|
|
# Seulement Android
|
|
# Seulement Android
|
|
git submodule update --init --recursive android
|
|
git submodule update --init --recursive android
|
|
# Seulement iOS
|
|
# Seulement iOS
|
|
git submodule update --init --recursive ios
|
|
git submodule update --init --recursive ios
|
|
```
|
|
```
|
|
|
|
|
|
## Contribuer
|
|
## Contribuer
|
|
|
|
|
|
### Android
|
|
### Android
|
|
|
|
|
|
1. Installer [Android Studio](https://developer.android.com/studio)
|
|
1. Installer [Android Studio](https://developer.android.com/studio)
|
|
2. Ouvrir le projet `android` dans Android Studio
|
|
2. Ouvrir le projet `android` dans Android Studio
|
|
|
|
|
|
#### Tester l'appli
|
|
#### Tester l'appli
|
|
|
|
|
|
1. Configuer les variables d'environement spécifiques à Android (voir `.env.example`)
|
|
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`
|
|
**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. 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)
|
|
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
|
|
#### Regarder les logs
|
|
|
|
|
|
Y'a deux options:
|
|
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)
|
|
- 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`)
|
|
- Lancer l'inspecteur de chrome pour inspecter la webview (Ouvrir `chrome://inspect`)
|
|
|
|
|
|
#### Faire un .apk
|
|
#### Faire un .apk
|
|
|
|
|
|
- Dans Android Studio, aller dans `Build > Build Bundle(s) / APK(s) > Build APK(s)`
|
|
- Dans Android Studio, aller dans `Build > Build Bundle(s) / APK(s) > Build APK(s)`
|
|
|
|
|
|
### iOS
|
|
|
|
|
|
### iOS
|
|
TODO |
|
|
|
|
|
TODO
|
|
|
|
|
|
|
|
### Commit ses modifications
|
|
|
|
|
|
|
|
1. Faire un commit dans le submodule
|
|
|
|
2. Push sur sa branche (du submodule)
|
|
|
|
3. Faire un commit sur churros/churros pour mettre à jour quel commit du submodule churros/churros a
|
|
|
|
4. Push sur sa branche sur churros/churros |
|
|
|
\ No newline at end of file |