Tema 1 - Introducción a IOS SDK

download Tema 1 - Introducción a IOS SDK

of 36

description

Imagina Formacion

Transcript of Tema 1 - Introducción a IOS SDK

  • Imagina Formacinwww.imaginaformacion.com

    Tema 1 Introduccin a iOS SDK

  • Imagina Formacinwww.imaginaformacion.com

    Es el sistema operativo desarrollado por la empresa Apple para ser utilizando en sus dispositivos mviles (iPhone, iPad y iPad Touch).

    Fue presentado por primera vez en la MacWorld Conference & Expo del 9 de Enero de 2007.

    Se hizo oficial con el nombre de iPhone OS con la primera beta del iPhone SDK (6 de Marzo de 2008).

    El 7 de Junio de 2010, durante la presentacin del iPhone 4, Steve Jobs anunci que el sistema operativo mvil de Apple pasara a llamarse oficialmente como iOS.

    El 8 de Junio de 2015 en el WWDC (Worldwide Developers Conference) Apple present a los desarrolladores la nueva versin del sistema operativo (iOS9) con numerosos cambios en las APIs existentes.

    Introduccin a iOS

  • Imagina Formacinwww.imaginaformacion.com

    iOS se compone de cuatro capas de abstraccin:

    Introduccin a iOS

  • Imagina Formacinwww.imaginaformacion.com

    Core OS

    Introduccin a iOS

    Es la base del sistema operativo.

    Contiene las caractersticas de ms bajo nivel sobre las cuales se construyen las dems tecnologas utilizadas por el sistema operativo.

    Entre sus funciones destaca la gestin de memoria, la gestin de redes y la comunicacin con elementos de hardware.

    Aunque no utilicemos de manera directa tecnologas extra en el desarrollo de nuestras aplicaciones, la mayora de libreras utilizan caractersticas de esta capa, por lo que se convierte en una de las ms importantes.

  • Imagina Formacinwww.imaginaformacion.com

    Core Services

    Introduccin a iOS

    Contiene los servicios fundamentales del sistema que va a utilizar nuestra aplicacin.

    Sus caractersticas principales son el acceso a la agenda, a las cuentas del dispositivo, gestin de bases de datos...

    Muchas de las libreras ms usadas en nuestras aplicaciones estn construidas sobre esta capa. Por ejemplo tendremos acceso a todas las libreras de localizacin o de manejo de datos en la nube a travs de iCloud.

  • Imagina Formacinwww.imaginaformacion.com

    Media

    Introduccin a iOS

    La capa Media contiene las tecnologas de grficos, audio u vdeo utilizadas para crear la mejor experiencia multimedia posible en un dispositivo mvil.

    Mediante esta capa podemos hacer uso de tecnologas como OpenGL para los grficos u OpenAL para la generacin de audio por posicin.

    Hay que prestarle mucha atencin a todo lo relacionado con esta capa de abstraccin ya que se encarga de facilitarnos el trabajo para conseguir grandes aplicaciones que suenen y se vean espectaculares.

  • Imagina Formacinwww.imaginaformacion.com

    Cocoa Touch

    Introduccin a iOS

    Contiene las libreras clave para la creacin de aplicaciones iOS.

    Define la infraestructura y el soporte para tecnologas tan importantes como la multitarea, la captura de datos por gestos del usuario, notificaciones push y muchos ms sistemas de alto nivel.

    Es la primera capa en la que pensamos cuando se comienza el desarrollo de una aplicacin ya que nos va a marcar las limitaciones de todo aquello que queramos desarrollar.

  • Imagina Formacinwww.imaginaformacion.com

    Novedades en iOS 9

  • Imagina Formacinwww.imaginaformacion.com

    Multitasking Enhancements para iPad: posibilidad de utilizar dos app en pantalla partida en iPad, lo que nos permitir una rpida interaccin entre ellas.

    Search: en IOS9 da a los usuarios nuevas maneras de acceder a la informacin de tu aplicacin sin ni siquiera tenerla instalada, a travs de bsquedas en Safari o Spotlight o de las sugerencias de Siri.

    App Thinning : una ayuda para los desarrolladores que presenta una forma de crear instalaciones automatizadas de forma sencilla y bien optimizada.

    Soporte los idiomas de derecha a izquierda : Hace mas sencillo crear una interfaz que se pueda adaptar de forma que facilite una lectura de derecha a izquierda.

    Novedades en iOS 9

  • Imagina Formacinwww.imaginaformacion.com

    Gaming: iOS 9 incluye varias mejoras tecnolgicas que hacen mas fcil implementar los grficos o el audio de tus juegos. Puedes utilizar el framework de alto nivel para un desarrollo sencillo o el framework de bajo nivel para optimizar.

    GameplayKit :Un framework para desarrollar mecnicas, incluye herramientas de aleatorizacin,control de estados, y una arquitectura de entidades que facilitara la reusabilidad.

    Model I/O : Es un framework que nos permitir importar informacin(iluminacin,configuracin cmara,materiales), o procesar informacin por ejemplo crear texturas procedurales .

    MetalKit : Un framework que ofrece herramientas de desarrollo para 3 areas de desarrollo: Carga de texturas , Manejo de modelos , y aporta un manejador de vistas.

    Novedades en iOS 9

  • Imagina Formacinwww.imaginaformacion.com

    Watch Connectivity : este framework permite cordinar las actividades de tu app de iOS con un apple Watch.

    SceneKit : se trata de un framework de alto nivel para el trabajo con grficos en 3D que nos permite crear escenas animadas en 3D y efectos en nuestras aplicaciones.Sus nuevas caractersticas un nuevo editor de escenas en Xcode,y audio posicional.

    SpriteKit : el framework para la creacin de juegos en 2 dimensiones de Apple incluye nuevas caractersticas para mejorar el rendimiento de nuestros juegos,.

    Novedades en iOS 9

  • Imagina Formacinwww.imaginaformacion.com

    Keychain : nuevo sistema de control de acceso para permitir la encriptacion de claves para el acceso a travs de Touch ID.

    Swift : Actualizamos de Swift 1.2 a Swift 2.0,ms adelante en este curso se entrara en detalles sobre los cambios que Swift a sufrido.

    Novedades en iOS 9

  • Imagina Formacinwww.imaginaformacion.com

    Desarrollo en iOS

  • Imagina Formacinwww.imaginaformacion.com

    Xcode: es el entorno de desarrollo integrado utilizado para el desarrollo de aplicaciones.

    Simulador: herramienta capaz de simular un iPhone o iPad y que permite probar nuestras aplicaciones sin la obligacin de hacerlo sobre un dispositivo real.

    Instruments: herramienta de anlisis capaz de monitorizar nuestras aplicaciones.

    Organizer: sistema dentro de nuestro entorno de programacin encargado de contener la documentacin, manejar los diferentes dispositivos de pruebas, certificados, meta-datos de las aplicaciones...

    Desarrollo en iOS

    Herramientas:

  • Imagina Formacinwww.imaginaformacion.com

    Se trata del lenguaje de programacin empleado.

    Ms adelante entraremos ms en profundidad en sus principales caractersticas.

    Desarrollo en iOSSwift:

    Foundation, UIKit y el resto de frameworks disponibles en iOS.

    Libreras:

    Principalmente MVC (modelo-vista-controlador), delegacin y target-action.

    A lo largo de los diferentes temas iremos explicando cada uno de ellos.

    Patrones de diseo:

  • Imagina Formacinwww.imaginaformacion.com

    XCode 7

  • Imagina Formacinwww.imaginaformacion.com

  • Imagina Formacinwww.imaginaformacion.com

    Es la zona donde se muestra la estructura de directorios o ficheros del proyecto o workspace activo.

    Permite ver los ficheros que componen el proyecto y dispone de varias pestaas que permiten intercambiar la informacin que se muestra entre ficheros del proyecto, bsqueda, warnings y errores, breakpoints... etc.

    XCode 7Navigation Area:

  • Imagina Formacinwww.imaginaformacion.com

    Se trata de la parte del XCode donde se desarrolla la aplicacin y se escribe el cdigo.

    En esta zona se mostrar el contenido de cualquier fichero con el que interactuemos en nuestro proyecto, ya sea de cdigo, imgenes, interfaces grficas, etc...

    Dependiendo del fichero que estemos visualizando, el rea de edicin adquiere una forma u otra para permitirnos el uso de las herramientas adaptadas a ese fichero.

    XCode 7Editor Area:

  • Imagina Formacinwww.imaginaformacion.com

    Es una zona lateral donde vamos a poder encontrar la informacin del elemento que estemos visualizando en el rea de edicin.

    Al igual que el rea anterior, su contenido se modifica en funcin del elemento que estemos editando.

    En su parte inferior solemos encontrar las diferentes libreras disponibles con los objetos que podemos utilizar para el desarrollo de nuestras aplicaciones.

    XCode 7Utility Area:

  • Imagina Formacinwww.imaginaformacion.com

    Es la zona utilizada para la consola y la informacin disponible a la hora de depurar la aplicacin.

    Muestra los datos mostrados por consola, as como el estado de las variables utilizadas en nuestro cdigo mientras se depura.

    XCode 7Debug Area:

  • Imagina Formacinwww.imaginaformacion.com

    Novedades en

    Xcode 7

  • Imagina Formacinwww.imaginaformacion.com

    Completa integracin del entorno de desarrollo con el nuevo Swift 2.0.

    Swift 2.0 incluye nuevas caractersticas para las que Xcode es totalmente compatible, como por ejemplo el tratamiento de errores.

    Swift Migrator permite actualizar tus proyectos de Swift 1.2 a Swift 2.0 sin que tengas que tocar apenas codigo.

    Swift 2.0

    Novedades en XCode 7

  • Imagina Formacinwww.imaginaformacion.com

    Objective-C se ha actualizado para permitir que trabaje junto a Swift de forma mas consistente y con mas eficiencia.

    Algunas de las mejoras incluidas son:

    Generics: Permite especificar el tipo de una collecion.

    Anotaciones Nullability: Permiten especificar cuando un valor se

    espera que va a ser nil o no nil.

    Objective-C

    Novedades en XCode 7

  • Imagina Formacinwww.imaginaformacion.com

    Xcode 7 incluye nuevas caractersticas de debugging la mas importante es: Energy Gauge que presenta una interfaz que nos ayudara analizar y reducir el consumo de nuestra aplicacin.

    Free Provisioning: Ahora es mucho mas sencillo utilizar cualquier dispositivo para probar tu aplicacin.

    Debugging y Free Provisioning

    Novedades en XCode 7

  • Imagina Formacinwww.imaginaformacion.com

    Se ha mejorado el soporte de la librera XCTest implementando las pruebas de rendimiento.

    Podemos comparar cada una de las pruebas en cuanto a rendimiento se refiere, se puede ver el cambio de cada una de ellas en funcin del tiempo y nos alerta de posibles regresiones que podamos encontrar a lo largo de nuestro cdigo.

    La herramienta Instruments ha modificado su aspecto para integrarse ms y mejor con el Xcode.

    Testing

    Novedades en XCode 7

  • Imagina Formacinwww.imaginaformacion.com

    Authoring: Permite hacer comentarios sobre nuestro cdigo con la posibilidad de modificar su apariencia, permitiendo diferenciar mejor las secciones de cdigo.

    Inline results: Ahora puedes ver el resultado de tu cdigo directamente bajo l.

    Recursos: Se ha incorporado un bundle para que sea mas fcil aadir imgenes sonidoetc.

    Auxiliary Sources: te permiten dejar cdigo fuera de un playground, para as tener tu playground menos cargado de cdigo.

    Playground pages: Te permite agrupar conceptos relacionados en pginas de forma que un solo playground pueda tener varias pginas asociadas.

    Playgrounds

    Novedades en XCode 7

  • Imagina Formacinwww.imaginaformacion.com

    Xcode 7 incluye dos nuevas caractersticas.

    Test Flight: Te permite distribuir un beta de tu app a un grupo de usuarios y les permite reportar sus errores usando la App store.

    Crash Reports: Una nueva pestaa que permite observar todos los informes de errores recibidos para cada una de las aplicaciones que has publicado

    Crash Logs

    Novedades en XCode 7

  • Imagina Formacinwww.imaginaformacion.com

    Tipos de Proyecto

  • Imagina Formacinwww.imaginaformacion.com

    Tipos de proyecto

  • Imagina Formacinwww.imaginaformacion.com

    Tipos de proyecto

    Permite iniciar un proyecto con dos vistas, una llamada maestro, que consiste en una lista y otra llamada detalle, que muestra la i n f o r m a c i n d e l e l e m e n t o seleccionado.

    En iPad este tipo de aplicaciones se crean con una vista dividida, donde a la izquierda aparece la vista maestro y a la derecha la vista detalle.

    Master-Detail Application

  • Imagina Formacinwww.imaginaformacion.com

    Tipos de proyecto

    P l a n t i l l a p a r a l a g e n e r a c i n d e aplicaciones que hacen uso de un controlador que simula el uso de pginas.

    Orientado sobre todo al desarrollo de aplicaciones de tipo libro o revista.

    Tipos de proyecto

    Paged-Based Application

  • Imagina Formacinwww.imaginaformacion.com

    Tipos de proyectoTipos de proyecto

    Tipo bsico para un proyecto con una nica vista y controlador como punto de partida para el desarrollo de nuestra aplicacin.

    Es uno de los ms usados, ya que nos da la estructura necesaria para, a partir de una vista, poder ir ampliando nuestra aplicacin.

    Single View Application

  • Imagina Formacinwww.imaginaformacion.com

    Tipos de proyectoTipos de proyecto

    Aplicaciones que hacen uso de pestaas para mostrar distintas vistas.

    Nos ofrece la estructura bsica de navegacin entre dos vistas. A partir de ah, podemos aadir tantas vistas nuevas como queramos.

    Tabbed Application

  • Imagina Formacinwww.imaginaformacion.com

    Tipos de proyectoTipos de proyecto

    Se trata del tipo ms bsico de todos los que tenemos disponibles.

    Nos presenta la aplicacin desde cero para poder configurarla a nuestro gusto.

    Es el adecuado si ninguno de los otros se adapta a nuestros requerimientos.

    Empty Application

  • Imagina Formacinwww.imaginaformacion.com

    Tipos de proyectoTipos de proyecto

    Plantilla usada para la creacin de juegos a partir del framework SpriteKit.

    Game