83
Curs de programació d’iOS Novembre de 2011 Organitza

Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Curs de programació d’iOS Novembre de 2011

Organitza

Page 2: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Albert Nadal Garriga | Mobile software engineer

http://lafruitera.com twitter.com/anadalg [email protected]

Page 3: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Sistema Operatiu iOS

- iPhone 4S - iPhone 4 - iPhone 3GS - iPhone 3G - iPhone

Terminals iPhone, iPod Touch, iPad

- iPad 2 - iPad

Page 4: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Repositori d’aplicacions App Store

Available apps 500.000+

Downloads 18.000.000.000+

Page 5: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Use cases of Apps

• Location-Based Services (LBS) • News and media content • Entertainment and games • Guides and reference • Navigation • eBooks • Augmented Reality (AR) • Healthcare • Social Networks

Page 6: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Location-Based Services (LBS)

Page 7: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

News and media content

Page 8: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Guides and reference

Page 9: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Interactive eBook

Page 10: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 11: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

App life cycle

Page 12: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

1 Introducció a l’Xcode i iOS

• Requisits i material necessari • iOS Developer Program • Certificat de desenvolupador • Certificat de distribució • Apple App Store • Xcode i Interface Builder • Estructura d’un projecte • Novetats de l’iOS5

Page 13: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

1.1 Requisits i material necessari

• Mac OS X • v10.7 (Lion) • v10.6 (Snow Leopard)

• Xcode

• v4.2 (iOS ≤ 5 SDK) • v3.2 (iOS ≤ 4.3 SDK)

• Interface Builder

• Integrat amb Xcode v4.0

Page 14: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

1.2 iOS Developer Program

• http://developer.apple.com/support/ios/ • Certificat de desenvolupador d’Apple

Page 15: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

1.3 Certificat de desenvolupador

• Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso a llaveros”. Signa digitalment el codi de les nostres Apps.

• App ID: Identificador de la nostra aplicació a l’App Store. • El bundle identifier de l’App ha de tenir aquest valor. • El bundle identifier està al fitxer nomApp-Info.plist

• Device ID (UDID): Identificador únic de cada dispositiu.

• Permet executar les nostres app al terminal en devel. • Permet distribuïr les nostres apps en mode Adhoc.

• Provisioning Profile: Permet executar les Apps al terminal.

• Relaciona App ID, Device ID.

Page 16: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 17: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

1.4 Certificat de distribució

• Permet pujar les nostres aplicacions a l’App Store. • Permet enviar les nostres Apps via Adhoc a tercers.

Page 18: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

1.5 Apple App Store

• Repositori d’aplicacions. • App Store Worldwide. • App Store per país. • Normes força estrictes

• Seguir les guies d’estils d’Apple • No continguts per a adults • Aplicacions estables • Logos de tercers ben visibles (google, etc…) • No estafes • No emprar API’s privades • No emprar icones/logos d’Apple • etc…

Page 19: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 20: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

1.6 Xcode i Interface Builder

• Xcode v4.2 • Interface Builder (integrat dins de l’Xcode 4)

Page 21: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 22: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 23: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 24: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 25: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 26: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 27: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 28: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 29: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 30: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 31: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 32: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Interface Builder fitxers .NIB i .XIB contenen la definició de la interfície gràfica

Page 33: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 34: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 35: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 36: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 37: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 38: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 39: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

1.7 Estructura d’un projecte

• Source code • Fitxers .h • Fitxers .m

• Resources/Bundle • Imatges • Video • Fitxer de base de dades (SQLite, XML, etc…) • etc…

• Configuració de l’app .plist • Interfície Gràfica .NIB i .XIB • Llibreries dinàmiques .dylib • Localització .strings

Page 40: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

2 Crear un projecte amb Xcode

Page 41: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 42: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 43: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 44: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 45: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 46: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 47: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 48: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 49: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 50: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 51: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso
Page 52: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Classe HolaMonAppDelegate.h

• Tot projecte te el corresponents fitxers… • NomAplicacioAppDelegate.h • NomAplicacioAppDelegate.m

• NomAplicacioAppDelegate és la classe principal de

l’aplicació i fa tasques de “director d’orquestra”. • És subclasse de UIApplication o UIResponder. • Implementa el protocol <UIApplicationDelegate>

• Actua com un listener de missatges de l’App: • Quan s’inicia l’aplicació. • Quan l’aplicació passa a segon plà (multitasca). • Quan l’aplicació passa a primer plà. • Quan l’aplicació es tanca. • Etc…

Page 53: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Classe HolaMonAppDelegate.h

#import <UIKit/UIKit.h> @class HolaMonViewController; @interface HolaMonAppDelegate : UIResponder <UIApplicationDelegate> { } @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) HolaMonViewController *viewController; @end

Page 54: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Classe HolaMonAppDelegate.m #import "HolaMonAppDelegate.h" #import "HolaMonViewController.h" @implementation HolaMonAppDelegate @synthesize window = _window; @synthesize viewController = _viewController; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { /* Invocat quan l’aplicació ha arrancat */ } - (void)applicationWillResignActive:(UIApplication *)application { /* Invocat quan l’aplicació passa a un estat inactiu (es rep una trucada o sms, o es prem el botó del dispositiu */ } - (void)applicationDidEnterBackground:(UIApplication *)application { /* Si l’aplicació suporta multitasca i passa a segon plà s’invoca aquest mètode */ } - (void)applicationWillEnterForeground:(UIApplication *)application { /* Invocat quan l’aplicació recupera el primer plà */ } - (void)applicationDidBecomeActive:(UIApplication *)application { /* */ } - (void)applicationWillTerminate:(UIApplication *)application { /* Invocat quan l’aplicació es tancarà */ } @end

Page 55: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 1 - UIAlertView

• Mostrar una alerta en una caixa flotant. • Tindrà dos botons: Sortir i Continuar. • Al prèmer el botó Sortir es tancarà l’App. • S’emprarà la classe UIAlertView

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Avís!” message:@“Escull una de les següents opcions.” delegate:self cancelButtonTitle:@“Sortir” otherButtonTitles:@”Continuar”, nil]; [alert show]; [alert release];

Page 56: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 1

#import "HolaMonAppDelegate.h" #import "HolaMonViewController.h" @implementation HolaMonAppDelegate @synthesize window = _window; @synthesize viewController = _viewController; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Avís!” message:@“Escull una de les següents opcions.” delegate:self cancelButtonTitle:@“Sortir” otherButtonTitles:@”Continuar”, nil]; [alert show]; [alert release]; self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.window makeKeyAndVisible]; return YES; } @end

Page 57: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 1

Page 58: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 1

• Implementarem les actions dels botons Sortir i Continuar. • Primerament declarem el protocol <UIAlertViewDelegate> http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAlert

ViewDelegate_Protocol/UIAlertViewDelegate/UIAlertViewDelegate.html

• Només cal implementar els mètodes delegats que ens interessen. • En aquest cas el mètode delegat que ens interessa és...

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { /* Implementar-ho! */ }

Page 59: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 1 • Declarem el protocol <UIAlertViewDelegate> al fitxer de definició

d’interfície de la classe NomAplicacioAppDelegate (NomAplicacioAppDelegate.h)

* Podem declarar protocols en qualsevol altra classe.

#import <UIKit/UIKit.h> @class HolaMonViewController; @interface HolaMonAppDelegate : UIResponder <UIApplicationDelegate, UIAlertViewDelegate> { } @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) HolaMonViewController *viewController; @end

Page 60: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 1 • Ara cal implementar el protocol delegat al fitxer d’implementació

de la classe NomAplicacioAppDelegate (NomAplicacioAppDelegate.m)

#import "HolaMonAppDelegate.h" #import "HolaMonViewController.h" @implementation HolaMonAppDelegate @synthesize window = _window; @synthesize viewController = _viewController; [ . . . . ]

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {

switch (buttonIndex) { case 0: exit(0); break; case 1: /* Implementar acció del botó "Continuar" */ break; default: break; } }

Page 61: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

#import "HolaMonAppDelegate.h" #import "HolaMonViewController.h" @implementation HolaMonAppDelegate @synthesize window = _window; @synthesize viewController = _viewController; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Avís!” message:@“Escull una de les següents opcions.” delegate:self cancelButtonTitle:@“Sortir” otherButtonTitles:@”Continuar”, nil]; [alert show]; [alert release]; self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.window makeKeyAndVisible]; return YES; } - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { switch (buttonIndex) { case 0: exit(0); break; case 1: /* Implementar acció del botó "Continuar" */ break; default: break; } }

@end

Page 62: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2 – Model-View-Controller

• Definirem un UIViewController (MVC)

• Mostrar una pantalla amb un UITextField, UILabel i un UIButton

• Definirem els IBOutlets

• Definirem un IBAction per al UIButton

• Realitzarem els connectors entre UI i el codi

Page 63: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

• UIViewController (Model-View-Controller) • View: Objectes visibles per a l’usuari.

• UILabel • UIButton • UIImageView • UITextField • Etc...

• Model: Objectes per guardar dades • NSArray • NSDictionary • SQLite • Etc...

• Controller: Enllaça i controla la vista i el model.

Page 64: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2 • Creem una classe de tipus UIViewController principal anomenat

HolaMonViewController. S’encarregarà de controlar tots els elements que afegirem en una vista de l’App. • HolaMonViewController.h

#import <UIKit/UIKit.h> @interface HolaMonViewController : UIViewController @end

• HolaMonViewController.m

#import "HolaMonViewController.h“ @implementation HolaMonViewController [ . . . . ] @end

Page 65: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

• Creem una instància de HolaMonViewController i l’associarem a una interfície gràfica on hi afegirem les subvistes.

• HolaMonViewController.xib

• La instància la crearem i guardarem a la classe HolaMonAppDelegate i s’ha de fer quan arrenca l’aplicació. • HolaMonAppDelegate.m

- (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.viewController = [[HolaMonViewController alloc] initWithNibName:@”HolaMonViewController” bundle:nil]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; }

Page 66: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2 • Afegim un UIButton, UILabel i UITextField a la interfície HolaMonViewController.xib • El File’s Owner ha de sér del tipus HolaMonViewController

Page 67: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

• Per poder accedir i utilitzar les tres subvistes que hem afegit a la interfície hem de definir-les com a atributs IBOutlet de la classe HolaMonViewController

• Per capturar l’event al prémer l’UIButton defirem un mètode IBAction • HolaMonViewController.h #import <UIKit/UIKit.h>

@interface HolaMonViewController : UIViewController { IBOutlet UILabel *etiqueta; IBOutlet UITextField *input; IBOutlet UIButton *boto; } - (IBAction)copiarText:(id)sender; @end

Page 68: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

• Apliquem els connectors entre la interfície i els IBOutlet

Page 69: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

• Apliquem els connectors entre la interfície i els IBAction

Page 70: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

• Implementem el mètode copiarText • Al prémer el UIButton copiarem el text de l’UITextField a l’UILabel

• HolaMonViewController.m

#import "HolaMonViewController.h“ @implementation HolaMonViewController - (IBAction)copiarText: (id)sender { [etiqueta setText:[input text]]; } [ . . . . ] @end

Page 71: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

Page 72: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

• Implementarem l’amagament del teclat al prémer la tecla de retorn • Declararem i implementarem el protocol <UITextFieldDelegate>

• HolaMonViewController.h

#import <UIKit/UIKit.h> @interface HolaMonViewController : UIViewController <UITextFieldDelegate> { IBOutlet UILabel *etiqueta; IBOutlet UITextField *input; IBOutlet UIButton *boto; } - (IBAction)copiarText:(id)sender; @end

Page 73: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

• Implementem el protocol <UITextFieldDelegate> al delegate

• HolaMonViewController.m

#import "HolaMonViewController.h“ @implementation HolaMonViewController - (BOOL)textFieldShouldReturn: (UITextField *)textField { [textField resignFirstResponder]; [etiqueta setText:[input text]]; return TRUE; } [ . . . . ] @end

Page 74: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

• Ara cal assignar el delegate al UITextField des de l’Interface Builder • S’assignarà mitjançant un connector

Page 75: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Exemple 2

Page 76: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

3 Introducció a l’Objective-C • Les aplicacions per iOS es desenvolupen en

llenguatge Objective-C

• És una extensió simplificada del C • Programació orientada a objectes

• L’SDK es composa d’un conjunt de Frameworks

• Tot el conjunt s’anomena Cocoa

• En els dispositius tàctils s’empra Cocoa Touch

Page 77: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

• Hi ha més de 3000 mètodes i 200 classes disponibles.

• En cada nova actualització de l’iOS Apple

afegeix noves classes i mètodes.

• Cal emprar constantment els exemples i la documentació de referència d’Apple.

• http://developer.apple.com/library/ios/navigation/

Page 78: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Frameworks

• Un framework és un conjunt de classes relacionades entre si que realitzen tasques similars

• Només cal importar al nostre projecte els frameworks necessaris

• Per exemple, el framework UIKit s’empra en tots els projectes per iPhone/iPad ja que conté totes les classes relatives a la interfície d’usuari • UIButton, UILabel, UIImageView, UIView, UIScrollView,

UISegmentedControl, UISlider, UITextField, UISwitch,... • Etc...

Page 79: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Frameworks

Page 80: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Frameworks

Page 81: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Frameworks

Page 82: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

Frameworks

• Foundation: Tipus primitius de dades, etc...

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/ObjC_classic/_index.html

• UIKit: Classes de la UI http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKit_Framework/_index.html

• CoreGraphics: Motor de renderitzat de la UI http://developer.apple.com/library/ios/#documentation/coregraphics/reference/coregraphics_framework/_index.html

Page 83: Curs de programació d · 1.3 Certificat de desenvolupador •Developer Certificate: Certificat digital que s’instal·la al keychain del Mac mitjançant l’aplicació “Acceso

•CoreLocation: GPS/Brúixola/Geolocalització

•MapKit: Integració de mapes

•SystemConfiguration •CFNetwork: Comunicació/Sockets

•AddressBook: Accés agenda de contactes

•MediaPlayer: Player de video/audio/streaming?

•CoreBluetooth: Ús bluetooth

•AudioToolbox: Manipulació d’audio

•iAd: Integració publicitat iAd d’Apple

•Etc...

Frameworks