7/25/2019 iPhone Dev Keynote
1/44
Programacin en iOS
Por: Carlos Saldana
7/25/2019 iPhone Dev Keynote
2/44
Mdulo I
Preparando del sistema.
Xcode & iPhone Simulator.
ObjectiveC.
Cocoa !ouch.
Inter"ace #uilder.
M$C.
7/25/2019 iPhone Dev Keynote
3/44
Preparando el Sistema
#ienvenida a la plata"orma iOS
Como convertirse en desarrollador iOS
Creando el Provitioning Pro%le
Panorama
7/25/2019 iPhone Dev Keynote
4/44
Plata"orma iOS
Inter"ace de usuario basada en el concepto de manipulacin directausando eventos mutitouch.
iPhoneiPod!ouch: '() * +,)- iPad: )(+ * /0,.
1i"erente intensidad de red 2i% & '3.
4celerometro- giroscopio- c5mara- 3PS- etc.
mp'- mp+- jpg- png- html- pd"- pages- doc ...
iCloud- 6oti%cation Center- 6e7sstand- 48C- !7itter- Stor9boards- etc.
7/25/2019 iPhone Dev Keynote
5/44
1esarrollador iOS4cceso
8egistro
Instalacion del S1
http:developer.apple.comios
http://developer.apple.com/ioshttp://developer.apple.com/ios7/25/2019 iPhone Dev Keynote
6/44
Provitioning Pro%le
;
3eneracin e instalacin
IPhone ?I1
7/25/2019 iPhone Dev Keynote
7/44
Panorama
ObjectiveC
Cocoa !ouch
M$C
7/25/2019 iPhone Dev Keynote
8/44
ObjectiveC
OOP & ObjC
@structura de ObjC
Programacin b5sica
Manejo de memoria
7/25/2019 iPhone Dev Keynote
9/44
1i"erencias de otros lenguajes basados en C
Mensajes
Inter"aces e
implementaciones
!ipiado din5mico
Instanciacin
8eenvAo de mensajes
CategorAas
Bobjeto doSomethingD
Einter"ace
FvoidGmetodoD
Eend
Eimplementation
FvoidGmetodo H
Eendid iMainvc J BBMain$C alloc init2..D
id address J EKcalle san juanKD
B6P1o7nloader do7nloadD
?naClase Linstancia J BB?naClase alloc initD
Binstancia inicia!areaD
7/25/2019 iPhone Dev Keynote
10/44
Clase 4rchivo de Inter"a
#import
#import ClaseCustom.h"
@interface NPDownloader N!$ect
% &instancet'pe(init)ith*+,!tr&N!!trin- (new*rl!tr
0 &id(newDownloader)ith*rl!tr&N!!trin- (new!tr
% &1oid(set*rl&N!*+, (new*rl
% &N!*+, (url
@propert' &readonl'( N!*+, url
@propert' &nonatomic2 stron-( N!Dictionar' user3nfo
@propert' &nonatomic2 wea4( doule timeout
0 &1oid(download
% &5,(isDownloadin-
% &1oid(set6imeut&doule(a6imeut for*ser&N!Dictionar' (user3nfo
@end
7/25/2019 iPhone Dev Keynote
11/44
Clase4rchivo de implementacin I
#import NPDownloader.h7
@interface NPDownloader &(
@propert' &readonl'( N!*+, url
@propert' &nonatomic2 stron-( N!8rra' un8rra'
-&1oid(has8l-oNue1o&N!!trin- (ar-umento
@end
@implementation NPDownloader
% &id(init)ith*+,!tr&N!!trin- (new*rl!tr 9
self : ;super initif &self( 9
url : ;N!*+, url)ith!trin-new*rl!tr
=
return self
=
7/25/2019 iPhone Dev Keynote
12/44
Clase4rchivo de implementacin II
% &1oid(download 9...
=% &5,(isDownloadin- 9
return isDownloadin-=% &1oid(set6imeut&doule(a6imeut
for*ser&N!Dictionar' (the*ser3nfo 9
timeout : a6imeutuser3nfo : ;;N!Dictionar' alloc
init)ithDictionar'the*ser3nfo
...=
%&1oid(dealloc 9
=
@end
7/25/2019 iPhone Dev Keynote
13/44
Cocoa !ouch
3rupo de Nrame7orsFibreriasG
NoundationNrame7or
7/25/2019 iPhone Dev Keynote
14/44
Cocoa !ouch
?IitNrame7or
7/25/2019 iPhone Dev Keynote
15/44
Cocoa !ouch
OtrosNrame7ors ...
7/25/2019 iPhone Dev Keynote
16/44
M$C
@ntendiendo el paradigma Model $ie7Controller
M$C dentro de XCode & I#
Plantilla $ie7#ased
7/25/2019 iPhone Dev Keynote
17/44
XCode & Simulator
?sando XCode
?sando el iPhone Simulator
Otras herramientas
7/25/2019 iPhone Dev Keynote
18/44
1emo XCode
Creacin 9 administracin de
pro9ectos
$entanas
4gregando 9 removiendoarchivos 9 recursos
6avegando 9 editando cdigo
4utocompletado de cndigo
Snapshots
Pragma mars
Con%guracin del building
@rros 9 2arnings
Propiedades del pro9ecto
7/25/2019 iPhone Dev Keynote
19/44
1emo IPhoneSimulator
4rrancando aplicacionesen el simulador
@ventos multitouch
8otando el simulador
Otras condiciones
7/25/2019 iPhone Dev Keynote
20/44
Inter"ace #uilder@ntendiendo I#
7/25/2019 iPhone Dev Keynote
21/44
1emo Inter"ace #uilder
@ntendiendo I#
Creando Inter"aces de usuario
Personaliacin de controles
Conectar con el cdigo
7/25/2019 iPhone Dev Keynote
22/44
Ciclo de vida de la aplicacin
7/25/2019 iPhone Dev Keynote
23/44
Mdulo II!e*to- teclados 9 botones.
Imagenes- 4nimaciones 9 Slides.
Objetos 9 $ie7s para inter"aces avanadas.
a atencin del usuario.
Picers para opciones.
!ool#ars & !ab#ars.
!able$ie7s.
Manejo de datos.
8otacin 9 redimensin de inter"aces.
!ouch and 3estures
7/25/2019 iPhone Dev Keynote
24/44
!e*to- teclados 9 botones
1atos de entrada 9 salida
!e*tNields- !e*t$ie7s & #uttons
7/25/2019 iPhone Dev Keynote
25/44
!e*to- teclados 9 botones
1emo
7/25/2019 iPhone Dev Keynote
26/44
Im5genes- animaciones 9
sliders4nimacin de im5genes 9 sliders
7/25/2019 iPhone Dev Keynote
27/44
Im5genes- animaciones 9
sliders1emo
7/25/2019 iPhone Dev Keynote
28/44
Inter"aces avanadas
1atos de entrada 9 salida
S7itches- SegmentedControls &2eb$ie7s
Scrolling vie7s
7/25/2019 iPhone Dev Keynote
29/44
4tencin del usuario
Metodos de alerta3enerando alertas
4ctionSheets
Sonido 9 vibracin como alerta
7/25/2019 iPhone Dev Keynote
30/44
Picers para opciones
@ntendiendo picers
1atePicers
Picer$ie7 personaliado
7/25/2019 iPhone Dev Keynote
31/44
!ool#ars &
!ab#arController
?sando vie7 simple vs multiples vie7s
@jemplo !oolbar
@jemplo !ab#arController
7/25/2019 iPhone Dev Keynote
32/44
!able$ie7s
@ntendiendo !able$ie7s 96avigatorControllers
4plicaicn sencilla con !able$ie7
4plicacin basada en navegacin
7/25/2019 iPhone Dev Keynote
33/44
Manejo de datos
Consideraciones de diseQo
?ser 1e"aults
Propert9 ists
Sistema de archivos
4rchive Objects
Core 1ata & S
7/25/2019 iPhone Dev Keynote
34/44
8otacin 9 redimensin de inter"aces
Inter"aces capaces de rotar 9 redimensionar por simismas con I#
8eenmarcando controles cuando ocurre una rotacin
Intercambiando vie7s durante una rotacin
7/25/2019 iPhone Dev Keynote
35/44
!ouches & 3estures
8econocimientomultitacto 9 gestos
?sandoreconocedores de
gestos
7/25/2019 iPhone Dev Keynote
36/44
1ia '
Orientacin 9 movimiento.
!rabajando con multimedia.
Interaccin con otras apps.
ocaliacin.
#acground a7are apps.
4plicaciones universales.
1ebugging 9 optimiacin.
1istribucin en el 4pp Store.
7/25/2019 iPhone Dev Keynote
37/44
Orientacin 9 movimiento
@ntendiendo el hard7are de moviemiento
1atos de orientacin 9 movimiento
8econocimiento de orientacin
1etectando rotacin e inclinacin
7/25/2019 iPhone Dev Keynote
38/44
@*plorando los medios
Preparando la aplicacin parael uso de medios
?sando el Movie Pla9er
3rabando 9 reproduciendo
audioCamara 9 librerAa de "otos
ibrerAa del iPod
!rabajando conmultimedia
7/25/2019 iPhone Dev Keynote
39/44
Interaccin con otras
apps@*tendiendo la integracin de laaplicacin
4ddress#oo- Mail & Maps
7/25/2019 iPhone Dev Keynote
40/44
ocaliacin
@ntendiendoCoreocation
Creando una aplicacin
consciente de sulocaliacin
@ntendiendo el compasmagnetico
7/25/2019 iPhone Dev Keynote
41/44
4pps conscientes en segundo plano
@ntendiendo elsegundo plano eniOS
Manejando lasuspensin ensegundo plano
6oti%caciones
locales
!areas especA%casen segundo plano
7/25/2019 iPhone Dev Keynote
42/44
4plicaciones universales
1esarrollo de apps universales
@ntendiendo la plantilla para apps universales 7indo7based
Otras herramientas para apps universales
7/25/2019 iPhone Dev Keynote
43/44
1bugging 9 optimiacin
1ebugging en XCode
?sando Instruments
7/25/2019 iPhone Dev Keynote
44/44
1istribucin en el
4ppStorePreparando la aplicacin para el 4ppStore@ntregando la app para aprovacin
Promoviendo la aplicacin