SlideShare ist ein Scribd-Unternehmen logo
1 von 88
Cloud en IOS: Alternativas de Desarrollo
Juan Antonio Martin
juan.antonio.martin@gmail.com – NSCoder Night Madrid
@byjuanamn
Agenda
•Introducción
•iCloud
•Azure
•Amazon Web Services



                                                        Juan Antonio Martín
                       juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                              2
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       3
Introducción
• ¿qué es el cloud computing?
  –es un paradigma que permite ofrecer servicios a través de internet.
• ¿cuando empezó todo?
  –fabricas de información (Wired Octubre 2006), explica la visión de Google,
   Microsoft, Amazon...
• Distintas capas, distintas posibilidad
  –PaaS: (Platform as a Service)
  –SaaS: (Software as a Service)
  –IaaS: (Infrastructure as a Service)



                                                                            Juan Antonio Martín
                                           juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                                  4
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       5
Construir Apps con
                                            Juan Antonio Martín
           juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                  6
Construir Apps con
                                            Juan Antonio Martín
           juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                  6
¿Qué es iCloud?
• ¿Qué es?
  –Nuevo servicio, Nueva API
  –Proporcionan una replica de una“sandbox” en la
   nube....pero podemos compartir documentos entre nuestras
   apps jugando con los entitlements
  –Siempre en ejecución y en tiempo real
  –Mueve datos entre nuestros dispositivos


                                                               Juan Antonio Martín
                              juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                     7
¿Que es iCloud?
•Se encarga de notificar a nuestra App sobre los
 cambios de los ficheros manejados
•Resuelve conflictos automáticamente...aunque
 está en nuestra mano definir posibles estrategias
 de resolución :-)



                                                           Juan Antonio Martín
                          juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                 8
¿como funciona?
• cuando creamos un documento, este es dividido en
  pequeños trozos (chunks).
• la primera vez serán subidos todos los trozos a iCloud,
  teniendo la primera versión del documento.
• cuando modificamos parte del documento, solo serán
  actualizados en iCloud estos “trozos”, teniendo un nueva
  versión del documento... en iCloud.



                                                                 Juan Antonio Martín
                                juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                       9
¿como funciona?

•es atómico
•trabaja con paquetes
•Puede establecer una conexión peer to peer
 cuando varios dispositivos estén en el mismo
 rango de IPs dentro de una red WIFI

                                                          Juan Antonio Martín
                         juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                10
¿como funciona?
• Metadata:
   –nombre, tamaño, fecha de modificación, etc..
   –siempre son subidos a iCloud
• iCloud tiene siempre los ficheros nuevos
• los dispositivos tienen los ficheros cuando son
  necesarios...pero siempre tiene los Metadatos, esto permite
  a la aplicación “saber los ficheros que tiene aunque no estén
  en el dispositivo”

                                                                 Juan Antonio Martín
                                juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                       11
iCloud
•Incluido como parte IOS 5
•Es necesario tener un Apple ID
•Nos proporciona 5 GB de almacenamiento
 gratuito, es posible comprar más espacio
•Los 5 GB están ligados al Apple ID, los
 compartimos con todos los dispositivos asociados
 al mismo.
                                                          Juan Antonio Martín
                         juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                12
iCloud Quota
  Desde Ajustes/iCloud/
Almacenamiento/Gestionar
    Almacenamiento
        Comprar
         Backup
   Documentos y datos

                                                            Juan Antonio Martín
                           juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                  13
iCloud Storage API
•Antes de empezar debemos considerar los dos
 modos o estrategias de almacenamiento:
 –Orientada a Documento
 –Orientada a key-value data:
  •Pensado para manejar pequeñas porciones de
   datos, tipo plist de configuración o preferencias
   para compartir entre distintas instacias de la App,
   no critico
                                                             Juan Antonio Martín
                            juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                   14
Primera App con iCloud
•Es necesario realizar unos pequeños pasos
 previos al desarrollo:
 –Crear un AppID y provisionarlo desde el IOS
  Provisioning Portal
 –Configurar en xCode los entitlements.



                                                           Juan Antonio Martín
                          juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                 15
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       16
Primera app en iCloud
•comprobar si tenemos conexión entre nuestra
 App e iCloud:
    NSURL *theURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
    if (theURL) {
        NSLog(@"Accediendo a-> %@", theURL);
    } else {
        NSLog(@"No hay acceso al container especificado en iCloud");
    }




                                                                                 Juan Antonio Martín
                                                juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                                       17
Primera app en iCloud

dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
  dispatch_async(globalQueue, ^{
      NSFileManager *fileManager = [[NSFileManager alloc] init];
      NSURL *theUbiquityC = [fileManager URLForUbiquityContainerIdentifier:nil];

        if (theUbiquityC) {
            NSLog(@"Accediendo a-> %@", theUbiquityC);
        } else {
            NSLog(@"No hay acceso al container especificado en iCloud");
        }

                dispatch_queue_t mainQueue = dispatch_get_main_queue();
                dispatch_async(mainQueue, ^{
                    [self ActualizarUbiquityContainer:theUbiquityC];
                });
  });




                                                                                         Juan Antonio Martín
                                                        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                                               18
iCloud API
• iCloud API, tenemos métodos y clases nuevas que nos
  proporcionan el soporte necesario para usar el storage de
  iCloud.
   –NSFileManager, NSFileCoordinator, NSFilePresenter
   –NSMetadataQuery
   –UIDocument / NSDocument
   –API nativa para MS Windows
   –Key Value Store (no soportada en Windows)

                                                                 Juan Antonio Martín
                                juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                       19
iCloud API
• Podemos hacer de forma manual la mayoría de las operaciones, esto añade
  complejidad. La solución UIDocument.
  –UIDocument funciona como un middleware entre el fichero y los datos reales.
  –Implementa el protocolo NSFilePresenter, nos permite trabajar en background
    cuando abrimos o guardamos ficheros. Evitando bloqueos en nuestra App....
  –UIDocument tiene una arquitectura basada en una doble cola:
     • El hilo de ejecución principal, donde realizamos operaciones de apertura, cierre
       y edición.
     • UIKit: Un segundo hilo en background




                                                                              Juan Antonio Martín
                                             juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                                    20
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       21
-(void)openWithCompletionHandler:(void (^)(BOOL
success))completionHandler




                                                                   Juan Antonio Martín
                                  juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                         21
-(void)openWithCompletionHandler:(void (^)(BOOL
success))completionHandler

                               +




                                                                    Juan Antonio Martín
                                   juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                          21
-(void)openWithCompletionHandler:(void (^)(BOOL
success))completionHandler

                               +




                                                                    Juan Antonio Martín
                                   juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                          21
-(void)openWithCompletionHandler:(void (^)(BOOL
success))completionHandler

                               +

- (BOOL)loadFromContents:(id)contents
	

  	

   	

     ofType:(NSString *)typeName
	

  	

       	

  error:(NSError**) error;




                                                                    Juan Antonio Martín
                                   juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                          21
Lectura

-(void)openWithCompletionHandler:(void (^)(BOOL
success))completionHandler

                               +

- (BOOL)loadFromContents:(id)contents
	

  	

   	

     ofType:(NSString *)typeName
	

  	

       	

  error:(NSError**) error;




                                                                    Juan Antonio Martín
                                   juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                          21
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       22
Lectura




                                           Juan Antonio Martín
          juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                 22
Lectura
                                                  Cola Principal




                                           Juan Antonio Martín
          juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                   22
Lectura
                                                  Cola Principal




                                           Juan Antonio Martín
          juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                   22
Lectura
                                                    Cola Principal


Open




                                             Juan Antonio Martín
            juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                     22
Lectura
                                                    Cola Principal


Open




                                                   Cola background

                                             Juan Antonio Martín
            juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                     22
Lectura
                                                    Cola Principal


Open




                                                   Cola background

                                             Juan Antonio Martín
            juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                     22
Lectura
                                                    Cola Principal


Open




                                                   Cola background

                                             Juan Antonio Martín
            juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                     22
Lectura
                                                       Cola Principal


Open




        read

                                                      Cola background

                                                Juan Antonio Martín
               juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                        22
Lectura
                                                       Cola Principal


Open




        read

                                                      Cola background

                                                Juan Antonio Martín
               juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                        22
Lectura
                                                              Cola Principal


Open           load




        read

                                                             Cola background

                                                       Juan Antonio Martín
                      juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                               22
Lectura
                                                              Cola Principal


Open           load           completion^




        read

                                                             Cola background

                                                       Juan Antonio Martín
                      juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                               22
Escritura

- (void)saveToURL:(NSURL *)url
 forSaveOperation:(UIDocumentSaveOperation)saveOperation
completionHandler:(void (^)(BOOL success))completionHandler




- (id)contentsForType:(NSString *)typeName error:(NSError **)outError




                                                                        Juan Antonio Martín
                                       juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                              23
Cola Principal




                                               Cola background

                                 Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                  24
Escritura                                                    Cola Principal




                                                           Cola background

                                             Juan Antonio Martín
            juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                              24
Escritura                                                    Cola Principal




Save




                                                              Cola background

                                                Juan Antonio Martín
               juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                 24
Escritura                                                    Cola Principal




Save




                                                              Cola background

                                                Juan Antonio Martín
               juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                 24
Escritura                                                          Cola Principal




Save      Snapshot




                                                                    Cola background

                                                      Juan Antonio Martín
                     juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                       24
Escritura                                                          Cola Principal




Save      Snapshot




                                                                    Cola background

                                                      Juan Antonio Martín
                     juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                       24
Escritura                                                             Cola Principal




Save      Snapshot




                     write

                                                                       Cola background

                                                         Juan Antonio Martín
                        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                          24
Escritura                                                             Cola Principal




Save      Snapshot




                     write

                                                                       Cola background

                                                         Juan Antonio Martín
                        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                          24
Escritura                                                             Cola Principal




Save      Snapshot                  completion^




                     write

                                                                       Cola background

                                                         Juan Antonio Martín
                        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                          24
primera App
•DEMO




                                                Juan Antonio Martín
               juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                      25
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       26
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       26
Amazon Web Services
•Amazon ofrece:




                                                   Juan Antonio Martín
                  juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                         27
Amazon Web Services
• Desde 2006 ofrece sus servicios como Plataforma.
• Más de 40k servidores
• Data Centers en: Virginia,Dallas/Fort Worth, Los
  Angeles, Miami, Newark/New Jersey, California, Seattle,
  St. Louis, Amsterdam, Dublin, Frankfurt, London, Hong
  Kong, Singapore, Tokyo...



                                                              Juan Antonio Martín
                             juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                    28
Amazon Web Services
•Multiplataforma
 –AMI, imagenes de maquinas de casi todos los SO
  y combinaciones de productos, p.e. W2008 con
  SQL Server 2008 R2 optimizado......




                                                          Juan Antonio Martín
                         juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                29
Amazon Web Services
•SDKs para:
 –PHP
 –Java
 –Python
 –Ruby
 –.NET
 –Mobile: Android y IOS
                                                           Juan Antonio Martín
                          juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                 30
Amazon Web Services
•Desarrollo de apps con AWs es posible gracias a un
 SDK.....pero necesitamos suscribirnos (tarjeta de
 credito €)
•podemos usar AWS sin coste, durante un tiempo
 limitado y usando los recursos limitados......para
 investigar, aprender, desarrollar son suficientes....
 Hay que controlar el consumo.

                                                             Juan Antonio Martín
                            juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                   31
Amazon Web Services
•Desarrollo de apps con AWs es posible
 gracias a un SDK.....pero necesitamos
 suscribirnos (tarjeta de credito €)
•podemos usar AWS sin coste, durante un
 tiempo limitado y usando los recursos
 limitados......para investigar, aprender,
 desarrollar son suficientes.... Hay que
                                                         Juan Antonio Martín
                        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                               32
Amazon Web Services
•Amazon IOS SDK DEMO: S3
–AmazonS3Client
 •- (NSArray *)listBuckets
–AmazonClientException :-)




                                                              Juan Antonio Martín
                             juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                    33
AWS
•El desarrollo es más rudimentario que iCloud.
 –No hay un demonio controlando el estado de
  nuestros objetos
 –La resolución de conflictos cae en el desarrollo
•Es muy flexible, podemos usar la mayoria de
 los servicios: EC2, S3, autoscaling
•No hay limites tipo Apple ID..
                                                            Juan Antonio Martín
                           juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                  34
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       35
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       35
Juan Antonio Martín
juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                       36
Windows Azure
•Desde 2009
•Más de 100k servidores
•24 data centers, localizados como Amazon,
 con diferencia en Europa donde ofrece más
 posibilidades.


                                                        Juan Antonio Martín
                       juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                              37
Con Presencia Global…


                                                         Moscow,$RU$

                                                                         Seoul,$KR$
Bay$Area,$CA$                  Ashburn,$VA$

                                                     Doha,$QT$
                San$
                Antonio,$TX$




                               São$Paulo,$
                               BR$
                                                                                      Sydney,$AU$




                                                                               Juan Antonio Martín
                                              juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                                     38
Windows Azure




                                         Juan Antonio Martín
        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                               39
Windows Azure




                                         Juan Antonio Martín
        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                               39
Windows Azure




                                         Juan Antonio Martín
        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                               39
Windows Azure




                                         Juan Antonio Martín
        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                               39
Windows Azure




                                         Juan Antonio Martín
        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                               39
Windows Azure




                                         Juan Antonio Martín
        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                               39
Windows Azure




                                         Juan Antonio Martín
        juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                               39
Windows Azure
•DEMO




                                                 Juan Antonio Martín
                juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                       40
Windows Azure
• IOS Toolkit
   –disponible desde mayo 2011
   –Repositorio en GitHub
   –Documentación aceptable
• Por ahora este SDK solo nos permite jugar con el Storage: Tables,
  Queue y Blobs
• ha diferencia de iCloud o Amazon, se trata de un SDK muy nuevo,
  (en mi opinión) esta sujeto a cambios a corto plazo.


                                                                   Juan Antonio Martín
                                  juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                         41
Windows Azure
• Como Amazon, tampoco es gratis. Existe una suscripción de
  prueba de 90 dias, pide tarjeta de credito....pero es más que
  suficiente para investigar, aprender, desarrollar
• No está limitado a un Apple ID




                                                                  Juan Antonio Martín
                                 juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                        42
Q&A




                                   Juan Antonio Martín
  juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                         43
referencias
• The Information Factories - Wired
• http://www.wadewegner.com/category/ios/
• http://www.raywenderlich.com/6015/beginning-icloud-in-ios-5-
  tutorial-part-1
• http://aws.amazon.com/es/mobile/
• http://es.wikipedia.org/wiki/Computación_en_nube
• http://developer.apple.com/library/ios/#documentation/
  DataManagement/Conceptual/DocumentBasedAppPGiOS/
  Introduction/Introduction.html#//apple_ref/doc/uid/TP40011149
                                                                   Juan Antonio Martín
                                  juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                                                         44
Q&A


                                  Juan Antonio Martín
 juan.antonio.martin@gmail.com – NSCoder Night Madrid
                                                        45
muchas gracias
Juan Antonio Martin
juan.antonio.martin@gmail.com – NSCoder Madrid
@byjuanamn

Weitere ähnliche Inhalte

Andere mochten auch

Elementos formes 1
Elementos formes 1Elementos formes 1
Elementos formes 1nuriseor
 
Unidad educativa fiscomisional his moni.
Unidad educativa fiscomisional his moni.Unidad educativa fiscomisional his moni.
Unidad educativa fiscomisional his moni.damianstev
 
La reproducció
La reproduccióLa reproducció
La reproducciójnavarr9
 
Alba rivas
Alba rivasAlba rivas
Alba rivasmaycecy
 
Las Especificaciones
Las EspecificacionesLas Especificaciones
Las Especificacionesaom91
 
Condicionamientoclasico
CondicionamientoclasicoCondicionamientoclasico
CondicionamientoclasicoPedro J. Ruiz
 
Líneas de ayudas de la junta de Castilla y León a empresas y autónomos2012
Líneas de ayudas de la junta de Castilla y León a empresas y autónomos2012Líneas de ayudas de la junta de Castilla y León a empresas y autónomos2012
Líneas de ayudas de la junta de Castilla y León a empresas y autónomos2012Castilla y León Económica
 
Presentación1
Presentación1Presentación1
Presentación1uplas_gato
 
T. 0. ¿por qué escuela de padres
T. 0. ¿por qué escuela de padresT. 0. ¿por qué escuela de padres
T. 0. ¿por qué escuela de padresmmmas
 
la glovalización en clave cultural: una mirada latinoamericana
la glovalización en clave cultural: una mirada latinoamericanala glovalización en clave cultural: una mirada latinoamericana
la glovalización en clave cultural: una mirada latinoamericanaJose Julian Perez Calle
 
Presentacion tunja resumen y fase iii
Presentacion tunja  resumen y fase iiiPresentacion tunja  resumen y fase iii
Presentacion tunja resumen y fase iiifaroing
 
CIENCIA, TECNOLOGIA Y SOCIEDAD
CIENCIA, TECNOLOGIA Y SOCIEDAD CIENCIA, TECNOLOGIA Y SOCIEDAD
CIENCIA, TECNOLOGIA Y SOCIEDAD JenaleCh
 

Andere mochten auch (20)

Finlandia
FinlandiaFinlandia
Finlandia
 
Elementos formes 1
Elementos formes 1Elementos formes 1
Elementos formes 1
 
Gadea en Castilla y León Económica
Gadea en Castilla y León EconómicaGadea en Castilla y León Económica
Gadea en Castilla y León Económica
 
Le premier cri
Le premier cri Le premier cri
Le premier cri
 
Unidad educativa fiscomisional his moni.
Unidad educativa fiscomisional his moni.Unidad educativa fiscomisional his moni.
Unidad educativa fiscomisional his moni.
 
La reproducció
La reproduccióLa reproducció
La reproducció
 
Presentación2
Presentación2Presentación2
Presentación2
 
Execercici 1
Execercici 1Execercici 1
Execercici 1
 
Alba rivas
Alba rivasAlba rivas
Alba rivas
 
Las Especificaciones
Las EspecificacionesLas Especificaciones
Las Especificaciones
 
Presentacionnormaapajulio2011
Presentacionnormaapajulio2011Presentacionnormaapajulio2011
Presentacionnormaapajulio2011
 
Play station 4
Play station 4Play station 4
Play station 4
 
Condicionamientoclasico
CondicionamientoclasicoCondicionamientoclasico
Condicionamientoclasico
 
Líneas de ayudas de la junta de Castilla y León a empresas y autónomos2012
Líneas de ayudas de la junta de Castilla y León a empresas y autónomos2012Líneas de ayudas de la junta de Castilla y León a empresas y autónomos2012
Líneas de ayudas de la junta de Castilla y León a empresas y autónomos2012
 
Presentación1
Presentación1Presentación1
Presentación1
 
T. 0. ¿por qué escuela de padres
T. 0. ¿por qué escuela de padresT. 0. ¿por qué escuela de padres
T. 0. ¿por qué escuela de padres
 
la glovalización en clave cultural: una mirada latinoamericana
la glovalización en clave cultural: una mirada latinoamericanala glovalización en clave cultural: una mirada latinoamericana
la glovalización en clave cultural: una mirada latinoamericana
 
Presentacion tunja resumen y fase iii
Presentacion tunja  resumen y fase iiiPresentacion tunja  resumen y fase iii
Presentacion tunja resumen y fase iii
 
CIENCIA, TECNOLOGIA Y SOCIEDAD
CIENCIA, TECNOLOGIA Y SOCIEDAD CIENCIA, TECNOLOGIA Y SOCIEDAD
CIENCIA, TECNOLOGIA Y SOCIEDAD
 
es el mismo
es el mismo es el mismo
es el mismo
 

Cloud ios alternativas

  • 1. Cloud en IOS: Alternativas de Desarrollo Juan Antonio Martin juan.antonio.martin@gmail.com – NSCoder Night Madrid @byjuanamn
  • 2. Agenda •Introducción •iCloud •Azure •Amazon Web Services Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 2
  • 4. Introducción • ¿qué es el cloud computing? –es un paradigma que permite ofrecer servicios a través de internet. • ¿cuando empezó todo? –fabricas de información (Wired Octubre 2006), explica la visión de Google, Microsoft, Amazon... • Distintas capas, distintas posibilidad –PaaS: (Platform as a Service) –SaaS: (Software as a Service) –IaaS: (Infrastructure as a Service) Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 4
  • 6. Construir Apps con Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 6
  • 7. Construir Apps con Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 6
  • 8. ¿Qué es iCloud? • ¿Qué es? –Nuevo servicio, Nueva API –Proporcionan una replica de una“sandbox” en la nube....pero podemos compartir documentos entre nuestras apps jugando con los entitlements –Siempre en ejecución y en tiempo real –Mueve datos entre nuestros dispositivos Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 7
  • 9. ¿Que es iCloud? •Se encarga de notificar a nuestra App sobre los cambios de los ficheros manejados •Resuelve conflictos automáticamente...aunque está en nuestra mano definir posibles estrategias de resolución :-) Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 8
  • 10. ¿como funciona? • cuando creamos un documento, este es dividido en pequeños trozos (chunks). • la primera vez serán subidos todos los trozos a iCloud, teniendo la primera versión del documento. • cuando modificamos parte del documento, solo serán actualizados en iCloud estos “trozos”, teniendo un nueva versión del documento... en iCloud. Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 9
  • 11. ¿como funciona? •es atómico •trabaja con paquetes •Puede establecer una conexión peer to peer cuando varios dispositivos estén en el mismo rango de IPs dentro de una red WIFI Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 10
  • 12. ¿como funciona? • Metadata: –nombre, tamaño, fecha de modificación, etc.. –siempre son subidos a iCloud • iCloud tiene siempre los ficheros nuevos • los dispositivos tienen los ficheros cuando son necesarios...pero siempre tiene los Metadatos, esto permite a la aplicación “saber los ficheros que tiene aunque no estén en el dispositivo” Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 11
  • 13. iCloud •Incluido como parte IOS 5 •Es necesario tener un Apple ID •Nos proporciona 5 GB de almacenamiento gratuito, es posible comprar más espacio •Los 5 GB están ligados al Apple ID, los compartimos con todos los dispositivos asociados al mismo. Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 12
  • 14. iCloud Quota Desde Ajustes/iCloud/ Almacenamiento/Gestionar Almacenamiento Comprar Backup Documentos y datos Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 13
  • 15. iCloud Storage API •Antes de empezar debemos considerar los dos modos o estrategias de almacenamiento: –Orientada a Documento –Orientada a key-value data: •Pensado para manejar pequeñas porciones de datos, tipo plist de configuración o preferencias para compartir entre distintas instacias de la App, no critico Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 14
  • 16. Primera App con iCloud •Es necesario realizar unos pequeños pasos previos al desarrollo: –Crear un AppID y provisionarlo desde el IOS Provisioning Portal –Configurar en xCode los entitlements. Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 15
  • 27. Primera app en iCloud •comprobar si tenemos conexión entre nuestra App e iCloud: NSURL *theURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; if (theURL) { NSLog(@"Accediendo a-> %@", theURL); } else { NSLog(@"No hay acceso al container especificado en iCloud"); } Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 17
  • 28. Primera app en iCloud dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(globalQueue, ^{ NSFileManager *fileManager = [[NSFileManager alloc] init]; NSURL *theUbiquityC = [fileManager URLForUbiquityContainerIdentifier:nil]; if (theUbiquityC) { NSLog(@"Accediendo a-> %@", theUbiquityC); } else { NSLog(@"No hay acceso al container especificado en iCloud"); } dispatch_queue_t mainQueue = dispatch_get_main_queue(); dispatch_async(mainQueue, ^{ [self ActualizarUbiquityContainer:theUbiquityC]; }); }); Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 18
  • 29. iCloud API • iCloud API, tenemos métodos y clases nuevas que nos proporcionan el soporte necesario para usar el storage de iCloud. –NSFileManager, NSFileCoordinator, NSFilePresenter –NSMetadataQuery –UIDocument / NSDocument –API nativa para MS Windows –Key Value Store (no soportada en Windows) Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 19
  • 30. iCloud API • Podemos hacer de forma manual la mayoría de las operaciones, esto añade complejidad. La solución UIDocument. –UIDocument funciona como un middleware entre el fichero y los datos reales. –Implementa el protocolo NSFilePresenter, nos permite trabajar en background cuando abrimos o guardamos ficheros. Evitando bloqueos en nuestra App.... –UIDocument tiene una arquitectura basada en una doble cola: • El hilo de ejecución principal, donde realizamos operaciones de apertura, cierre y edición. • UIKit: Un segundo hilo en background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 20
  • 32. -(void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 21
  • 33. -(void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler + Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 21
  • 34. -(void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler + Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 21
  • 35. -(void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler + - (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError**) error; Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 21
  • 36. Lectura -(void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler + - (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError**) error; Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 21
  • 38. Lectura Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 39. Lectura Cola Principal Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 40. Lectura Cola Principal Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 41. Lectura Cola Principal Open Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 42. Lectura Cola Principal Open Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 43. Lectura Cola Principal Open Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 44. Lectura Cola Principal Open Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 45. Lectura Cola Principal Open read Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 46. Lectura Cola Principal Open read Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 47. Lectura Cola Principal Open load read Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 48. Lectura Cola Principal Open load completion^ read Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 22
  • 49. Escritura - (void)saveToURL:(NSURL *)url forSaveOperation:(UIDocumentSaveOperation)saveOperation completionHandler:(void (^)(BOOL success))completionHandler - (id)contentsForType:(NSString *)typeName error:(NSError **)outError Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 23
  • 50. Cola Principal Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 51. Escritura Cola Principal Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 52. Escritura Cola Principal Save Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 53. Escritura Cola Principal Save Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 54. Escritura Cola Principal Save Snapshot Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 55. Escritura Cola Principal Save Snapshot Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 56. Escritura Cola Principal Save Snapshot write Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 57. Escritura Cola Principal Save Snapshot write Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 58. Escritura Cola Principal Save Snapshot completion^ write Cola background Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 24
  • 59. primera App •DEMO Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 25
  • 62. Amazon Web Services •Amazon ofrece: Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 27
  • 63. Amazon Web Services • Desde 2006 ofrece sus servicios como Plataforma. • Más de 40k servidores • Data Centers en: Virginia,Dallas/Fort Worth, Los Angeles, Miami, Newark/New Jersey, California, Seattle, St. Louis, Amsterdam, Dublin, Frankfurt, London, Hong Kong, Singapore, Tokyo... Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 28
  • 64. Amazon Web Services •Multiplataforma –AMI, imagenes de maquinas de casi todos los SO y combinaciones de productos, p.e. W2008 con SQL Server 2008 R2 optimizado...... Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 29
  • 65. Amazon Web Services •SDKs para: –PHP –Java –Python –Ruby –.NET –Mobile: Android y IOS Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 30
  • 66. Amazon Web Services •Desarrollo de apps con AWs es posible gracias a un SDK.....pero necesitamos suscribirnos (tarjeta de credito €) •podemos usar AWS sin coste, durante un tiempo limitado y usando los recursos limitados......para investigar, aprender, desarrollar son suficientes.... Hay que controlar el consumo. Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 31
  • 67. Amazon Web Services •Desarrollo de apps con AWs es posible gracias a un SDK.....pero necesitamos suscribirnos (tarjeta de credito €) •podemos usar AWS sin coste, durante un tiempo limitado y usando los recursos limitados......para investigar, aprender, desarrollar son suficientes.... Hay que Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 32
  • 68. Amazon Web Services •Amazon IOS SDK DEMO: S3 –AmazonS3Client •- (NSArray *)listBuckets –AmazonClientException :-) Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 33
  • 69. AWS •El desarrollo es más rudimentario que iCloud. –No hay un demonio controlando el estado de nuestros objetos –La resolución de conflictos cae en el desarrollo •Es muy flexible, podemos usar la mayoria de los servicios: EC2, S3, autoscaling •No hay limites tipo Apple ID.. Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 34
  • 73. Windows Azure •Desde 2009 •Más de 100k servidores •24 data centers, localizados como Amazon, con diferencia en Europa donde ofrece más posibilidades. Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 37
  • 74. Con Presencia Global… Moscow,$RU$ Seoul,$KR$ Bay$Area,$CA$ Ashburn,$VA$ Doha,$QT$ San$ Antonio,$TX$ São$Paulo,$ BR$ Sydney,$AU$ Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 38
  • 75. Windows Azure Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 39
  • 76. Windows Azure Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 39
  • 77. Windows Azure Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 39
  • 78. Windows Azure Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 39
  • 79. Windows Azure Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 39
  • 80. Windows Azure Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 39
  • 81. Windows Azure Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 39
  • 82. Windows Azure •DEMO Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 40
  • 83. Windows Azure • IOS Toolkit –disponible desde mayo 2011 –Repositorio en GitHub –Documentación aceptable • Por ahora este SDK solo nos permite jugar con el Storage: Tables, Queue y Blobs • ha diferencia de iCloud o Amazon, se trata de un SDK muy nuevo, (en mi opinión) esta sujeto a cambios a corto plazo. Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 41
  • 84. Windows Azure • Como Amazon, tampoco es gratis. Existe una suscripción de prueba de 90 dias, pide tarjeta de credito....pero es más que suficiente para investigar, aprender, desarrollar • No está limitado a un Apple ID Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 42
  • 85. Q&A Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 43
  • 86. referencias • The Information Factories - Wired • http://www.wadewegner.com/category/ios/ • http://www.raywenderlich.com/6015/beginning-icloud-in-ios-5- tutorial-part-1 • http://aws.amazon.com/es/mobile/ • http://es.wikipedia.org/wiki/Computación_en_nube • http://developer.apple.com/library/ios/#documentation/ DataManagement/Conceptual/DocumentBasedAppPGiOS/ Introduction/Introduction.html#//apple_ref/doc/uid/TP40011149 Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 44
  • 87. Q&A Juan Antonio Martín juan.antonio.martin@gmail.com – NSCoder Night Madrid 45
  • 88. muchas gracias Juan Antonio Martin juan.antonio.martin@gmail.com – NSCoder Madrid @byjuanamn

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n