Charla desarrollo de aplicaciones en iOS para iPhone y iPad

Post on 13-Jun-2015

1.024 views 1 download

description

Keynote realizado en la Universidad UPC el cual muestra una introducción para el desarrollo sobre iOS para iPhone y iPad

Transcript of Charla desarrollo de aplicaciones en iOS para iPhone y iPad

iOS Introducción a iOS UX en iOS Lenguaje Objective-C iOS SDK Herramientas: Xcode IDE Cómo empezar ? Distribución: AppStore Mini Workshop

Desarrollo de Aplicaciones

Yes, We Know IT Luis Ibarra Consiglieri Lennon Shimokawa

iOS

Introducción a iOS

Desarrollo de Aplicaciones

2007Casi sin botones o teclasInterface multitactilswipe, tap, pinch, reverse pinchTeclado en pantallaLa pantalla es tu AplicaciónDerivado de OSXBasado en Unix BSD

iOS

Introducción a iOS

Desarrollo de Aplicaciones2007-2012 Desarrollo de Aplicaciones

2007 2008 2009 2010 2011 2012

iPhone

iPhone OS 1.xMultitouchCapacitivoGestosVoiceMailMailCalendarSafariiPod

iPhone 3G

iPhone OS 2.xiPhone SDKAppStoreApp de Terceros3G

iPhone 3GS

iPhone OS 3.xPush Noti!cationsCopy & PasteMMS

iPhone 5

iOS 6.xMapsTurn by TurnPassbookFacebook Integrat.Siri mejorado

iPad 3,4

iPad Mini

iPhone 4

iOS 4.xMultitaskingCarpetasFacetimeiBooksGameCenter

iPad

iPhone 4S

iOS 5.xiCloudSiriCentro de Notif.iMessageWireless SyncPC FreeTwitter Integrat.Reminders

iPad 2

iOS

Introducción a iOS

Desarrollo de AplicacionesDesarrollo de Aplicaciones

DEMO

iOS

Introducción a iOS

Desarrollo de AplicacionesDesarrollo de Aplicaciones

Es un framework de interfaz usuaria (UI framework) para construir programas o Apps que se ejecutan en iPhone, iPod Touch y iPad.

Provee una capa de abstracción de iOS. Sigue un modelo MVC.

La capa de Media permite manipular grá!cos 2D/3D, audio y video.

Esta capa fue diseñada para dar soporte Apps como juegos 2D/3D, aplicaciones de Audio y/o Video y tambien Airplay.

Esta capa contiene los servicios fundamentales del sistema.

Telefonia, iCloud, Localización, Network, Motion, Accounts, Con!guration, Social, XML, File Sharing, SQLite, Address Book, Ads entre otros.

Esta capa contiene los servicios fundamentales del sistema. Las otras capas estan construidas sobre esta.

Seguridad, Bluetooth, Sistema, I/O, Threading, Sockets, Bonjour, Memoria, Math, DSP, etc..

Capas / Layers

iOS

UX en iOS

Desarrollo de AplicacionesDesarrollo de Aplicaciones

iOS

Lenguaje Objective-C

Desarrollo de AplicacionesDesarrollo de Aplicaciones

Lenguaje Objective-C

Desarrollo de AplicacionesDesarrollo de Aplicaciones

Archivos

Los archivos están divididos, como en el lenguaje C :

NombreArchivo.h // archivo de cabecera NombreArchivo.m // archivo de implementación

//// Persona.h// Agenda//// Created by Luis Ibarra Consiglieri on 22/11/12.////

#import <Foundation/Foundation.h>

@interface Persona : NSObject

@property NSString *nombres;@property NSString *apellidos;

@end

//// Persona.m// Agenda//// Created by Luis Ibarra Consiglieri on 22/11/12.//

#import "Persona.h"

@implementation Persona

@synthesize nombres;@synthesize apellidos;

- (void) setPersonaNombres:(NSString *)nombresP personaApellidos:(NSString *)apellidosP { self.nombres = nombresP; self.apellidos = apellidosP;}

@end

iOS

Lenguaje Objective-C

Desarrollo de AplicacionesDesarrollo de Aplicaciones

Tipos de datos básicos

BOOL YES o NO, típico “true” o “false”. No es 0 y YES cualquier valor <> 0.

char byte, valores desde -128 a 127

short  2 bytes, valores desde -32,768 a 32,767

int 4 bytes, valores desde -2,147,483,648 a 2,147,483,647

float 4 bytes valores desde 1.18e-38 a 3.40e38

double 8 bytes, valores desde 2.23e-308 a 1.79e308

long double 10 bytes, valores desde 3.37e-4932 a 1.18e4932

Para crear constantes simplemente añadiremos const delante:

const double nombreConstante = valor;

iOS

NSString *descripcion = altura >= 2.0 ? @"Alto" : @"No tan alto";

Operador ternario

<expresión boolena> ? <si es cierta> : <si es falsa>

Lenguaje Objective-C

Desarrollo de Aplicaciones

Operadores aritméticos

+ Suma- Resta* Multiplicación/ División% Resto

iOS

Operadores booleanos

== Igualdad> Mayor que< Menor que>= Mayor Igual<= Menor Igual!= Distinto de

Operadores lógicos

! NOT&& AND|| OR^ XOR

Desarrollo de Aplicaciones

Lenguaje Objective-C

Desarrollo de AplicacionesDesarrollo de Aplicaciones

Estructuras de control

iOS

int num=7;

if(num==7){

//Entra aquí}else{ ...}

switch (numero) {    case 1:        NSLog(@"Primero");        break;    case 2:        NSLog(@"Segundo");        break;    case 3:        NSLog(@"Tercero");        break;    default:        NSLog(@"Despues del 3ero"); break; }

int num=0;

while (num < 10) {  ...  num++;}

int num=0;

do{   ...   num++;}while (num < 10)

for(int var=0; var<10 ; var++) {   ...}

Lenguaje Objective-C

Desarrollo de AplicacionesDesarrollo de Aplicaciones

Clases y Objetos

iOS

NSObject Clase base en Objective-C

nombreClase *variable;

Declaracion de variables

Métodos de una clase

- (void) setPersonaNombres:(NSString *)nombresP personaApellidos:(NSString *)apellidosP;

[Objeto setPersonaNombres:@”Miguel” personaApellidos:@”Grau Seminario”];

Lenguaje Objective-C

Desarrollo de AplicacionesDesarrollo de Aplicaciones

Instanciar una clase

iOS

Clase *objeto = [[Clase alloc] init];

NSSring *frase = [[NSString alloc] initWithString:@"Hola Mundo"];

iOS SDK

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

2008Kit de Desarrollo de SoftwareDesarrollar aplicaciones nativasEsta escrito en Objective-CXCode es el ambiente de desarrolloConjunto de Librerias o FrameworksIntegra un Simulador de iPhone/iPad

iOS SDK

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

The Cocoa Touch Layer

Framework Nombre en SDK

UIKit (UIKit.framework)

Map Kit (MapKit.framework)

Push Noti!cation Service

Message UI (MessageUI.framework)

Address Book UI (AddressUI.framework)

Game Kit (GameKit.framework)

iAd (iAd.framework)

Event Kit UI (EventKit.framework)

Social (Social.framework)

iOS SDK

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

Framework Nombre en SDK

Core Video (CoreVideo.framework)

Core Text (CoreText.framework)

Image I/O (ImageIO.framework)

Core Graphics (CoreGraphics.framework)

Quartz Core (QuartzCore.framework)

OpenGL ES (OpenGLES.framework)

AV Foundation (AVFoundation.framework)

Core Audio(CoreAudio.framework,

AudioToolbox.framework and AudioUnit.framework)

The Media Layer

iOS SDK

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

The Core Services Layer

Framework Nombre en SDK

Address Book (AddressBook.framework)

CFNetwork (CFNetwork.framework)

Core Telephony (CoreTelephony.framework)

EventKit (EventKit.framework)

Foundation (Foundation.framework)

Core Location (CoreLocation.framework)

SQLite Library

System Con!guration (SystemCon!guration.framework)

iOS SDK

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

The Core OS Layer

Framework Nombre en SDK

Accelerate (Accelerate.framework)

External Accesory (ExternalAccessory.framework)

Security (CoreTelephony.framework)

System (LibSystem)

Herramientas: XCode IDE

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

Herramientas: XCode IDE

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

Herramientas: XCode IDE

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

Emulator

Herramientas: XCode IDE

Desarrollo de AplicacionesDesarrollo de Aplicaciones iOS

Instruments

Cómo empezar ?

Desarrollo de Aplicaciones iOSDesarrollo de Aplicaciones

Conseguir una Mac

Descargar XCode + iOS SDK

Seguir un tutorial!

Distribución: AppStore

Desarrollo de Aplicaciones iOSDesarrollo de Aplicaciones

Distribución: AppStore

Desarrollo de Aplicaciones iOSDesarrollo de Aplicaciones

Crea tu App

Prueba tu App

Cuenta de Desarrollador = USD$ 99.00

Entrar al Portal del Desarrollador

Crear imagenes de Marketing

Subir App al AppStore vía iTunes Connect

Esperar Aprobación: 3 a 7 días

Distribución: AppStore

Desarrollo de Aplicaciones iOSDesarrollo de Aplicaciones

400 MillonesCon tarjeta de crédito

http://www.eknowit.com/upc/workshop.zip

Mini WorkShop

Desarrollo de Aplicaciones iOSDesarrollo de Aplicaciones

Bibliografía

Desarrollo de Aplicaciones iOSDesarrollo de Aplicaciones

Erica Sadun

Dave Mark

Jeff LaMarche

preguntas...?iOSDesarrollo de Aplicaciones

gracias“La imaginación es más importante que el conocimiento”

Albert Einstein

Yes, We Know IT @LuisIbarraConsi @Lshimokawa