Introducción a AWS
Crear una aplicación iOS
Crear una aplicación iOS sencilla con AWS Amplify
Módulo 2: inicializar Amplify
En este módulo, instalará y configurará la CLI de Amplify.
Introducción
Ahora que hemos creado una aplicación iOS, queremos continuar con el desarrollo y agregar nuevas funciones.
Para comenzar a usar AWS Amplify en su aplicación, debe instalar la línea de comandos de Amplify, inicializar el directorio del proyecto de Amplify, configurar su proyecto para usar las bibliotecas de Amplify e inicializar las bibliotecas de Amplify en el tiempo de ejecución.
Lo que aprenderá
- Inicializar un nuevo proyecto de Amplify
- Agregar bibliotecas de Amplify en su proyecto
- Inicializar bibliotecas de Amplify en el tiempo de ejecución
Conceptos clave
CLI de Amplify: la CLI de Amplify le permite crear, administrar y retirar servicios de AWS directamente de su terminal.
Bibliotecas de Amplify: las bibliotecas de Amplify le permiten interactuar con los servicios de AWS desde una aplicación web o móvil.
Tiempo de realización
10 minutos
Servicios utilizados
Implementación
-
Instalar la CLI de Amplify
La CLI de AWS Amplify depende de Node.js. Consulte la sección de requisitos previos en la introducción para instalar Node.js.
Para instalar la CLI de AWS Amplify, abra una terminal y escriba el siguiente comando:
## Install Amplify CLI npm install -g @aws-amplify/cli ## Verify installation and version amplify --version # Scanning for plugins... # Plugin scan successful # 4.27.2
-
Inicializar un backend de Amplify
Para crear la estructura básica de nuestro backend, primero debemos inicializar el directorio del proyecto de Amplify y crear nuestro backend en la nube.
Abra una terminal y cambie los directorios de su proyecto. Por ejemplo, si creó un proyecto en la carpeta ~/Developer, puede escribir:
cd ~/Developer/iOS\ Getting\ Started
Verifique que esté en el directorio correcto; debería verse así:
➜ iOS Getting Started git:(master) ✗ ls -al total 32 drwxr-xr-x 9 stormacq admin 288 Jul 8 15:09 . drwxr-xr-x 17 stormacq admin 544 Jul 6 16:20 .. -rw-r--r--@ 1 stormacq admin 6148 Jul 8 15:06 .DS_Store drwxr-xr-x 9 stormacq admin 288 Jul 6 16:12 iOS Getting Started drwxr-xr-x@ 5 stormacq admin 160 Jul 8 15:09 iOS Getting Started.xcodeproj
Inicialice la estructura del proyecto y el archivo de configuración de Amplify. Ejecute el siguiente comando:
amplify init ? Enter a name for your project (iOSGettingStarted): 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: iOS is already selected, 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.
Puede crear un perfil mediante la CLI de AWS con aws configure --profile <name> si aún no tiene uno.
Amplify inicializa su proyecto en la nube; puede tardar unos minutos. Luego de unos minutos, debería ver el siguiente mensaje:
✔ 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!
-
Agregar bibliotecas de Amplify a su proyecto
Antes de seguir con este paso, asegúrese de que cerró Xcode.
a. Abra una terminal y cambie los directorios de su proyecto. Por ejemplo, si creó un proyecto en la carpeta ~/Developer, puede:
cd ~/Developer/iOS\ Getting\ Started
Verifique que está en el directorio correcto, debería verse así:
➜ iOS Getting Started git:(master) ✗ ls -al total 32 drwxr-xr-x 9 stormacq admin 288 Jul 8 15:09 . drwxr-xr-x 17 stormacq admin 544 Jul 6 16:20 .. -rw-r--r--@ 1 stormacq admin 6148 Jul 8 15:06 .DS_Store drwxr-xr-x 6 stormacq admin 192 Jul 8 15:26 amplify -rw-r--r-- 1 stormacq admin 64 Jul 8 15:26 amplifyconfiguration.json -rw-r--r-- 1 stormacq admin 116 Jul 8 15:26 awsconfiguration.json drwxr-xr-x 9 stormacq admin 288 Jul 6 16:12 iOS Getting Started drwxr-xr-x@ 5 stormacq admin 160 Jul 8 15:09 iOS Getting Started.xcodeproj
b. Para iniciar su proyecto con el administrador de paquetes CocoaPods, ejecute el siguiente comando.
## is Xcode really closed ? ## Initialize the Amplify Project pod init
Luego de hacer esto, debería ver un archivo creado recientemente llamado Podfile. Este archivo se utiliza para describir de qué paquetes depende su proyecto.
c. Actualice Podfile para incluir los siguientes pods y actualizar la plataforma:
# you need at least version 13.0 for this tutorial, more recent versions are valid too platform :ios, '13.0' target 'iOS Getting Started' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for getting started pod 'Amplify', '~> 1.0' # required amplify dependency pod 'Amplify/Tools', '~> 1.0' # allows to call amplify CLI from within Xcode end
d. Para descargar e instalar las bibliotecas de Amplify en su proyecto, ejecute el comando:
pod install --repo-update
e. Luego de hacer esto, debería ver un archivo llamado iOS Getting Started.xcworkspace. De ahora en adelante, debe utilizar este archivo en lugar del archivo iOS Getting Started.xcodeproj.
Su directorio debería verse así:
➜ iOS Getting Started git:(master) ✗ ls -al total 32 drwxr-xr-x 9 stormacq admin 288 Jul 8 15:09 . drwxr-xr-x 17 stormacq admin 544 Jul 6 16:20 .. -rw-r--r--@ 1 stormacq admin 6148 Jul 8 15:06 .DS_Store drwxr-xr-x 6 stormacq admin 192 Jul 8 15:26 amplify -rw-r--r-- 1 stormacq admin 64 Jul 8 15:26 amplifyconfiguration.json -rw-r--r-- 1 stormacq admin 116 Jul 8 15:26 awsconfiguration.json -rw-r--r-- 1 stormacq admin 394 Jul 8 15:09 Podfile -rw-r--r-- 1 stormacq admin 359 Jul 8 15:09 Podfile.lock drwxr-xr-x 8 stormacq admin 256 Jul 8 15:09 Pods drwxr-xr-x 9 stormacq admin 288 Jul 6 16:12 iOS Getting Started drwxr-xr-x@ 5 stormacq admin 160 Jul 8 15:09 iOS Getting Started.xcodeproj drwxr-xr-x 3 stormacq admin 96 Jul 8 15:09 iOS Getting Started.xcworkspace
Para abrir su espacio de trabajo en Xcode, ejecute el comando:
xed .
-
Inicializar Amplify en el tiempo de ejecución
En el tiempo de ejecución, las bibliotecas de Amplify necesitan los archivos de configuración de Amplify generados por la CLI.
a. Agregar los archivos de configuración de Amplify a su proyecto
Con el buscador, ubique awsconfiguration.json y amplifyconfiguration.json en la raíz del directorio de su proyecto. Arrástrelos y suéltelos en su proyecto Xcode:
b. Cargar las clases de Amplify al tiempo de ejecución
Vamos a crear una clase Backend a fin de agrupar el código para interactuar con nuestro backend. Se utiliza un patrón de diseño singleton para que esté disponible fácilmente a través de la aplicación y garantizar que las bibliotecas de Amplify se inicialicen solo una vez.
El inicializador de clases se encarga de iniciar las bibliotecas de Amplify.
Cree un nuevo archivo de texto swift Backend.swift, agréguelo a su proyecto de Xcode (CTRL-N) y agregue este código:
import UIKit import Amplify class Backend { static let shared = Backend() static func initialize() -> Backend { return .shared } private init() { // initialize amplify do { try Amplify.configure() print("Initialized Amplify"); } catch { print("Could not initialize Amplify: \(error)") } } }
Inicializaremos nuestro objeto Backend singleton cuando la aplicación termine de iniciarse.
Abra el archivo AppDelegate.swift y agregue Backend.initialize(); en el método application(:didFinishLaunchingWithOptions:), de la siguiente manera:
// inside the AppDelegate.swift file func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // initialize Amplify let _ = Backend.initialize() return true }
-
Verificar su configuración
Para verificar que todo funcione como se espera, cree el proyecto. Haga clic en el menú Product (Producto) y seleccione Build (Crear) o presione ⌘B. No debería haber ningún error.
Conclusión
Ha iniciado el proyecto Amplify y ahora está listo para comenzar a agregar funciones. En el siguiente módulo, agregaremos todo un flujo de autenticación de usuarios con solo algunas líneas de código.