An introduction to Mobile Development (Spanish)

54
Introducción al desarrollo Móvil Chris Jimenez

Transcript of An introduction to Mobile Development (Spanish)

Page 1: An introduction to Mobile Development (Spanish)

Introducción al desarrollo MóvilChris Jimenez

Page 2: An introduction to Mobile Development (Spanish)

AgendaEl código estara disponible en Github.com

despues de las charlas

Page 3: An introduction to Mobile Development (Spanish)

Algunos “Hechos”“El 90% de los adultos en USA tienen un

Smartphone“En promedio desde los 12 años los niños

tienen un SmartphoneSon usado para todo, desde juegos,

transferencias bancarias, mensajería,clases online, etc

Page 4: An introduction to Mobile Development (Spanish)
Page 5: An introduction to Mobile Development (Spanish)

Algunas Hechos "Mobile to overtake fixed Internet access by 2014

Page 6: An introduction to Mobile Development (Spanish)

Market Share Mundial

Page 7: An introduction to Mobile Development (Spanish)

Market Share Continente Americano

Page 8: An introduction to Mobile Development (Spanish)

Apple vs Android(Google)

Page 9: An introduction to Mobile Development (Spanish)

AppleTiene estéticas de diseno muy definidasUn sistema operativo Close Source (OS X,

UNIX)iPod Touch, iPhone, iPad, Apple TV Apple app store – 1,000,000+ appLos sistemas operativos tienen una adopción

de usuario mucho mayor

Page 10: An introduction to Mobile Development (Spanish)

Apple

700 millones de dispositivos vendidos

Page 12: An introduction to Mobile Development (Spanish)

iOS

Page 13: An introduction to Mobile Development (Spanish)

Fragmentación

Page 14: An introduction to Mobile Development (Spanish)

AndroidTiene estéticas de diseno más flexibleUn sistema operativo Open source

(Flexibilidad y adopción)LG, HTC, Samsung, Sony, Motorola, Nexus,

otrosGoogle Play – 1,000,000+ apps. y otros como

Amazon

Page 15: An introduction to Mobile Development (Spanish)

Android Fragmentación

Page 16: An introduction to Mobile Development (Spanish)

Sobre DesarrolloEs utilizado OOD en el 99% de los casosSe utilizan extensamente los patrones de

disenoEl acceso a datos externos es realizado por

medio de servicios REST

Page 17: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

Page 18: An introduction to Mobile Development (Spanish)

MVC

Model = Lo que su aplicacion es (No como se muestra)

Controller

View Model

Page 19: An introduction to Mobile Development (Spanish)

MVC

Controller = Como su modelo es mostrado a el usuario

Controller

View Model

Page 20: An introduction to Mobile Development (Spanish)

MVC

View= Componentes y UI controlado por el Controller

Controller

View Model

Page 21: An introduction to Mobile Development (Spanish)

Respetar al comunicación Respetar la comunicación entre las capas

Controller

View Model

Respetar la comunicación entre las capas

Page 22: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

Puede la vista hablar con el Controlador?

Page 23: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

El controlador puede crear “targets” y la vista puede enviar acciones a esos targets cuando algo pasa en el UI

Target

Action

Page 24: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

Pero que pasa cuando el controlador quiere actualizar algo en la vista?

Page 25: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

El controlador se asigna como un Delegate a la vista

Target

Action

Delegate

Page 26: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

Las vistas no contienen datos.Estos son dados por el controlador o obtenidos por medio de delegates

Target

Action

Delegate

Page 27: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

El controller es la mayoría de las veces la fuente de datos No el Modelo!

Target

Action

Delegate

Page 28: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

El Controlador interpreta/da formato a los datos del modelo para la Vista

Target

Action

Delegate

Page 29: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

Puede el modelo hablar directamente con el controlador???

Action

Delegate

Page 30: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

No. El modelo debería de ser independiente!

Action

Delegate

Page 31: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

Entonces que si el modelo tiene información por actualizar?

Action

Delegate

Page 32: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

Usa una “estación de radio” o un mecanismo de difusión

Target

Action

Delegate

Notification , KVO

Page 33: An introduction to Mobile Development (Spanish)

MVC

Controller

View Model

Controllers (O otros modelos) “observan” esa estación

Target

Action

Delegate

Notification , KVO

Page 34: An introduction to Mobile Development (Spanish)

MVC

Page 35: An introduction to Mobile Development (Spanish)

Acceso a DatosEn el 99% de los casos el acceso a datos

externos es realizado por medio de servicios REST

Short of Representation State Transfer(Roy Thomas)

Arquitectura (Client-Server)

Page 36: An introduction to Mobile Development (Spanish)

REST

It’s the way the Web already works, just formalized a bit and with some do’s and don’ts.

Page 37: An introduction to Mobile Development (Spanish)

Que es un Web Service?

Un servicio web es sólo una página web destinada para una computadora para obtener y procesar

Más precisamente , un servicio Web es una página Web que está destinado a ser consumido por un programa autónomo en lugar de un navegador web

Page 38: An introduction to Mobile Development (Spanish)

Principios REST clavesDar a todo un IDConecta URLs juntasUtiliza métodos estándaresPuede tener recursos con varias

representacionesComunicación sin mantener un estado

“statelessly”

Page 39: An introduction to Mobile Development (Spanish)

Dar todo un IDTodo recurso debería de tener un IDURLs tambien pueden tener IDURLs deberian de ser “human-readable”

Page 40: An introduction to Mobile Development (Spanish)

Dar todo un IDhttp://example.com/customers/1234

http://example.com/orders/2007/10/776654

http://example.com/products/4554

Page 41: An introduction to Mobile Development (Spanish)

Colecciones de Recursoshttp://example.com/customers/

http://example.com/orders/2007/11

http://example.com/products?color=green

Page 42: An introduction to Mobile Development (Spanish)

Conecta cosas JuntasEn su core, es el concepto de Hypermedia o

la idea de los links

Links son algo que todos estamos familiarizados, pero tal vez los vemos como que son solo destinados a ser consumidos por usuarios.

Page 43: An introduction to Mobile Development (Spanish)

Conectar cosas juntas

<order self='http://example.com/customers/1234' > <amount>23</amount> <product ref='http://example.com/products/4554' /> <customer ref='http://example.com/customers/1234' /> </order>

Page 44: An introduction to Mobile Development (Spanish)

Lo interesante de este enfoque

Es que los enlaces pueden apuntar a los recursos que son proporcionados por una aplicación diferente, un servidor diferente, o incluso una empresa diferente en otro continente

Page 45: An introduction to Mobile Development (Spanish)

Metodos EstandaresEn HTTP estos métodos son llamados

“verbos”Los dos que todo mundo conoce son GET y

POSTPero hay varias mas: PUT, DELETE, HEAD

and OPTIONS

Page 46: An introduction to Mobile Development (Spanish)

Metodos EstandaresPOST - CREATE GET - RETRIEVE PUT - UPDATE DELETE- DELETE

Page 47: An introduction to Mobile Development (Spanish)

Otras CualidadesSeguro - Safe?

No tiene otra acción más que obtener datos

Cacheable GET puede implementar un caché muy eficienteEn muchos casos el request al servidor no es ni

necesario

Page 48: An introduction to Mobile Development (Spanish)

Ejemplo NO RESTOrders & Customers

Page 49: An introduction to Mobile Development (Spanish)

Ejemplo REST

Page 50: An introduction to Mobile Development (Spanish)

Multiples representacionesEl estandar que 100% JSON. Pero esto no quiere decir que puedan proveer otros estándares

XMLV-CARDRSS

Page 51: An introduction to Mobile Development (Spanish)

XMLhttp://www.pixel16.com/callmenot/phones/20.xml<?xml version="1.0" encoding="UTF-8"?><response><phone><Phone><id>18</id><phone>3434343</phone><description>asf</description><created>2013-07-10 17:04:23</created><modified>2013-07-10 17:04:23</modified></Phone></phone></response>

Page 52: An introduction to Mobile Development (Spanish)

Jsonwww.pixel16.com/callmenot/phones/18.json{

"phone":{"Phone":{

"id":"18","phone":"3434343","description":"asf","created":"2013-07-10 17:04:23","modified":"2013-07-10 17:04:23"

}}}

Page 53: An introduction to Mobile Development (Spanish)

How To Design A Good API and Why it Matters

Page 54: An introduction to Mobile Development (Spanish)

Gracias

Gracias!