0% encontró este documento útil (0 votos)
13 vistas23 páginas

Fichas IOS

Cargado por

Antonio Difranco
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas23 páginas

Fichas IOS

Cargado por

Antonio Difranco
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

autentia

Como en anteriores ocasiones, Autentia se embarca de nuevo en la publicación de


contenidos didácticos en forma de fichas. Nuestra experiencia anterior con las fichas Agile
ha sido y continúa siendo un éxito de aceptación en la comunidad.

Esto nos ha impulsado a realizar una nueva publicación con una recopilación de buenas
prácticas, patrones, principios y tecnologías para el desarrollo de software que han ido
componiendo la serie de publicaciones sobre guías técnicas que usamos en el propio
Onboarding de Autentia.

Las guías para directivos y técnicos que Autentia lleva publicando desde finales de la
primavera de 2020, se han concebido ya con la incorporación de fichas que aunque integra-
das totalmente en cada uno de los documentos de la serie, permiten también agruparlas por
temas y manejarlas de manera independiente haciendo de ellas un activo muy valioso que
se puede consultar de una manera cómoda y rápida.

Estas fichas exponen conceptos, herramientas y procesos muy utilizados tanto a nivel de
negocio como a nivel tecnológico pero todas con un interés y un valor apropiado que
estamos seguros que la comunidad volverá a valorar.

@G)@
Attribution-ShareAlike 4.0 lnternational
{CC BY-SA 4.0)

Esta obra está licenciada bajo licencia Creative Commons Attribution-ShareAlike 4.0 lnternational (CC BY-SA 4.0)
CoreML

Definición
Es un framework de Apple para el desarrollo de Machine Learning en apps nativas. Con
posibilidad de entrenamiento en el dispositivo. Xcode viene acompañado de la herramienta
CreateML para generar los modelos y entrenarlos sin una sola línea de código.

VENTAJAS DE NEGOCIO VENTAJAS DE DESARROLLO

Conocimiento profundo del cliente, por ejemplo: ● Soporte desde iOS 11 y entrenamiento “on-device” desde
● Categorizar los clientes en función de su iOS 13.
comportamiento para una correcta segmentación. ● Rápida implementación con una API simple y clara.
● Conocer y predecir la Navegación dentro de nuestra ● CoreML es un framework nativo de Apple, lo que nos
app para saber dónde hacer foco. garantiza su continuidad y calidad.
● Conocer y predecir las búsquedas del cliente concreto ● Mediante la herramienta de Xcode CreateML podemos
para ofrecerle de manera activa los productos crear de forma rápida y sin código nuestros modelos y
demandados. entrenarlos.
● Mediante coreMLtools podemos transformar modelos
Recomendar los productos correctos: hechos en otras plataformas al formato de Apple.
● Conocer patrones ocultos en el comportamiento de un
cliente para ofertar productos que le han interesado a
otros clientes de comportamiento similar.
● Hacer estrategias de ventas y marketing basadas en
patrones de comportamiento general o individual.
SwiftUI

Definición
Es un framework de Apple para la construcción de interfaces visuales de forma declarativa,
reduciendo la complejidad del código y optimizado para aprovechar las funciones nativas del
sistema. Disponible desde macOS Catalina 10.15, iOS 13, iPadOS 13, tvOS 13 y watchOS 6.

VENTAJAS EJEMPLO

● Sintaxis declarativa y programación reactiva.


● Diseño bidireccional con las previews: añades un
objeto a la interfaz y se actualiza el código y añades
código y se actualiza la interfaz.
● Con las Previews puedes ejecutar tu app en un
dispositivo Apple conectado y hacer cambios en
tiempo real.
● Soportado en todas las plataformas (iOS, iPadOS,
macOS, watchOS y tvOS).
● Animaciones complejas con poca codificación.
● Favorece la implementación de una arquitectura
limpia con MVVM o VIPER.
● Se puede mezclar con UIKit sin problema.
● Prescinde de Interface Builder y Autolayout.
● Es el futuro de la construcción de interfaces, tanto
Apple como la comunidad apuesta fuertemente por
esta tecnología.
Swift

¿Qué es?
Es un lenguaje de programación desarrollado por Apple para ser utilizado en sus plataformas con
la intención de ser una alternativa a Objective-C. Inicialmente propietario pero liberado como
código abierto en su versión 2.2.

¿PARA QUÉ SE USA? CARACTERÍSTICAS

Inicialmente, cuando fue presentado por Apple, su propósito era ● Interoperable con Objective-C (y por extensión, con C y
ser una alternativa a Objective-C para el desarrollo de C++ mediante un wrapper). Posteriormente añadida
aplicaciones nativas para las plataformas Apple (iOS, iPadOS, interoperatividad con Python.
macOS, watchOS y tvOS). ● Lenguaje fuertemente tipado.
● Compilado.
Con la versión 2.2 y tras ser liberado como código abierto, ha ● Orientado a protocolos.
sido portado a Linux y Windows y han surgido varios proyectos ● Inferencia de tipos.
open source que hacen uso del mismo. Sobre el papel, podría ● Distinción entre tipos de datos opcionales y no
ser utilizado para abordar cualquier desarrollo. opcionales para prevenir los problemas relacionados
con la nulabilidad.
En la actualidad, también puede ser utilizado para el desarrollo ● Cuenta con características de programación funcional.
de backend, por ejemplo con VAPOR. También fue adoptado ● Closures (conocidos como lambdas en otros lenguajes)
por Google para usarlo con TensorFlow como alternativa o y funciones first-class.
complemento a Python. ● Multiplataforma con soporte para macOS, Linux y
Windows.
Recientemente se ha anunciado un proyecto para poder utilizar
Swift también con AWS lambda.
Swift Package Manager

Definición
SPM es un gestor de dependencias basado en paquetes. Tiene soporte para aplicaciones en lado
servidor y aplicaciones de front nativas de Apple. Se puede crear, ejecutar y desplegar por línea de
comandos desde el lanzamiento de Swift 3.0, o a través de Xcode desde Swift 5.0.

¿QUÉ ES UN PAQUETE? ¿PARA QUÉ SIRVE? ¿CÓMO LO USO?

Un paquete es una colección de archivos Cuando necesitamos importar librerías Puedes crear un paquete por línea de
de código en Swift que conforman una propias o de terceros a nuestro proyecto, comandos:
librería, también contiene un fichero vamos a enfrentarnos al problema de ver
llamado Package.swift que es el cómo gestionar las actualizaciones y $ swift package init
manifiesto en el que se declara la dependencias que éstas tienen.
configuración del propio paquete. La Con de Xcode:
configuración básica de un paquete A día de hoy, en el mundo del desarrollo
contiene: iOS, existen soluciones como Cocoapods File -> New -> Swift Package.
o Carthage que dan más problemas que
● El nombre del paquete. soluciones. Con SPM vamos a tener las Una vez creado se sube a un repositorio
● Las plataformas soportadas. siguientes ventajas: público de Git.
● Los productos que genera el
paquete (las librerías). ● Integración total en Xcode. Para importar tu paquete desde Xcode:
● Las dependencias (puede contener ● Funciona en Linux.
dependencias con otros paquetes). ● Linkado automático. File -> Swift Packages -> Add Package
● Los targets que contiene (Módulos). ● Gestiona automáticamente las Dependency
dependencias de los paquetes.
● De código abierto. También puedes importar tu paquete
como dependencia de otro paquete en el
archivo Package.swift.
Catalyst

Definición
Es un proyecto de Apple para transformar las aplicaciones desarrolladas para las plataformas
iOS/iPadOS en aplicaciones para Mac. Es importante tener en cuenta que solo las apps con versión
para iPad van a poder adaptarse.

¿CÓMO? ¿CUÁNDO? ¿DÓNDE?

La transformación se hace traduciendo No todas las apps van a tener sentido Para hacer tu app compatible con Mac
componentes de UIKit (iOS) en AppKit en macOS, si tu aplicación se basa en la basta con tener instalado macOS 10.15 y
(macOS). navegación GPS, o entrenar en un Xcode 11.
gimnasio, Apple no la va a aprobar para
Hay que tener en cuenta que hay su publicación en el Store. En la pestaña General de tu proyecto y
frameworks de iOS que no tienen su en el apartado Deployment Info activar
contrapartida en Mac, por lo que si usas Cuando tu aplicación sea idónea para la el checkbox de Mac:
ARKit, HealthKit, la cámara o el transformación en una versión para Mac,
giroscopio en tu aplicación, tendrás que vas a tener que implementar una serie de
tenerlo en cuenta en tu código: características que igual no tienes
implementadas en iOS:

● Soporte para multitarea.


● Drag and drop.
● Atajos de teclado. Una vez activado podrás correr la app en
el target de macOS desde tu Scheme.
Combine

Definición
Es un framework de Apple que nos proporciona una API declarativa para el proceso de valores a lo
largo del tiempo (programación reactiva).

CARACTERÍSTICAS PRINCIPALES

Los conceptos básicos que hemos de entender en


Combine son dos:

● Publisher: el publicador es un tipo de


objeto observable que emite valores a lo
largo del tiempo. Un publicador tiene
operadores para actuar sobre valores
recibidos de otros publicadores y volver a COMBINE + FOUNDATION
publicarlos.
● Subscriber: el suscriptor es un tipo de Con el lanzamiento de Combine, Apple ha añadido muchas extensiones en
objeto que escucha los valores generados su framework Foundation para añadir las capacidades y ventajas de
por los publicadores. Los publicadores solo Combine en muchas de sus clases. Por ejemplo:
emiten valores cuando el suscriptor los
solicita. ● URLSession.
● Timer.
Se puede combinar la salida de diferentes ● NotificationCenter.
publicadores y coordinar si interacción. ● Sequence.
ARKit

Definición
Es un framework de Apple para crear experiencias de realidad aumentada. Trabajando junto con
RealityKit y la herramienta Reality Composer, dispondremos de todo lo necesario para desarrollar
nuestras apps de AR.

LO QUE HAY QUE SABER LOS COMPAÑEROS PRINCIPALES

● ARKit es un framework para obtener información del mundo ARKit tiene 4 compañeros para el renderizado de gráficos:
real. A partir de su versión 3, junto con RealityKit soporta
● RealityKit.
oclusión automática en tiempo real, seguimiento facial de
● SceneKit.
hasta 3 personas simultáneas y captura de movimiento en
● SpriteKit.
tiempo real.
● Metal.

● RealityKit es un framework que ofrece una API para


renderizado en 3D, utiliza la información proporcionada por
ARKit para integrar fácilmente objetos virtuales en entornos VENTAJAS
del mundo real, con escalado automático, renderizado
fotorealista, física y animaciones. ● Está completamente integrado en el ecosistema de
Apple y se puede usar con otros frameworks de Apple
● Reality Composer es una herramienta de Xcode para crear y como SceneKit o SpriteKit, así como en las apps Mac
editar escenas de AR sin código, permite importar archivos Catalyst.
USDZ y animarlos, así como desencadenar eventos con
distintos tipos de inputs. ● Es bastante sencillo de usar ya que tiene muchas
cosas hechas e integradas por Apple como el rastreo
de la cara, efectos especiales, etc.
SpriteKit

Definición
Es un framework de Apple para dibujar formas, partículas, texto, imágenes y vídeo en dos dimensiones.
Aprovecha Metal para lograr alto rendimiento, al tiempo que ofrece una interfaz de programación simple para
facilitar la creación de juegos y otras aplicaciones intensivas en gráficos. SpriteKit es compatible con iOS,
macOS, tvOS y watchOS, y se integra bien con los frameworks como GameplayKit y SceneKit.

BLOQUES BLOQUES DE
VENTAJAS
PRINCIPALES CONSTRUCCIÓN

SKView: una vista en la que se SKNode: un nodo más general ● Está integrado en el
presentan SKScenes. que se puede usar en una ecosistema de Apple.
escena para agrupar otros nodos
SKScene: una escena 2D que para un comportamiento más
● Es bastante fácil de
se presenta en un SKView y complejo.
utilizar.
contiene uno o más
SKSpriteNodes. SKAction: acciones individuales
o grupos de acciones que se ● Es rápido gracias a Metal.
SKSpriteNode: una imagen 2D aplican a SKNodes para
individual que puede ser implementar animaciones y ● Es gratuito.
animada alrededor de la otros efectos.
escena. ● Puedes utilizarlo en
SKPhysicsBody: permite que la
todas las plataformas de
física se aplique a SKNodes para
Apple.
permitir que se comporten de
una manera realista, incluida la
caída por gravedad, rebotar ● Tiene el motor de física
entre sí y seguir trayectorias integrado.
balísticas.
SceneKit

Definición
Es un framework de Apple para construir las aplicaciones de gráficos 3D de alto nivel que ayuda a crear
escenas y efectos animados en 3D. Incorpora un motor de física, un generador de partículas y formas fáciles de
escribir las acciones de los objetos 3D para que puedan describir su escena en términos de su contenido
(geometría, materiales, luces y cámaras) y luego animarla describiendo los cambios en esos objetos.

CARACTERÍSTICAS PRINCIPALES BLOQUES PRINCIPALES

El framework de SceneKit fue lanzado por primera SCNView: una vista en la que se
vez por Apple junto con OS X 10.8 Mountain Lion y presentan SCNScenes.
más tarde estuvo disponible en iOS con el
SCNScene: una escena 3D que se
lanzamiento de iOS 8.
presenta en un SCNView

El propósito de éste framework es permitir a SCNVector: un vector de tres


desarrolladores, integrar fácilmente gráficos 3D componentes que representa la
en juegos y aplicaciones sin las complejidades de posición de un nodo.
APIs para gráficos, tales como OpenGL y Metal.
Todos los recursos, representados por nodos, son SCNNode: un elemento estructural de
arreglados en un árbol jerárquico llamado scene un gráfico de escena que representa
una posición y se transforma en un
graph.
espacio de coordenadas 3D, al que
puede adjuntar geometría, luces,
Éste árbol funciona muy similar a un view cámaras u otro contenido visualizable.
hierarchy regular en UIKit. SceneKit te permite
simplemente proporcionar una descripción de los
recursos que deseas en su escena, con el propio
framework que maneja todo el código de
representación OpenGL para ti.
SiriKit

Definición
Es un framework de Apple que gestiona las peticiones de los usuarios para los servicios de las
aplicaciones que se originan en Siri o Maps.

CARACTERÍSTICAS
BLOQUES PRINCIPALES RESTRICCIONES
PRINCIPALES

SiriKit abarca los frameworks de Intents e SiriKit define los tipos de solicitudes, ● Hay que pedir el permiso al usuario.
Intents UI, que utiliza para implementar conocidos como Intents, que los
extensiones de aplicaciones que integran sus usuarios pueden realizar. ● El sistema provee unos dominios
servicios con Siri y Maps. SiriKit admite dos predefinidos (envío de mensajes,
tipos de extensiones de aplicación: Los dominios (domains group) agrupan establecer llamadas de voz sobre
las intenciones relacionadas para dejar IP, pagos, etc.), en caso de que no
● Una extensión de aplicación Intents claro qué intenciones puede soportar la se ajuste a lo deseado es necesario
recibe solicitudes de los usuarios de aplicación. implementar un Intent
SiriKit y las convierte en acciones personalizado.
específicas de la aplicación. Por ejemplo, Por ejemplo, el dominio de mensajes
el usuario puede pedirle a Siri que envíe puede tener el intento de enviar
un mensaje, reserve un viaje o comience mensajes, buscar mensajes y marcar
un entrenamiento con su aplicación. mensajes como leídos o no leídos.

● Una extensión de la aplicación Intents


UI muestra la marca u otro contenido
personalizado en la interfaz Siri o Maps,
después de que la extensión de la
aplicación Intents cumple una solicitud
del usuario. La creación de esta extensión
es opcional.
CoreData

Definición
Es un framework de Apple para persistir o almacenar en caché los datos en un solo
dispositivo. Abstrae los detalles de mapear los objetos a un store (almacén), lo que facilita guardar
datos de Swift y Objective-C sin administrar una base de datos directamente.

CARACTERÍSTICAS
BLOQUES PRINCIPALES VENTAJAS
PRINCIPALES

Usa Core Data para guardar los datos ● Persistent store coordinator: es un ● Está integrado en el ecosistema de
permanentes de la aplicación para uso wrapper de nuestra base de datos, Apple
fuera de línea, almacenar datos administra las conexiones (lecturas
temporales en caché y agregar y escritura), lo podemos visualizar ● El agrupar, filtrar u organizar
funcionalidad de deshacer a su como un apuntador a nuestra base nuestros datos.
aplicación en un solo dispositivo. de datos.
● Evitar escribir SQL y lograr queries
● Persistencia. ● NSManagedObjectModel: describe complejos mediante el uso de
● Abstracción. el schema de nuestra base de objetos Fetch Requests y Predicates.
● Deshacer y rehacer cambios datos, es decir, las tablas y
individuales o por lotes. relaciones. ● Reducir el impacto a nivel memoria
● Tareas de datos en segundo (memory footprint) mediante el uso
plano (background tasks). ● NSManagedObjectContext: nos de Faulting.
● Versionado y Migración. permite crear, solicitar o actualizar
● Sincronización de los datos con objetos de nuestra base de datos.
las vistas .
● Persistent container: encapsula
todos los componentes anteriores.
MapKit

Definición
Es un framework de Apple para para incrustar los mapas de Apple directamente en tus
propias vistas. Proporciona la interfaz para añadir tus propias capas, anotaciones o texto encima
del mapa.

CARACTERÍSTICAS
BLOQUES PRINCIPALES VENTAJAS
PRINCIPALES

Usa el framework MapKit para incrustar ● MKMapView: una vista de mapa ● Está integrado en el
mapas directamente en tus vistas. Puedes incrustable, similar a la proporcionada por ecosistema de Apple.
agregar anotaciones y superposiciones al la aplicación Mapas.
mapa, los puntos de interés, etc. También ● Es bastante fácil de utilizar.
proporciona el mecanismo para buscar los ● MKMapItem: un punto de interés en el
puntos de interés. mapa.

Si tu aplicación ofrece indicaciones de ● MKAnnotationView: la representación


tránsito, puedes hacer que tus indicaciones visual de uno de tus objetos de anotación.
estén disponibles en la app Mapas.
Además, puedes usar la app Mapas para ● MKDirections: un objeto de utilidad que
RESTRICCIONES
complementar las instrucciones que calcula direcciones e información de
proporcionas en tu aplicación. tiempo de viaje en función de la
● La cobertura de los mapas
información de ruta que proporciones.
aún es mejorable en
Por ejemplo, si tu aplicación solo proporciona
muchos sitios.
indicaciones para viajar en metro, puedes
usar Maps para proporcionar indicaciones a
pie desde y hacia las estaciones de metro.
Core NFC

Definición
Es un framework de Apple para detectar etiquetas NFC, leer la información guardada en ellas en
el formato NDEF y modificarla.

CARACTERÍSTICAS
BLOQUES PRINCIPALES RESTRICCIONES
PRINCIPALES

El framework Core NFC sirve para leer ● NFCReaderSession: una clase de sesión ● Core NFC no está disponible para
etiquetas para dar a los usuarios más de lectura para detectar etiquetas de su uso en extensiones de
información sobre su entorno físico y formato de intercambio de datos NFC aplicaciones y requiere de un
los objetos del mundo real. (NDEF) con NFCNDEFReaderSession y dispositivo que admita la
conectar con el resto de tags con comunicación de NFC.
Con Core NFC, puedes leer las NFCTagReaderSession.
etiquetas de comunicación de campo ● Core NFC no admite ID de
cercano (NFC) de los tipos 1 a 5 que ● NFCNDEFReaderSessionDelegate: un aplicaciones relacionadas con el
contienen datos en el formato de protocolo de delegado que sirve para leer pago.
intercambio de datos NFC (NDEF) y los datos NDEF de una etiqueta NFC.
conectar con etiquetas ISO7816, ● El uso de Core NFC es restringido
ISO15693, FeliCa y MIFARE. ● NFCTagReaderSessionDelegate: un y es apto solo para trabajar con las
protocolo de delegado que sirve para etiquetas NFC y no se permite la
Por ejemplo, la aplicación podría gestionar la conexión a un tag. comunicación entre otros
proporcionar a los usuarios información dispositivos que soportan NFC.
sobre los productos presentados en una ● NFCNDEFPayload: el payload (carga útil)
tienda o los cuadros en un museo. que contiene los datos, el nombre de tipo
de formato de NDEF de un mensaje, etc.

● NFCTag: representa el tag NFC al que se


ha conectado.
WatchKit

Definición

Es un framework de Apple que proporciona la infraestructura para crear aplicaciones watchOS.

CARACTERÍSTICAS
BLOQUES PRINCIPALES RESTRICCIONES
PRINCIPALES

Con la ayuda de framework WatchKit ● WKExtension: una clase de la ● Se necesita la app-compañero (a


podemos crear simples y sencillas extensión que gestiona los partir de WatchOS 6 se puede crear
comportamientos de los las apps independientes).
aplicaciones para WatchOS.
controladores de interfaz de tu
aplicación. ● Las animaciones están
Se construyen con los elementos restringidas. Puedes usar solo un
predeterminados y dentro de la ● WKInterfaceController: una clase conjunto de imágenes para crear
que proporciona la infraestructura una especie de GIF animado.
extensión delegado (extension delegate).
para administrar la interfaz en una
aplicación watchOS (al igual que ● Las interfaces se crean con los
A pesar de su simplicidad tienen acceso elementos simples, poco flexibles
UIViewController en UIKit app).
a las tareas en segundo plano, (una lista, un botón, un label, etc.).
intenciones de Siri, sesiones de ● WKExtensionDelegate: el protocolo ● Las notificaciones pueden ser de
entrenamiento, etc. que contiene una colección de dos tipos: Long and Short.
métodos que administran el
Los usos más adecuados para apps comportamiento a nivel de ● Los gestos están
predeterminados, no se soporta
WatchOS son mediciones de todo tipo, aplicación de una extensión
multitouch (multitáctil).
las apps con solo una función principal WatchKit.

(como Shazam), rastreadores de ● No puedes crear tus propios


componentes personalizados.
ejercicios, mostrar la información en el
formato compacto, etc.
MVVM
VM

Definición
M V El patrón de arquitectura MVVM consiste en separar nuestra aplicación en tres capas: la lógica
de negocio, la interfaz gráfica y la lógica de presentación.

CARACTERÍSTICAS
BLOQUES PRINCIPALES PROBLEMAS
PRINCIPALES

El principal objetivo de este patrón es ● Model: representa los conceptos y las ● Con el crecimiento de la lógica
sacar el estado de la vista y la lógica de entidades de negocio, también la de la app el ViewModel puede
presentación de la vista. De este modo, lógica de negocio. convertirse en un mega-objeto
la vista solo contiene los elementos poco sostenible.
● ViewModel: contiene la lógica de
visuales.
presentación y el estado de la vista. ● El problema de la gestión del
Recupera los datos del negocio desde estado de la vista es bastante
El ViewModel representa el estado de la el Modelo, aplicando la lógica de complejo.
vista y maneja los componentes de la presentación y guardando el estado
vista y sus estados a través de de la vista. El estado se puede hacer
“binding” (atadura). El binding se puede global (a la Redux) o guardando cada
hacer como un cierre (closure), a través
viewModel su propio estado. VENTAJAS
del mecanismo Key-Value Observing o
● View: pinta la interfaz gráfica y pasa
con la ayuda de las librerías de terceros, ● Es un patrón bastante “sencillo”
las interacciones de usuario a
así como RxSwift/ReactiveCocoa, etc. para implementar sobre todo
ViewModel. Recupera los datos
para las apps simples.
preparados desde ViewModel a través
SwiftUI ya tiene los mecanismos de binding.
● Alta posibilidad de reutilización
integrados de “binding” como los de los ViewModels para
property wrappers @State o @Binding. diferentes Views.
Viper

R Definición
V P I E Viper es un patrón arquitectónico que implementa los principios de Clean Architecture,
aplicándolos al desarrollo de aplicaciones iOS. Consiste en separar la lógica de la aplicación en
cinco capas: View, Interactor, Presenter, Entity y Router.

CARACTERÍSTICAS
BLOQUES PRINCIPALES DESVENTAJAS
PRINCIPALES

La implementación del patrón Viper en ● View: pinta lo que le manda el ● Existe cierta “sobrecarga” en
el desarrollo de aplicaciones iOS consiste Presenter y pasa las entradas de crear cinco clases diferentes con
en dividir la lógica de cada módulo usuario al Presenter. Es la capa más los diferentes protocolos por
(pantalla) de la aplicación en cinco sencilla de todas. cada módulo.
capas principales con las diferentes
responsabilidades. ● Interactor: contiene la lógica de ● Es un patrón complejo que
negocio. requiere cierto aprendizaje y
De esto modo, aislamos las costumbre de usar.
dependencias y podemos testear más ● Presenter: contiene la lógica de
fácilmente tanto las interacciones entre presentación y procesa las entradas
capas como las capas propias. de usuario. VENTAJAS

Las interacciones entre capas se ● Entity: contiene los modelos básicos ● Cada capa es reutilizable y
ejecutan a través de los protocolos para (entities) de negocio que se usan por testeable.
poder sustituir los objetos reales con los Interactor.
mocks en los tests unitarios. ● Con el crecimiento, la aplicación
● Router: contiene la lógica de sigue estando estructurada y
navegación. testeable a pesar de su tamaño.
Accesibilidad en iOS

Definición
La accesibilidad en las aplicaciones móviles significa hacerlas manejables y cómodas para toda la
población, independientemente de sus capacidades técnicas o físicas.

LAS HERRAMIENTAS PARA DESARROLLADORES LAS HERRAMIENTAS PRINCIPALES PARA


USUARIO

● Accessibility Inspector: es una herramienta que nos ● VoiceOver: el lector de pantalla que pronuncia en voz alta
proporciona la información sobre la accesibilidad de cada todo lo que sucede en la pantalla y se manipula con los
elemento de nuestra aplicación. Además, puede hacer la gestos.
auditoría de toda nuestra aplicación en términos de
accesibilidad. ● Zoom: escala el contenido de la pantalla.

● Accessibility Labels: cada vista UIView tiene la propiedad ● Lupa: utilizando la cámara trasera, escala el espacio
accesibilityLabel que facilita la información sobre la vista al alrededor de usuario.
lector de pantalla VoiceOver.
● Los tamaños del texto dinámicos: se puede cambiar el
● Accessibility Traits: para los elementos customizados es tamaño del texto en las apps que lo soportan.
importante poner un rasgo(trait) para transmitir el sentido
del elemento. ● Lectura de pantalla: lee el contenido de pantalla.

● Accessibility Notifications: puedes crear las notificaciones ● Acceso guiado: limita el acceso de usuario a solo una app.
que avisan al usuario sobre los cambios en la interfaz, scroll o
cualquier anuncio en la voz alta. ● AssistiveTouch: ayuda a los usuarios que tienen
dificultades para tocar la pantalla. Muestra un menú
● DynamicTypes: escala los textos en la aplicación según los adicional en blanco y negro con los botones que permiten
ajustes del móvil. manipular el contenido de pantalla fácilmente.
Bots de XCode

Definición

Es un sistema de integración continua de Apple para los proyectos de iOS y Mac.

CARACTERÍSTICAS
BLOQUES PRINCIPALES DESVENTAJAS
PRINCIPALES

Para usar el sistema se necesita instalar ● Bot: es un conjunto de tareas que ● Se puede usar solo para
XCode Server. Está integrado en XCode a quieres hacer con el código de proyectos iOS/Mac.
partir de la versión 9. repositorio.
● La funcionalidad está bastante
● XCode Server: es una herramienta limitada comparando con otras
Es una plataforma de integración
que permite ejecutar los Bots tanto soluciones (Jenkins, Bamboo,
continua que está integrada en XCode localmente como en otro ordenador. etc).
y que permite ejecutar los test
unitarios, los test de la interfaz gráfica, ● MacOS Server: es una aplicación Mac ● Tiene pequeños bugs.
archivar los builds y mandar los correos que complementa MacOS con las
electrónicos de estado. funcionalidades de servidor de
diferentes tipos como MTA servidor,
AFP y SMB servidor, el servidor web, VENTAJAS
Se encarga de crear y mantener los
servidor wiki, servidor de mensajería,
certificados y los perfiles de tu
etc. ● Se puede usar localmente en tu
aplicación. También, muestra la Está disponible en App Store como la ordenador.
cobertura de los test unitarios, ejecuta los aplicación separada. Originalmente
test en diferentes dispositivos. era necesario instalarlo pero ● Está integrado en XCode y no
actualmente ya no es necesario para hace falta instalar nada más.
Además, permite instalar los build OTA poder utilizar los bots.
(Over-the-Air) a través de navegador en ● Se ejecutan los test UI en
diferentes dispositivos iOS/Mac.
tu dispositivo.
App Clips

¿Qué es?
Con App Clips podemos crear un versión «reducida» de nuestra app que se ejecutará con un disparador
como un código QR o una etiqueta NFC. Están pensados para crear una experiencia limitada y contenida de
lo que la app principal puede ofrecer, como vender algún producto o mostrar algún tipo de información.

VENTAJAS DE NEGOCIO LIMITACIONES DESARROLLO

Los Clips son una buena herramienta Los Clips presentan algunas limitaciones Para añadir un App Clip a tu aplicación
para aumentar la conversión de los a la hora de desarrollarlos que se deben principal basta con crear un Target
potenciales usuarios al no tener que tener en cuenta: nuevo tal y como lo hacemos con las
buscar nuestra app en el App Store. extensiones existentes, no hay limitación
Los Clips pueden mostrarse con los ● Disponibles con iOS 14. al número de clips que podemos añadir.
siguientes disparadores: ● No pueden pesar más de 10 megas.
● Ha de ser nativo 100%. Los clips permiten programar una
● Escanear una etiqueta NFC o ● La construcción ha de ser 100% con notificación tras 8 horas después de su
código visual en una ubicación SwiftUI. descarga para recordar algo al usuario, al
física. ● No puede acceder a los datos de pulsarla, se vuelve a abrir el clip.
● Al tocar una sugerencia basada en la usuario, por lo que los frameworks
ubicación de Siri Suggestions. relacionados con éste no están Hay una nueva API para verificar que el
● Tocando un enlace en la aplicación disponibles (Salud, Contactos...). usuario se encuentra en el lugar donde
Mapas.
● Al cabo de un tiempo de debe estar el Clip.
● Al tocar un banner de aplicación
inactividad, el clip es borrado por el
inteligente en un sitio web.
● Tocando un enlace que alguien ha sistema. Los permisos que demos al Clip los
compartido en la aplicación hereda la app principal en caso de
Mensajes. descarga de ésta.
WidgetKit

Definición
Con la ayuda de WidgetKit puedes crear los widgets (mini-vistas) para tres plataformas de
Apple: iOS, iPad OS y macOS. A partir de iOS 14, puedes poner los widgets en el escritorio de tu
iPhone, en TodayView en iPad OS y en el centro de notificaciones de macOS Big Sur (11.0).

CARACTERÍSTICAS DESARROLLO
LIMITACIONES
PRINCIPALES

Los widgets son una manera dinámica y ● Está disponible solo a partir de iOS 14 WidgetKit soporta SwiftUI, AppKit y las
directa para demostrar la informacion y macOS Big Sur(11.0). apps de macOS basadas en Catalyst. El
útil de tu aplicación en el escritorio de tu ● Los widgets no pueden contener los widget se define a través de:
móvil, tablet o portátil. El widget tiene elementos interactivos (como los ● kind: el identificador de tipo String
que ser relevante, personalizable y campos de texto o los botones). de widget.
entendible de un solo vistazo. La extensión ● Tienen solo tres tamaños (pequeño, ● configuration: el widget puede ser
de WidgetKit es una extensión de fondo medio y grande). estático (Static Configuration) o
(background), que proporciona las vistas ● Tienen que ser escritos con SwiftUI. configurable a través de Intent
del widget de antemano para cada ● Los widgets no tienen el estado. (IntentConfiguration).
momento específico. Así, se evita el ● No soportan el scrolling. ● supportFamilies: el tamaño de
problema de “carga” y “espera”. Los ● No soportan el reproducción de los widget: systemSmall,
widgets se configuran a través de Intents. videos o las imágenes animadas. systemMedium y systemLarge.
Además, se pueden actualizar las ● La única interacción que está ● placeholder: la vista que muestra la
jerarquías de vistas ya preparadas desde permitida es a través de tocar el estructura de widget sin mostrar los
tu aplicación o establecer un horario de widget que está vinculado a un datos de usuario.
actualización. Se puede crear una pila de enlace profundo (deepLink) de tu ● provider: la estructura que
widgets que va cambiando el widget que aplicacion o creando subenlace proporciona el conjunto de vistas
se muestra arriba de todos. dentro del widget con Link API. para cada momento de tiempo y la
primera entrada de datos (snapshot).
Estas fichas son un recurso vivo,
¡anímate a hacernos sugerencias y comentarios!

@autentia

Puedes descargar la última versión en:


https://autentia.com/libros/

Además encontrarás libros gratuitos, guías


y recursos útiles para tu día a día.

CULTURA DE ENTREGA DE VALOR

Guía introductoria para directivos y técnicos Guía para directivos y técnicos V.1
V.2

También podría gustarte