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

  • 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
  • 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!
  • 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 .
  • 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
    }
  • 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.

¿Este módulo le resultó útil?

Agregar autenticación