SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
Introducción a iOS
development
Raquel Hernandez - @maggit
Instant gratification

¿Que aprenderemos en este
curso?
¿Hasta dónde podemos
#winning
llegar?
•
•

Mike Krieger

•

Instagram sold to
Facebook for 1 billion in
cash and stock.

Technical Co-founder of
Instagram
Retos de un iOS developer
principiante
•
•
•

Objective-C
Las ideas generales
Los frameworks
¿Que tan rápido puedo
aprender?
¿Necesito unirme al Apple
Developer Program?
¿Qué necesito?
Pre-Requisitos
Familiaridad con los siguientes terminos de programación
orientada a objetos

•
•
•
•
•

Class Clase, descripción o plantilla para un objeto.

•
•

Superclass/Subclass Terminos de herencia.

Instance Instancia, manifestación
Message Mensaje, enviado a un objecto para hacerlo actuar.
Method Método, código invocado por un mensaje.
Instance variable Variable de instancia, almacenamiento dentro de
un objeto.

Protocol Similar funcionalidad que una interface en Java.
Manos a la obra
iOS Overview

•
•
•
•

Core OS
Core Services
Media
Cocoa Touch
Core OS:

•
•
•
•

OSX kernel
Power management
Keychain access
Sockets

•
•
•

Security
Certificates
File System
Core Services
•
•
•
•
•

Collections
Address Book
Networking
File Access
SQLite

•
•
•
•
•

Core Location
Net Services
Threading
Preferences
URL Utilites
Media
•
•
•
•
•
•

Core Audio
Core Animation
Audio Mixing
Audio recording
OpenGL
Video Playback
Cocoa Touch
•
•
•
•
•
•

Multi-Touch
Core Motion
View Hierarchy
Localization
Controls
Alerts

•
•
•
•

Web view
Map kit
Image picker
Camara
Componentes de la
Plataforma
•
•
•
•

Tools
Language
Frameworks
Design Patterns
Design Patterns
Ventajas al usar un
patrón de diseño
• Interfaces mejor definidas
• Apps adaptables y extendibles
• Objetos reusables
Speed-to-market ó failure-to-launch
Seguir un patrón de diseño nos
permite iterar más eficientemente

iOS 6
iOS 7
¿Que patrón de diseño debo seguir al
desarrollar para iOS?
MVC

Controlador

Modelo

Vista
MVC
Controlador

Modelo

Vista

Es la representación de la información, con la cual va a operar nuestra
aplicación.
MVC
Controlador

Modelo

Vista

Objeto subordinado del controlador que es presentado al usuario
de forma gráfica.
MVC
Controlador

Modelo

Vista

Responde a eventos, usualmente acciones de usuario
e invoca peticiones al modelo y a la vista (lógica de interfaz de usuario).
MVC explicación rápida
Modelo
Suma, resta, multiplica, divide

Vista

Componentes de la interfaz de usuario (botones de
operación, texto de resultado)

Controller
Objetos que escuchan y comunican información
entre el modelo y la vista
MVC explicación rápida
Acción del usuario
Actualiza

Controlador
Actualiza

Vista

Notifica

Modelo
Comunicación en MVC
MVC
Controlador

Modelo

Vista

Controladores siempre pueden hablar directamente con su modelo
MVC
Controlador

Modelo

Outlet

Vista

Controladores siempre pueden comunicarse directamente con la vista
MVC
Controlador

Modelo

Outlet

Vista

El modelo y la vista nunca deben comunicarse entre ellos.
MVC
Controlador

Outlet

Target

Modelo

Action

Vista

¿Puede una vista comunicarse con el controlador?
La comunicación entre los objetos del MVC es ciega y estructurada.
MVC
Controlador
Target

Modelo

Outlet
Delegate

Action

Vista

Comunicación por medio de delegación
MVC
Controlador
Notificaciones

Modelo

Outlet
Delegate

Target
Text
Action

Vista

¿Qué pasa si el modelo tiene información actualizada y necesita que el
controlador lo sepa?
Fast introduction

Objective-C
Conceptos Básicos
Objective-C
Object-Oriented
Fast
Dynamic
Built on C
Objective-C extiende ANSI C
Definiendo nuevas clases
Clases y metodos de instancia
Metodos de invocación (mensajes)
Declaración de propiedades
Static y dynamic typing
Bloques
Protocolos y Categorías
Clases en Objective-C
Clases en Objective-C

Interface

Implementation
Dissecting an iOS class
Simple clase en iOS
Tweet.h

Tweet.m

Interface

Implementation
Simple clase en iOS
Tweet.h

Público

Tweet.m

Privado
#import <Foundation/Foundation.h>

Tweet.h

Tweet.m
#import <Foundation/Foundation.h>
Properties
Tweet.h

Tweet.m
Properties - ¿Qué pasa detrás de escenas?
Tweet.h

Tweet.m

Getter

Define setter and getter
Setter

Ya no tenemos que hacer esto
Properties
Tweet.h

Apunta a un objeto tipo NSString

Tweet.m
Todos los objectos en iOS viven en el heap

Tweet.h

Tweet.m
Garbage collection NO existe en iOS

Tweet.h

Tweet.m
Automatic Reference Counting - ARC

Tweet.h

Tweet.m
Automatic Reference Counting - ARC

Tweet.h

Strong - Strong Ownership

Tweet.m
Nonatomic
Tweet.h

Nonatomic

Tweet.m
Properties pueden ser de diferentes tipos

Tweet.h

Tweet.m
Instance Methods y Class
Methods
Ruby

MyClass.h
Objective-c

MyClass.m
Mi primer instance method
Tweet.h

Tweet.m

Instance method
Demo
Let’s code our class
Tweet
MVP
Demo
MVP
Let’s code our demo
Whereami
¿Autodidacta?
Para los que nunca han programado orientado a objetos
https://developer.apple.com/library/ios/documentation/
Cocoa/Conceptual/OOP_ObjC/Introduction/
Introduction.html#//apple_ref/doc/uid/TP40005149CH1-SW2

Para los que quieran abundar en los conceptos básicos de
Objective-C
https://developer.apple.com/library/ios/documentation/General/
Conceptual/CocoaEncyclopedia/DelegatesandDataSources/
DelegatesandDataSources.html#//apple_ref/doc/uid/TP40010810CH11-SW1
Para los que quieran aprender las bases de programación en
Objective-C
https://developer.apple.com/library/ios/documentation/Cocoa/
Conceptual/ProgrammingWithObjectiveC/Introduction/
Introduction.html#//apple_ref/doc/uid/TP40011210

No me quedó claro el manejo de memoria en iOS
https://developer.apple.com/library/ios/documentation/
CoreFoundation/Conceptual/CFMemoryMgmt/
CFMemoryMgmt.html#//apple_ref/doc/uid/10000127i
Preguntas

@maggit

Más contenido relacionado

Destacado

iOS d'estar per casa - Jornades Apple 2011 Ulldecona
iOS d'estar per casa - Jornades Apple 2011 UlldeconaiOS d'estar per casa - Jornades Apple 2011 Ulldecona
iOS d'estar per casa - Jornades Apple 2011 UlldeconaRaimon Lapuente
 
Seguridad Dispositivos móviles Extened Edition
Seguridad Dispositivos móviles Extened EditionSeguridad Dispositivos móviles Extened Edition
Seguridad Dispositivos móviles Extened EditionJose Manuel Ortega Candel
 
Presentacion segi seminario_yisell
Presentacion segi seminario_yisellPresentacion segi seminario_yisell
Presentacion segi seminario_yisellYiz Puentes Cubides
 
Mobile Day - Desarrollo Apple Watch con Xamarin
Mobile Day - Desarrollo Apple Watch con XamarinMobile Day - Desarrollo Apple Watch con Xamarin
Mobile Day - Desarrollo Apple Watch con XamarinSoftware Guru
 
Seguridad dispositivos móviles(Android e iOS)
Seguridad dispositivos móviles(Android e iOS)Seguridad dispositivos móviles(Android e iOS)
Seguridad dispositivos móviles(Android e iOS)Jose Manuel Ortega Candel
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosMaz Maz Mx
 
Arquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en iosArquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en iosEventos Creativos
 
Desarrollo en iOS devacademy
Desarrollo en iOS   devacademyDesarrollo en iOS   devacademy
Desarrollo en iOS devacademyRodrigo Ayala
 
Overflowing attack potential, scoring defence in-depth
Overflowing attack potential, scoring defence in-depthOverflowing attack potential, scoring defence in-depth
Overflowing attack potential, scoring defence in-depthJavier Tallón
 
Sistemas Operativos Moviles, Android y IOs
Sistemas Operativos Moviles, Android y IOsSistemas Operativos Moviles, Android y IOs
Sistemas Operativos Moviles, Android y IOsJesus Jimenez
 

Destacado (20)

Hardening murcia lan party 2013
Hardening   murcia lan party 2013Hardening   murcia lan party 2013
Hardening murcia lan party 2013
 
Sistema Opreativo IOS
Sistema Opreativo IOSSistema Opreativo IOS
Sistema Opreativo IOS
 
Presentación ios
Presentación iosPresentación ios
Presentación ios
 
iOS d'estar per casa - Jornades Apple 2011 Ulldecona
iOS d'estar per casa - Jornades Apple 2011 UlldeconaiOS d'estar per casa - Jornades Apple 2011 Ulldecona
iOS d'estar per casa - Jornades Apple 2011 Ulldecona
 
LINE. Android e iOS - Presentación Ciberseg15
LINE. Android e iOS - Presentación Ciberseg15LINE. Android e iOS - Presentación Ciberseg15
LINE. Android e iOS - Presentación Ciberseg15
 
iOS
iOSiOS
iOS
 
Seguridad Dispositivos móviles Extened Edition
Seguridad Dispositivos móviles Extened EditionSeguridad Dispositivos móviles Extened Edition
Seguridad Dispositivos móviles Extened Edition
 
Facebook to whatsapp
Facebook to whatsappFacebook to whatsapp
Facebook to whatsapp
 
Presentacion segi seminario_yisell
Presentacion segi seminario_yisellPresentacion segi seminario_yisell
Presentacion segi seminario_yisell
 
Seguridad en dispositivos móviles
Seguridad en dispositivos móvilesSeguridad en dispositivos móviles
Seguridad en dispositivos móviles
 
Mobile Day - Desarrollo Apple Watch con Xamarin
Mobile Day - Desarrollo Apple Watch con XamarinMobile Day - Desarrollo Apple Watch con Xamarin
Mobile Day - Desarrollo Apple Watch con Xamarin
 
Seguridad dispositivos móviles(Android e iOS)
Seguridad dispositivos móviles(Android e iOS)Seguridad dispositivos móviles(Android e iOS)
Seguridad dispositivos móviles(Android e iOS)
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Arquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en iosArquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en ios
 
Desarrollo en iOS devacademy
Desarrollo en iOS   devacademyDesarrollo en iOS   devacademy
Desarrollo en iOS devacademy
 
Sistema operativo ios
Sistema operativo iosSistema operativo ios
Sistema operativo ios
 
Overflowing attack potential, scoring defence in-depth
Overflowing attack potential, scoring defence in-depthOverflowing attack potential, scoring defence in-depth
Overflowing attack potential, scoring defence in-depth
 
Sistemas Operativos Moviles, Android y IOs
Sistemas Operativos Moviles, Android y IOsSistemas Operativos Moviles, Android y IOs
Sistemas Operativos Moviles, Android y IOs
 
Ios
Ios Ios
Ios
 
Biologia ecosistemas marinos
Biologia ecosistemas marinosBiologia ecosistemas marinos
Biologia ecosistemas marinos
 

Similar a Introducción Curso iOS

[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockitoJose Barba Martinez
 
Germán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGermán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGrupo PHP Argentina
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptRolitoChc1
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...Adrian Diaz Cervera
 
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-DesarrolloLuis Fernando Aguas Bucheli
 
LenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxLenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxcarrilloja98
 
taller ios con @javisoto en betabeers
taller ios con @javisoto en betabeerstaller ios con @javisoto en betabeers
taller ios con @javisoto en betabeersNombre Apellidos
 
taller ios con @javisoto
taller ios con @javisototaller ios con @javisoto
taller ios con @javisotobetabeers
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-IntroducciónLuis Fernando Aguas Bucheli
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005hvillarreal
 
Azure Storage y Xamarin - Tec Tianguistenco
Azure Storage y Xamarin - Tec TianguistencoAzure Storage y Xamarin - Tec Tianguistenco
Azure Storage y Xamarin - Tec Tianguistencoenriqueaguilar
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EECarlos Gavidia-Calderon
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptxGabriela Soto
 
Mvc + html5 + css3
Mvc + html5 + css3Mvc + html5 + css3
Mvc + html5 + css3Marc Rubiño
 

Similar a Introducción Curso iOS (20)

[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito
 
3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño
 
Germán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGermán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo Framework
 
Cormo Framework
Cormo FrameworkCormo Framework
Cormo Framework
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
 
MVC
MVCMVC
MVC
 
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
 
LenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxLenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptx
 
taller ios con @javisoto en betabeers
taller ios con @javisoto en betabeerstaller ios con @javisoto en betabeers
taller ios con @javisoto en betabeers
 
taller ios con @javisoto
taller ios con @javisototaller ios con @javisoto
taller ios con @javisoto
 
Mvc
MvcMvc
Mvc
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005
 
S01-s1-MVC.pptx
S01-s1-MVC.pptxS01-s1-MVC.pptx
S01-s1-MVC.pptx
 
Azure Storage y Xamarin - Tec Tianguistenco
Azure Storage y Xamarin - Tec TianguistencoAzure Storage y Xamarin - Tec Tianguistenco
Azure Storage y Xamarin - Tec Tianguistenco
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
 
Mvc + html5 + css3
Mvc + html5 + css3Mvc + html5 + css3
Mvc + html5 + css3
 

Introducción Curso iOS