Démarrer avec AWS
Créer une application Android
Créer une application Android simple avec AWS Amplify
Module 2 : Initialisation d'Amplify
Dans ce module, vous installerez et configurerez l'interface de ligne de commande (CLI) Amplify.
Introduction
Maintenant que nous avons créé une application Android, nous voulons en poursuivre le développement et ajouter de nouvelles fonctionnalités.
Pour commencer à utiliser AWS Amplify dans votre application, vous devez installer la ligne de commande Amplify, initialiser le répertoire du projet Amplify, configurer votre projet pour utiliser les bibliothèques Amplify, et initialiser les bibliothèques Amplify au moment de l'exécution.
Ce que vous apprendrez
- Initialisation d'un nouveau projet Amplify
- Ajout de bibliothèques Amplify à votre projet
- Initialisation des bibliothèques Amplify à l'exécution
Concepts clés
Interface de ligne de commande Amplify – L'interface de ligne de commande Amplify vous permet de créer, de gérer et de supprimer des services AWS directement à partir de votre terminal.
Bibliothèques Amplify : ces bibliothèques vous permettent d'interagir avec les services AWS à partir d'une application mobile ou web.
Durée
10 minutes
Services utilisés
Implémentation
-
Installation de l'interface de ligne de commande Amplify
L'interface de ligne de commande AWS Amplify dépend de Node.js ; reportez-vous à la section des prérequis dans l'introduction pour installer Node.js
Pour installer l'interface de ligne de commande AWS Amplify, ouvrez un terminal et entrez la commande suivante :
## Install Amplify CLI npm install -g @aws-amplify/cli ## Verify installation and version amplify --version # Scanning for plugins... # Plugin scan successful # 4.29.4
-
Initialisation d'un backend Amplify
Pour créer la structure de base de notre backend, nous devons d'abord initialiser le répertoire du projet Amplify et créer notre backend cloud.
Ouvrez un terminal et basculez vers le répertoire de votre projet. Par exemple, si vous avez créé votre projet dans le dossier ~/AndroidStudioProjects/android-getting-started, vous pouvez saisir :
cd ~/AndroidStudioProjects/android-getting-started
Vérifiez que vous êtes dans le bon répertoire ; celui-ci doit ressembler à ceci :
➜ android-getting-started git:(main) ✗ ls -al total 32 drwxr-xr-x 14 stormacq admin 448 Oct 6 14:06 . drwxr-xr-x 16 stormacq admin 512 Oct 6 11:28 .. -rw-r--r-- 1 stormacq admin 208 Oct 6 14:04 .gitignore drwxr-xr-x 6 stormacq admin 192 Oct 6 14:04 .gradle drwxr-xr-x 13 stormacq admin 416 Oct 6 15:19 .idea drwxr-xr-x 8 stormacq admin 256 Oct 6 14:06 app drwxr-xr-x 3 stormacq admin 96 Oct 6 14:06 build -rw-r--r-- 1 stormacq admin 642 Oct 6 14:04 build.gradle drwxr-xr-x 3 stormacq admin 96 Oct 6 14:04 gradle -rw-r--r-- 1 stormacq admin 1162 Oct 6 14:04 gradle.properties -rwxr--r-- 1 stormacq admin 5296 Oct 6 14:04 gradlew -rw-r--r-- 1 stormacq admin 2260 Oct 6 14:04 gradlew.bat -rw-r--r-- 1 stormacq admin 437 Oct 6 14:04 local.properties -rw-r--r-- 1 stormacq admin 59 Oct 6 14:04 settings.gradle
Initialisez la structure et le fichier de configuration du projet Amplify et le fichier de configuration. Exécutez la commande suivante :
amplify init ? Enter a name for your project (androidgettingstarted): accept the default, press enter ? Enter a name for the environment (dev): accept the default, press enter ? Choose your default editor: use the arrow key to select your favorite text editor an press enter ? Choose the type of app that you're building: android is already selected, press enter ? Where is your Res directory: accept the default, press enter ? Do you want to use an AWS profile?, Y, press enter ? Please choose the profile you want to use: use the arrow keys to select your profile and press enter.
Vous pouvez créer un profil à l'aide de aws configure --profile <name> dans l'interface de ligne de commande AWS si vous n'en avez pas encore.
Amplify initialise votre projet dans le cloud, ce qui peut prendre quelques minutes. Au bout de quelques minutes, vous devriez voir un message du type :
✔ Successfully created initial AWS cloud resources for deployments. ✔ Initialized provider successfully. Initialized your environment successfully. Your project has been successfully initialized and connected to the cloud!
-
Ajout de bibliothèques Amplify à votre projet
Amplify pour Android est distribué par le biais des packages Apache Maven. Dans cette section, vous allez ajouter les packages et les autres directives requises à la configuration de votre génération.
De retour dans Android Studio, développez Scripts Gradle et ouvrez build.gradle (Projet : Android_Getting_Started). Ajoutez la ligne mavenCentral() dans le bloc de référentiels parmi les blocs buildscript et allprojects.
buildscript { ext.kotlin_version = "1.4.10" repositories { google() jcenter() // Add this line into `repositories` in `buildscript` mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:4.0.1" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() // Add this line into `repositories` in `buildscript` mavenCentral() } }
Dans Scripts Gradle, ouvrez build.gradle (Module : application) et ajoutez la dépendance centrale du cadre Amplify dans le bloc des mises en œuvre.
dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.2.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.1' implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0' implementation 'androidx.navigation:navigation-ui-ktx:2.3.0' testImplementation 'junit:junit:4.13' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' // Amplify core dependency implementation 'com.amplifyframework:core:1.4.0' }
Si vous développez dans Java ou que vous ciblez Android SDK 21 ou antérieur, veuillez consulter la documentation pour les changements de configuration supplémentaires à apporter.
Maintenant, exécutez Gradle Sync (synchronisation Gradle).
Après quelques instants, vous devriez voir
BUILD SUCCESSFUL in 1s
-
Initialisation d'Amplify à l'exécution
Créons une classe Backend pour regrouper le code afin d'interagir avec notre backend. J'utilise un modèle de conception unique afin que l'application y accède aisément et que les bibliothèques Amplify ne soient initialisées qu'une fois.
L'initialiseur de classe s'occupe de l'initialisation des bibliothèques Amplify.
Sous java/com.example.androidgettingstarted, créez un nouveau fichier Kotlin Backend.kt. Ouvrez-le puis ajoutez ce code :
package com.example.androidgettingstarted import android.content.Context import android.util.Log import com.amplifyframework.AmplifyException import com.amplifyframework.core.Amplify object Backend { private const val TAG = "Backend" fun initialize(applicationContext: Context) : Backend { try { Amplify.configure(applicationContext) Log.i(TAG, "Initialized Amplify") } catch (e: AmplifyException) { Log.e(TAG, "Could not initialize Amplify", e) } return this } }
Nous initialisons notre objet Backend unique lorsque l'application se lance.
Sous java/com.example.androidgettingstarted, créez un nouveau fichier Kotlin Application.kt. Ouvrez-le puis ajoutez ce code :
package com.example.androidgettingstarted import android.app.Application class AndroidGettingStartedApplication : Application() { override fun onCreate() { super.onCreate() // initialize Amplify when application is starting Backend.initialize(applicationContext) } }
Sous manifests, ouvrez AndroidManifest.xml et ajoutez le nom de l'application au sein de l'élément <application>.
<!-- add the android:name attribute to the application node --> <application android:name="AndroidGettingStartedApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.GettingStartedAndroid"> ...
Pendant que ce fichier est ouvert, profitez-en pour ajouter deux permissions dont l'application aura besoin dans les futures étapes de ce tutoriel :
<!-- add these nodes between manifest and application --> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
-
Vérification de votre configuration
Pour vérifier que tout fonctionne comme prévu, générez et exécutez le projet. Cliquez sur l'icône Exécuter ▶️ dans la barre d'outils ou tapez ^ R.
Pour vérifier que tout fonctionne comme prévu, générez et exécutez le projet. Cliquez sur l'icône Exécuter▶️ dans la barre d'outils ou tapez ^ R.Il ne devrait y avoir aucune erreur.
BUILD SUCCESSFUL in 6s 23 actionable tasks: 8 executed, 15 up-to-date
Conclusion
Vous venez d'initialiser le projet Amplify et vous êtes maintenant prêt à commencer l'ajout de fonctionnalités ! Dans le prochain module, nous ajouterons un flux complet d'authentification des utilisateurs avec seulement quelques lignes de code.