En el desarrollo de iOS, ¿cuál es el 20% de los conceptos utilizados el 80% del tiempo?

Gracias por publicar esta pregunta. (En el desarrollo de iOS, ¿cuál es el 20% de los conceptos utilizados el 80% del tiempo?) Me encantaría compartir lo que desearía haber encontrado hace media década (aunque no todo lo siguiente existía en ese entonces).


(1) Xcode, Storyboards y Interface Builder

Aprende a manejar Xcode. Aprenda a usar los diferentes Navegadores a la izquierda, los diferentes Inspectores a la derecha y las herramientas de depuración en la parte inferior. Aprenda a usar la vista Asistente de manera efectiva.

Pero lo más importante, aprenda cómo usar Interface Builder y Storyboards , ya que allí es donde creará los elementos visuales de las pantallas de sus aplicaciones.


(1.1) Diseño automático y adaptabilidad

Aprenda el diseño automático lo antes posible. Le ayudará a no sentirse frustrado mientras trabaja con Storyboards y tiene problemas con el diseño de la interfaz de usuario en diferentes dispositivos.

Mientras lo haces, aprende sobre Stack Views también, pero antes de eso aprende sobre …


(2) Vistas y controles

Las vistas son los componentes básicos de la interfaz de usuario de cualquier aplicación de iOS. Aprenda a crear vistas genéricas y las propiedades más utilizadas, como alpha , frame , bounds , hidden , color de backgroundColor , transform , etc. Conozca los conceptos que involucran la jerarquía de vistas de un controlador de vista, incluida la adición y eliminación de subvistas.

También aprenda sobre las toneladas de vistas y controles proporcionados por el sistema: vistas como vistas de imágenes, vistas de desplazamiento, vistas de texto, páginas, popovers, vistas web y controles como botones, controles deslizantes, etiquetas, controles de página, selectores, pasos, interruptores, texto campos.


(3) Controladores de vista de contenedor

Conozca el concepto de controladores de vista de contenedor. Los más populares (y provistos por el sistema) son: Controladores de navegación, Controladores de vista dividida y Controladores de barra de pestañas.

Imagen: Barras de navegación

Imagen: Barras de pestañas

Necesitará al menos uno de estos para cada aplicación a menos que esté creando un nuevo paradigma de diseño.

Imagen: la navegación jerárquica se logra con los controladores de navegación

Imagen: la navegación plana se logra con los controladores de barra de pestañas

Imagen: La navegación basada en contenido se logra mediante el uso de botones y segues

Tenga en cuenta que cuando use más de uno, el orden debe ser Controlador de vista dividida que contenga Controlador de barra de pestañas que contenga Controlador de navegación. Además de eso, también puede crear sus propios controladores de vista de contenedor (aunque eso no es exactamente para principiantes). Pero antes de profundizar en los controladores de vista de contenedor, deberá comprender la clase base de todos ellos, que es …


(4) Ver controladores (y navegación)

Los controladores de vista son donde los desarrolladores tienden a pasar más tiempo codificando. Aprenda a usarlos bien y cómo fluir de uno a otro, incluyendo cómo pasar datos hacia adelante y hacia atrás. Aprenda sobre segues mientras lo hace. Estos son objetos que controlan la comunicación entre el modelo (datos) y la vista. Lo que nos lleva al siguiente elemento …


(5) Patrón MVC

Este es el patrón que es omnipresente en el desarrollo de iOS, ya que las API de Apple están escritas teniendo en cuenta el patrón MVC. Aprende a usarlo bien. Paul Hegarty de Stanford hace un buen trabajo al explicarlo cada año en su popular curso de iOS (que se encuentra en línea en iTunesU y en otros lugares).

Sin embargo, una vez dominado, se dará cuenta de que el controlador de vista tiende a albergar la mayor parte del código, lo que nos lleva a …


(6) Delegación y Protocolos (rápidos)

Una persona que inicia un negocio hace la mayor parte del trabajo y luego, a medida que el negocio crece, gradualmente descarga las responsabilidades a los empleados individuales. De manera similar, comenzará a utilizar el concepto de delegación para crear clases auxiliares que actuarán como delegados del controlador de vista para evitar que se convierta en un “Controlador de vista masivo”.

El recurso más útil para aprender bien este concepto es el curso gratuito de 5 correos electrónicos de Matteo Manferdini, The Ultimate Course to Making Professional iOS Apps – Matteo Manferdini. He encontrado que es inmensamente útil, sin renunciar al patrón MVC. (Abandonar el patrón MVC en el desarrollo de iOS es como tratar de nadar río arriba). (Descargo de responsabilidad: tengo cero afiliación con Matteo).

La lección más importante que nunca aprenderá en ningún tutorial y libro de iOS es:

Una clase debe tener una sola responsabilidad.

Por ejemplo, esto hace que sea muy fácil darse cuenta de que necesita eliminar las funciones de formateo de datos en un DataHandler de clase auxiliar (que admite las funciones de formateo mínimas definidas en un protocolo) y crear un objeto como delegado del propietario View Controller. Y si necesita estas funciones nuevamente, puede usar esta clase nuevamente, lo que nos lleva a otro concepto increíblemente importante:

SECO: no te repitas.

Además, el propio iOS utiliza toneladas de delegados, incluido el delegado de la aplicación y los delegados de vista de tabla (y colección), lo que nos lleva a …


(7) Vistas de tabla y vistas de colección

Este es otro elemento básico de las aplicaciones de iOS. Casi no hay aplicaciones capaces sin una sola vista de tabla o vista de colección. Vistas de la mesa maestra primero.

Imagen: las vistas de tabla están en todas partes

Imagen: Las vistas de colección son más nuevas, pero están ganando terreno

Luego, pase a las vistas de colección, lo que será fácil una vez que conozca bien las vistas de tabla. Pero necesitas codificar todo esto en …


(8) Swift

Aprenda los conceptos básicos y desconfíe de comprender completamente las opciones, estructuras y clases, protocolos y delegados, cierres y funciones, enumeraciones y declaraciones de cambio, etc. Mi opinión personal es mantenerse alejado de Objective-C mientras lo hace, al menos por Los primeros 6 meses. Swift está diseñado para ser mucho más fácil de manejar para alguien nuevo en el enorme mundo de las API de iOS. Hoy en día aprender Swift es mucho más fácil gracias a …


(9) Patios de juego rápidos

Son un salvavidas para alguien que es nuevo en Swift. Podrá probar el código y verlo ejecutarse casi de inmediato y mostrarle resultados en vivo. Esto es fantástico para probar pequeñas piezas de código. Sin embargo, aprender a codificar está muy bien, pero debes ser capaz de mantenerlo, lo que nos lleva a …


(10) Persistencia de datos

NSUserDefaults puede guardar los datos en iOS para cosas pequeñas como las preferencias del usuario, archivando (y desarchivando) usando codificadores y decodificadores para cosas más complejas, usando listas de propiedades para datos jerárquicos y Datos básicos para datos con relaciones, o usando datos antiguos Bases de datos SQLite.


Material de bonificación:

  1. Storyboards y segues
  2. Herramientas de depuración en Xcode e instrumentos
  3. Conceptos básicos de los tipos y características de datos de Foundation
  4. Grand Central Dispatch para código asincrónico sin dolores de cabeza
  5. Reconocimientos de gestos (pautas de interfaz humana de iOS)
  6. KVC, KVO y Notificaciones (no del tipo orientado al usuario, aunque eso también es importante)

Recursos:

  1. El lenguaje de programación Swift (Swift 3.1) de Apple Inc. en iBooks (v4 actualizado debería estar disponible después de WWDC 2017)
  2. Introducción a Xcode (video WWDC)
  3. Pautas de la interfaz humana de iOS
  4. Desarrollo de aplicaciones con Swift por Apple Education en iBooks
  5. Modelo-Vista-Controlador (MVC) en iOS: un enfoque moderno
  6. Video de Stanford en MVC:

7. Diseño de Facebook – iOS 10 GUI (iPhone)


Documentación de Apple:

  1. UIView – Documentación
  2. Ver la guía de programación del controlador
  3. Ver el catálogo de controladores para iOS
  4. UITableView – Documentación
  5. Guía de programación de vista de tabla
  6. UICollectionView – Documentación
  7. Vista de colección Guía de programación
  8. NSUserDefaults – Documentación
  9. Guía de programación de archivos y serializaciones
  10. Delegación
  11. Guía de programación de la lista de propiedades
  12. Guía de programación de datos básicos

Nota: Todas las imágenes provienen de Internet y no poseo los derechos de ninguna de ellas.

  • UIViews. Componiéndolos juntos para crear componentes. Disposición de ellos usando NSLayoutConstraints
  • Controladores UIView que administran las UIViews, cada VC tiene una UIView maestra que diseña sus componentes. ViewControllers ha indicado dónde haces cosas diferentes.
  • UINavigationController para navegación izquierda y derecha entre ViewCotrollers. Realiza un seguimiento de las pilas de ViewControllers. También puede presentar y descartar ViewControllers sobre otros ViewControllers sin la necesidad de NavControllers.
  • Componentes especiales en los componentes UIKit como UIButton, UITextfield, UILabel. Hay componentes integrados más complejos como UITableViews y UICollectionViews.

Eso debería ser alrededor del 80 por ciento de la mayoría de las aplicaciones.

Apple tiene un libro gratuito (Ver iBooks) llamado “El lenguaje de programación Swift”. Hay una sección en el frente llamada “A Swift Tour”. Esto te ayudará a comenzar bien en Swift. Luego sumérjase en el resto del libro según sea necesario para obtener más detalles.

Para iOS en general, consulte su “Referencia de documentación y API” de Xcode en el menú Ventana. Apple, en general, hace buena documentación. En Xcode encontrará una enorme cantidad de documentos, desde guías, hasta descripciones generales de marcos, llamadas detalladas a métodos y código de muestra. En cualquier área nueva de iOS, comience con las guías.

En el visor de documentos Xcode, haga clic en el icono del medio en la barra de navegación a la izquierda. El de “Examinar guías y código de muestra”. Vaya a General> Guías> Guía de programación de aplicaciones para iOS. Este es un gran lugar para comenzar en iOS.

Si desea conocer áreas generales, es posible que necesite saber ver “Competencias principales del cacao”. Hay guías para todo tipo de cosas.