Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Introducción al
desarrollo Móvil
Chris Jimenez
Agenda
El código estara disponible en Github.com
despues de las charlas
Algunos “Hechos”
“El 90% de los adultos en USA tienen un
Smartphone“
En promedio desde los 12 años los niños
tienen un Sma...
Algunas Hechos
"Mobile to overtake fixed Internet access by 2014
Market Share Mundial
Market Share Continente Americano
Apple vs Android(Google)
Apple
Tiene estéticas de diseno muy definidas
Un sistema operativo Close Source (OS X,
UNIX)
iPod Touch, iPhone, iPad, App...
Apple
700 millones de dispositivos vendidos
iOS
iOS
Fragmentación
Android
Tiene estéticas de diseno más flexible
Un sistema operativo Open source
(Flexibilidad y adopción)
LG, HTC, Samsung...
Android Fragmentación
Sobre Desarrollo
Es utilizado OOD en el 99% de los casos
Se utilizan extensamente los patrones de
diseno
El acceso a datos...
MVC
Controller
ViewModel
MVC
Model = Lo que su aplicacion es (No como se muestra)
Controller
ViewModel
MVC
Controller = Como su modelo es mostrado a el usuario
Controller
ViewModel
MVC
View= Componentes y UI controlado por el Controller
Controller
ViewModel
Respetar al comunicación
Respetar la comunicación entre las capas
Controller
ViewModel
Respetar la comunicación entre las ...
MVC
Controller
ViewModel
Puede la vista hablar con el Controlador?
MVC
Controller
ViewModel
El controlador puede crear “targets” y la vista puede enviar
acciones a esos targets cuando algo ...
MVC
Controller
ViewModel
Pero que pasa cuando el controlador quiere actualizar
algo en la vista?
MVC
Controller
ViewModel
El controlador se asigna como un Delegate a la vista
Target
Action
Delegate
MVC
Controller
ViewModel
Las vistas no contienen datos.
Estos son dados por el controlador o
obtenidos por medio de delega...
MVC
Controller
ViewModel
El controller es la mayoría de las veces la
fuente de datos No el Modelo!
Target
Action
Delegate
MVC
Controller
ViewModel
El Controlador interpreta/da formato a los
datos del modelo para la Vista
Target
Action
Delegate
MVC
Controller
ViewModel
Puede el modelo hablar directamente con el controlador???
Action
Delegate
MVC
Controller
ViewModel
No. El modelo debería de ser independiente!
Action
Delegate
MVC
Controller
ViewModel
Entonces que si el modelo tiene información por actualizar?
Action
Delegate
MVC
Controller
ViewModel
Usa una “estación de radio” o un mecanismo de difusión
Target
Action
Delegate
Notification , KVO
MVC
Controller
ViewModel
Controllers (O otros modelos) “observan” esa estación
Target
Action
Delegate
Notification , KVO
MVC
Acceso a Datos
En el 99% de los casos el acceso a datos
externos es realizado por medio de servicios
REST
Short of Represe...
REST
It’s the way the Web already works, just
formalized a bit and with some do’s and
don’ts.
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 p...
Principios REST claves
Dar a todo un ID
Conecta URLs juntas
Utiliza métodos estándares
Puede tener recursos con varias
rep...
Dar todo un ID
Todo recurso debería de tener un ID
URLs tambien pueden tener ID
URLs deberian de ser “human-readable”
Dar todo un ID
http://example.com/customers/1234
http://example.com/orders/2007/10/776654
http://example.com/products/4554
Colecciones de Recursos
http://example.com/customers/
http://example.com/orders/2007/11
http://example.com/products?color=...
Conecta cosas Juntas
En su core, es el concepto de Hypermedia o
la idea de los links
Links son algo que todos estamos
fami...
Conectar cosas juntas
<order self='http://example.com/customers/1234' >
<amount>23</amount>
<product ref='http://example.c...
Lo interesante de este enfoque
Es que los enlaces pueden apuntar a los
recursos que son proporcionados por una
aplicación ...
Metodos Estandares
En HTTP estos métodos son llamados
“verbos”
Los dos que todo mundo conoce son GET y
POST
Pero hay varia...
Metodos Estandares
POST - CREATE
GET - RETRIEVE
PUT - UPDATE
DELETE- DELETE
Otras Cualidades
Seguro - Safe?
No tiene otra acción más que obtener datos
Cacheable
GET puede implementar un caché muy ef...
Ejemplo NO REST
Orders & Customers
Ejemplo REST
Multiples representaciones
El estandar que 100% JSON. Pero esto no
quiere decir que puedan proveer otros
estándares
XML
V-...
XML
http://www.pixel16.com/callmenot/phones/20.xml
<?xml version="1.0" encoding="UTF-8"?>
<response>
<phone>
<Phone>
<id>1...
Json
www.pixel16.com/callmenot/phones/18.json
{
"phone":{
"Phone":{
"id":"18",
"phone":"3434343",
"description":"asf",
"cr...
How To Design A Good API and Why it Matters
Gracias
Gracias!
An introduction to Mobile Development (Spanish)
Upcoming SlideShare
Loading in …5
×

An introduction to Mobile Development (Spanish)

169 views

Published on

An introduction to Mobile Development in Spanish

Published in: Software
  • Be the first to comment

  • Be the first to like this

An introduction to Mobile Development (Spanish)

  1. 1. Introducción al desarrollo Móvil Chris Jimenez
  2. 2. Agenda El código estara disponible en Github.com despues de las charlas
  3. 3. Algunos “Hechos” “El 90% de los adultos en USA tienen un Smartphone“ En promedio desde los 12 años los niños tienen un Smartphone Son usado para todo, desde juegos, transferencias bancarias, mensajería,clases online, etc
  4. 4. Algunas Hechos "Mobile to overtake fixed Internet access by 2014
  5. 5. Market Share Mundial
  6. 6. Market Share Continente Americano
  7. 7. Apple vs Android(Google)
  8. 8. Apple Tiene estéticas de diseno muy definidas Un sistema operativo Close Source (OS X, UNIX) iPod Touch, iPhone, iPad, Apple TV Apple app store – 1,000,000+ app Los sistemas operativos tienen una adopción de usuario mucho mayor
  9. 9. Apple 700 millones de dispositivos vendidos
  10. 10. iOS
  11. 11. iOS
  12. 12. Fragmentación
  13. 13. Android Tiene estéticas de diseno más flexible Un sistema operativo Open source (Flexibilidad y adopción) LG, HTC, Samsung, Sony, Motorola, Nexus, otros Google Play – 1,000,000+ apps. y otros como Amazon
  14. 14. Android Fragmentación
  15. 15. Sobre Desarrollo Es utilizado OOD en el 99% de los casos Se utilizan extensamente los patrones de diseno El acceso a datos externos es realizado por medio de servicios REST
  16. 16. MVC Controller ViewModel
  17. 17. MVC Model = Lo que su aplicacion es (No como se muestra) Controller ViewModel
  18. 18. MVC Controller = Como su modelo es mostrado a el usuario Controller ViewModel
  19. 19. MVC View= Componentes y UI controlado por el Controller Controller ViewModel
  20. 20. Respetar al comunicación Respetar la comunicación entre las capas Controller ViewModel Respetar la comunicación entre las capas
  21. 21. MVC Controller ViewModel Puede la vista hablar con el Controlador?
  22. 22. MVC Controller ViewModel El controlador puede crear “targets” y la vista puede enviar acciones a esos targets cuando algo pasa en el UI Target Action
  23. 23. MVC Controller ViewModel Pero que pasa cuando el controlador quiere actualizar algo en la vista?
  24. 24. MVC Controller ViewModel El controlador se asigna como un Delegate a la vista Target Action Delegate
  25. 25. MVC Controller ViewModel Las vistas no contienen datos. Estos son dados por el controlador o obtenidos por medio de delegates Target Action Delegate
  26. 26. MVC Controller ViewModel El controller es la mayoría de las veces la fuente de datos No el Modelo! Target Action Delegate
  27. 27. MVC Controller ViewModel El Controlador interpreta/da formato a los datos del modelo para la Vista Target Action Delegate
  28. 28. MVC Controller ViewModel Puede el modelo hablar directamente con el controlador??? Action Delegate
  29. 29. MVC Controller ViewModel No. El modelo debería de ser independiente! Action Delegate
  30. 30. MVC Controller ViewModel Entonces que si el modelo tiene información por actualizar? Action Delegate
  31. 31. MVC Controller ViewModel Usa una “estación de radio” o un mecanismo de difusión Target Action Delegate Notification , KVO
  32. 32. MVC Controller ViewModel Controllers (O otros modelos) “observan” esa estación Target Action Delegate Notification , KVO
  33. 33. MVC
  34. 34. Acceso a Datos En 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)
  35. 35. REST It’s the way the Web already works, just formalized a bit and with some do’s and don’ts.
  36. 36. 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
  37. 37. Principios REST claves Dar a todo un ID Conecta URLs juntas Utiliza métodos estándares Puede tener recursos con varias representaciones Comunicación sin mantener un estado “statelessly”
  38. 38. Dar todo un ID Todo recurso debería de tener un ID URLs tambien pueden tener ID URLs deberian de ser “human-readable”
  39. 39. Dar todo un ID http://example.com/customers/1234 http://example.com/orders/2007/10/776654 http://example.com/products/4554
  40. 40. Colecciones de Recursos http://example.com/customers/ http://example.com/orders/2007/11 http://example.com/products?color=green
  41. 41. Conecta cosas Juntas En 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.
  42. 42. 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>
  43. 43. 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
  44. 44. Metodos Estandares En HTTP estos métodos son llamados “verbos” Los dos que todo mundo conoce son GET y POST Pero hay varias mas: PUT, DELETE, HEAD and OPTIONS
  45. 45. Metodos Estandares POST - CREATE GET - RETRIEVE PUT - UPDATE DELETE- DELETE
  46. 46. Otras Cualidades Seguro - Safe? No tiene otra acción más que obtener datos Cacheable GET puede implementar un caché muy eficiente En muchos casos el request al servidor no es ni necesario
  47. 47. Ejemplo NO REST Orders & Customers
  48. 48. Ejemplo REST
  49. 49. Multiples representaciones El estandar que 100% JSON. Pero esto no quiere decir que puedan proveer otros estándares XML V-CARD RSS
  50. 50. XML http://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>
  51. 51. Json www.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" } } }
  52. 52. How To Design A Good API and Why it Matters
  53. 53. Gracias Gracias!

×