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

Slides:



Advertisements
Presentaciones similares
LOS LÍMITES DE LA EDUCACIÓN Alba Sánchez Canal Capítol 4: La paternidad responsable.
Advertisements

Curso de Iniciación a la Programación del iPhone SDK con Objective-C Moncada, 9 de Julio de 2010 Memory Management.
Curso de Iniciación a la Programación del iPhone SDK con Objective-C Datos en la aplicación Moncada, 9 de Julio de 2010.
La tecnologia té color El complicat món de la tecnologia i la nostra relació amb ella. El continent i el contingut. Unes quantes consideracions entre la.
S4 League S4: Stylish, eSper, Shooting, Sports.. Dades tècniques Desenvolupada:Pentavision Distribuïdora:Neowiz Games Data de llançament:2008 Gènere:Joc.
“El temps és el recurs més important; Qui no el sap administrar, no sap administrar res” Peter Drucker.
Curs de programació d’iOS Novembre de 2011 Organitza.
Cicle Superior MARISTES VALLDEMIA Quin camí hem fet fins que hem arribat aquí? PRIMERA FASE: CURSET PER MESTRES INFANTIL I PRIMÀRIA (04-05) SEGONA FASE:
Números anòmals. Novembre 2005Curiositats i aplicacions de la probabilitat 2 atzar = equiprobabilitat ? Quan parlem de jocs d’atzar el model probabilístic.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors MULTITHREADING & JAVA SYNCHRONIZATION David.
Pràctica 17 Reflexions Maria Gisbert, Llorenç Godia, Mariona Kiskeri i David González.
Practica 1 : Quants fils hi ha en un teixit ? 1. OBJECTIU Obtenir la densitat de fils d’una mostra de teixit, variable a causa de canvis en la tensió del.
Del llenguatge visual al missatge visual Su Richardson Burnt Breakfast Adaptació d’una presentació de M. Acaso.
Història del llenyaire... “El temps és el recurs més important” Qui no el sap administrar, no sap administrar res” Peter Drucker.
ANIMACIÓ D'OBJETES EN UNA PRESENTACIÓ DE DIAPOSITIVES.
ACS amb Maple i SPSS ©2003 Inma Sánchez Pérez Director: Miguel Martín Mateo GRAAL.
RESUM.
Diferència de tamany: Tamany petit = Més lluny. Més a prop = Més gran. COMPOSAR AMB PROFUNDITAT significa jugar amb el les diferencies de tamany i la perspectiva.
Un milió d’arbres?. En aquesta activitat intentarem fer una estimació aproximada dels quilometres que poden recórrer els ciclistes del Saunier Duval.
ELS BLOCS I LA SEVA APLICACIÓ A L’AULA Recull de propostes sobre els usos didàctics dels blocs Material del Curs de l’Escola d’Estiu Virtual d’Espiral.
A completar ejemplos... Textiles avanzados: (1) Técnicos (2) Inteligentes.
Interpretació estadística dels indicadors de centre
IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle.
GESTIÓ D’EMOCIONS I SENTIMENTS
Eduard Lara , Carles Mallol IES CAR SANT CUGAT
SALUT I ESCOLA IES LLANÇÀ Josep Santos Infermer ABS Llançà.
La llegenda m’ajuda a llegir el mapa.... a interpretar el que diu
Organització, funcionament i gestió dels centres docents públics Les competències bàsiques Jornada de participació Tarragona, Materials a càrrec.
Disseny, desenvolupament i implantació d’un sistema nou d’informació de la gestió econòmica i financera a la Universitat de Barcelona Introducció i guia.
Validació de l’experiència laboral. validació de l’experiència laboral? A qui va dirigit ? Què s’obté validant l’experiència laboral? On puc fer la sol·licitud.
ANIMALS en perill d’extinció
: El meu espai. Què és el Recercador És el cercador dels recursos electrònics del CRAI de la UB. Ofereix un sol punt d’accés a: bases de dades, portals.
TITLE. Title Text Title Text Title Text.
TFG – Àrea Enginyeria del programari
Cambios en el espacio: transformaciones geométricas
SINECOLOGIA La sinecologia estudia les relacions tròfiques (alimentació) dins els ecosistemes. Els cicles de matèria i energia en els ecosistemes.
ORIENTACIÓ I COORDENADES GEOGRÀFIQUES
Títols oficials. Tramesa dels títols als centres. Circuit
1 u n i t a t Sistemes informàtics. Treball en xarxa.
La Condició Física i les Qualitats Físiques Bàsiques
GPS.
Propietats relacionades amb l'aspecte extern Altres propietats
FUNCIONS ELEMENTALS.
Ens comuniquem per CEIP Salvador Espriu
ESTADÍSTIQUES I WEBQUEAST
Creació d’un mapa personalitzat
PROBLEMES DE GENÈTICA FORENSE
Funcionament See Thecnical.
Potències de nombres racionals
TRIGONOMETRIA Conceptes bàsics: Triangle (tres costats i tres angles)
Tutorials Campus Virtual Càrrega automàtica d’alumnes
Matemàtiques 3er E.S.O..
Disseny de la persistència Serialització
Tancat Sistema Aillat Univers Obert Entorn Funcio d’estat
SCIENCE OF SYNTHESIS.
TITLE. Text Title Text Title Text.
LES XARXES LOCALS i els seus components.
Projecte Gestió de precintes de vehicles
ERIC Manual d’ús.
OLIMPIADA MATEMÀTICA 2008 FASE PROVINCIAL PRIMÀRIA PROVA INDIVIDUAL
GeoTools-Android Eines geogràfiques per Android José Gómez Fernández
Projecte de P-3: Som fotògrafs!!
REAXYS.
Threads en Java David Gañán Jiménez.
Jessica, Gerard, Laura P, Alex
PROTOCOLS DE XARXA Regles i especificacions tècniques que han de seguir els dispositius connectats a la xarxa per poder comunicar-se El protocol més utilitzat.
MESURA DEL RADI DE LA TERRA (seguint Eratóstenes)
Title. Text Title Text Title Text Title Text.
Estils i Plantilles Ms Word.
Manteniment calendari d'exàmens
Transcripción de la presentación:

Curs de programació d’iOS Novembre de 2011 Organitza

11 Localització i mapes (CoreLocation i MapKit) La localització permet que les aplicacions puguin determinar la ubicació geogràfica del dispositiu. L’SDK proporciona el framework CoreLocation per obtenir les dades del GPS i la brúixola del disposotiu. L’SDK empra els mapes de Google Maps però per manipular-los proporciona el framework MapKit.

CoreLocation La classe que fa d’interfície amb el hardware (GPS i brúixola) s’anomena CLLocationManager CLLocationManager treballa en segon pla mentre la resta de l’aplicació es dedica a altres tasques com rebre la interacció de l’usuari i refrescar la interfície gràfica. Per treballar amb la classe CLLocationManager cal assignar-li un delegat que implementi CLLocationManagerDelegate

CoreLocation ExempleAppDelegate : NSObject { UIWindow *window; CLLocationManager *locationManager; (nonatomic, retain) IBOutlet UIWindow ExempleAppDelegate.h

CoreLocation Una instància de CLLocationManager té propietats que podem configurar per concretar la seva freqüència d’actualització i el seu grau de precisió. La propietat distanceFilter fixa la distància, en metres, que el dispositiu ha de recórrer per tal que CLLocationManager informi al seu delegat d’una nova coordenada. [locationManager setDistanceFilter:kCLDistanceFilterNone];

CoreLocation La propietat desiredAccuracy defineix el grau de precisió dels resultats que entrega el dispositiu a l’aplicació. CLLocationManager només entregarà la coordenada si aquesta compleix la precisió indicada. [locationManager setDistanceFilter:kCLLocationAccuracyHundredMeters];

CoreLocation - (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions { // Crear l’objecte location manager locationManager = [[CLLocationManager alloc] init]; // Assignar el delegate [locationManager setDelegate:self]; // Volem tots els resultats de location manager [locationManager setDistanceFilter:kCLDistanceFilterNone]; // Volem els resultats amb la màxima precisió possible [locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; // S’indica que ja pot començar a capturar les coordenades del GPS [locationManager startUpdatingLocation]; [window makeKeyAndVisisble]; return YES; }

CoreLocation Quan una instància de CLLocationManager compta amb suficients dades per informar d’una nova coordenada, genera una instància de CLLocation CLLocation s’envia al delegat de CLLocationManager mitjançant el mètode delegat locationManager:didUpdateToLocation:fromLocation

CoreLocation horizontalAccuracy = 1000 CLLocation CLLocationCoordinate2D Latitude = Longitude =

CoreLocation - (void)locationManager: (CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation: (CLLocation *)oldLocation { posició: %f / %f", [newLocation coordinate].latitude, [newLocation coordinate].longitude); } Capturar la nova coordenada del GPS - (void)locationManager: (CLLocationManager *)manager didFailWithError: (NSError *)error { es poden obtenir coordenades: error); } Capturar errors durant la geolocalització [locationManager stopUpdatingLocation]; Capturar errors durant la geolocalització

MapKit MapKit és el framework que permet mostrar mapes amb informació geogràfica.

MapKit MapKit és el framework que permet mostrar mapes amb informació geogràfica. La classe MKMapView és l’encarregada de mostrar mapes, capturar-ne els tocs i gestos de l’usuari, i mostrar-hi anotacions. Per capturar les operacions que es fan sobre el mapa hem d’implementar el protocol MKMapViewDelegate

MapKit MKMapView pot ser de tres tipus: MKMapTypeStandard MKMapTypeSatellite MKMapTypeHybrid

Exemple 11 #import mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 367)]; mapView.mapType = MKMapTypeStandard; mapView.delegate = self; mapView.scrollEnabled = YES; mapView.zoomEnabled = YES; [self.view addSubview:mapView]; mapType = [[UISegmentedControl alloc] nil]]; [mapType setSelectedSegmentIndex:0]; [mapType addTarget:self forControlEvents:UIControlEventValueChanged]; mapType.frame = CGRectMake(115, 328, 195, 30); mapType.segmentedControlStyle = UISegmentedControlStyleBar; [mapType setTintColor:[UIColor lightGrayColor]]; [self.view addSubview:mapType]; - (void)changeType: (id)sender { if(mapType.selectedSegmentIndex==0){ mapView.mapType=MKMapTypeStandard; } else if (mapType.selectedSegmentIndex==1){ mapView.mapType=MKMapTypeSatellite; } else if (mapType.selectedSegmentIndex==2){ mapView.mapType=MKMapTypeHybrid; } }

MapKit Podem definir una regió en un MKMapView. La regió defineix l’àrea geogràfica que volem que mostri el mapa a partir d’una coordenada. #import mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 367)]; mapView.mapType = MKMapTypeStandard; mapView.showsUserLocation=TRUE; mapView.delegate = self; mapView.scrollEnabled = YES; mapView.zoomEnabled = YES; [self.view addSubview:mapView]; MKCoordinateRegion region; MKCoordinateSpan span; span.latitudeDelta=0.2; span.longitudeDelta=0.2; CLLocationCoordinate2D location=mapView.userLocation.coordinate; region.span=span; region.center=location; [mapView setRegion:region animated:TRUE]; [mapView regionThatFits:region];

MapKit – Etiquetatge de localitzacions En un MKMapView hi podem afegir anotacions emprant classes que implementin el protocol MKAnnotation

MapKit – Etiquetatge de localitzacions Primer hem de crear i definir una classe NSObject que implementi el protocol MKAnnotation MapPoint : NSObject { NSString *title; CLLocationCoordinate2D coordinate; (nonatomic, readonly) CLLocationCoordinate2D (nonatomic, copy) NSString *title; - (id) initWithCoordinate: (CLLocationCoordinate2D)c title: (NSString MapPoint.h

#import coordinate, title; - (id)initWithCoordinate: (CLLocationCoordinate2D)c title: (NSString *)t { self = [super init]; coordinate = c; [self setTitle:t]; return self; } - (void)dealloc { [title release]; [super dealloc]; MapPoint.m MapKit – Etiquetatge de localitzacions

Afegir anotacions a un MKMapView CLLocationCoordinate2D coordenada; coordenada.latitude = ; coordenada.longitude = ; MapPoint *mp = [[MapPoint alloc] initWithCoordinate:coordenada [mapView addAnnotation:mp]; [mp release]; Eliminar anotacions d’un MKMapView [mapView removeAnnotations:[mapView annotations]]; Centrar automàticament les anotacions quan s’afegeixen - (void)mapView: (MKMapView *)mv didAddAnnotationViews: (NSArray *)views { MKAnnotationView *annotationView = [views objectAtIndex:0]; id mp = [annotationView annotation]; MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 250, 250); [mv setRegion:region animated:YES]; }

12 Persistència de dades Preferències de l’usuari (NSUserDefaults) Base de dades SQL (SQLite)

La classe NSUserDefaults permet afegir/obtenir les preferències de l’usuari a l’aplicació. Tamany del text Gestió de contrassenyes Username de l’anterior sessió Llistes d’items favorits etc... Aquestes dades es perden quan s’elimina l’aplicació del terminal. NSUserDefaults

Les preferències d’usuari de les aplicacions es guarden a la carpeta Settings.bundle de l’aplicació. Aquesta carpeta ha de contenir el fitxer Root.plist on hi definirem parelles de clau-valor amb valors per defecte de l’aplicació.

NSUserDefaults Afegir una preferència d’usuari al diccionari: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults [defaults [defaults synchronize]; Obtenir una preferència d’usuari del diccionari: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *username = [defaults NSString *passwd = [defaults