3. Quién es Pablo Godel?"
• Argentino, viviendo en Miami, EE.UU. desde 1999
• Programador PHP, Symfony, entre otros
• Fundador de la lista de PHP en español http://
news.php.net/php.general.es/3 )antes de Julio 2000(
• Pasé el control a php.net con más de 1000 subscriptos
• Co-fundador de ServerGrove Networks
⁃ fundada en 2005
⁃ servicios de hosting especializado en PHP y Symfony
• Advertencia! No soy experto en aplicaciones móviles,
pero si he creado algunas con Symfony2.
5. Aplicaciones Móviles -
Quién es Pablo Godel? Por qué?
• Cada vez más personas tienen acceso a
Internet en el télefono móvil
• Los dispositivos son cada vez más potentes y
versátiles
• El acceso a Internet es más rápido y confiable
• El público demanda servicios y aplicaciones
en todo momento
6. Aplicaciones Móviles -
Quién es Pablo Godel? Por qué?
• No se pueden dar ventajas en el mercado
ultra-competitivo
• Tus competidores ya lo están haciendo o
implementando
8. Aplicaciones Móviles -
Quién es Pablo Godel? Por qué?
• 5.300 millones de usuarios a nivel mundial
• 370 millones de teléfonos móviles vendidos en
Q1 2011 a nivel mundial
• + 850 millones de usuarios en China
• 54 millones de usuarios en España )2010(
• 300 mil aplicaciones móviles con 10.900
millones de instalaciones
9. Aplicaciones Móviles -
Quién es Pablo Godel? Por qué?
Teléfonos celulares
por Paises
Fuente:
http://www.nationmaster.com/graph/med_mob_pho-media-mobile-phones
12. Aplicaciones Móviles -
Quién es Pablo Godel? Historia
1979 Primera red celular )1G - primera generación(
comercial del mundo lanzada en Japón
13. Aplicaciones Móviles -
Quién es Pablo Godel? Historia
1983 Motorola DynaTAC
El teléfono “móvil”
Motorola DynaTAC -
también conocido como
LA BOTA - costaba
US$ 3995 y pesaba 793
gramos!
14. Aplicaciones Móviles -
Quién es Pablo Godel? Historia
1997 WAP - Wireless Application Protocol
Estandard común para conectar distintas redes y
aplicaciones en dispositivos
• Cliente WAP
• Servidor envia WML )XML(
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML
1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml" >
<wml>
<card id="main" title="First Card">
<p mode="wrap">This is a sample WML
page.</p>
</card>
</wml>
33. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? nativas
pero las aplicaciones nativas
comúnmente necesitan conectarse a un
servidor.
Usos comunes:
• envío de mensajes
• carga de datos de una DB
• autenticación/autorización
• chats
34. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? nativas
Consideraciones:
• Diseñar API )RESTful, HTTP, XML-RPC(
temprano en el ciclo de desarrollo
• Una API se puede utilizar para otro tipo de
clientes )ej. Desktop como Adobe AIR(
• Reutilizar controladores y aprovechar el
_format para generar distintos formatos de
contenido )XML, json, etc(
35. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Nativas
Bundles para crear una API
- ViewBundle
- EverzetRestfulControllersBundle
Ambos se convirtieron en
- RestBundle
https://github.com/FriendsOfSymfony/RestBundle
36. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? nativas
Notificaciones PUSH
Un servidor envía mensajes a la red celular
con destino teléfono/aplicación
- El servidor puede estar desarrollado con
Symfony
Ejemplo en PHP: http://easyapns.com/
38. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? SMS
Symfony puede recibir y enviar mensajes de
texto a través de un gateway
Usos comunes:
- Envío de Alertas
- Chats
- Pagos electrónicos
- Avisos publicitarios
40. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? SMS
Recibo de SMS
1.El usuario envía un mensaje de texto a un "short code" )ej. 12334(
2.El mensaje se rutea a través del proveedor de telefonía
3.El mensaje llega al gateway registrado para procesar el short code
4.El gateway convierte el mensaje y lo envía por internet utilizando
HTTP/HTTPS
5.Nuestro servidor recibe el "request" con la siguiente información:
⁃ número de télefono
⁃ operador / carrier
⁃ contenido del mensaje
6.Procesamos el mensaje
7.Si es necesario enviamos una respuesta
41. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? SMS
Envío de SMS
1.Generamos el contenido del mensaje
2.Se envía el mensaje al gateway con la siguiente información
⁃ número de teléfono
⁃ operador / carrier )opcional(
⁃ contenido del mensaje
3.El gateway recibe el mensaje y responde si puede aceptarlo
4.Una vez que el mensaje es enviado, es posible recibir un acuse de
recibo. Este aviso puede ser un “request” aparte.
42. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? SMS
Consideraciones útiles:
• Short codes son adminstrados por CSCA )Common Short Code
Assoc(
• Short codes: compartidos y dedicados
⁃ compartido: el mensaje debe incluir un "keyword" para definir
como procesarlo
• Short codes: números aleatorios o "elegidos / de vanidad"
• Costo: entre $500 y $1000 por mes
• Costo por mensaje recibido y enviado
• Reglas definidas de comportamiento )código de conducta de MMA(
• Comandos standard: join, stop, stop all
• Aplicaciones son llamadas campañas y deben ser aprobadas antes
de ser lanzadas
43. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? SMS
Consideraciones técnicas:
• Protocolos/Formatos: XML, SOAP, XML-RPC
• Un mensaje recibido no puede ser recibido
nuevamente, en consecuencia es importante
guardar copia antes de ser procesado
44. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? SMS
Proveedores de SMS gateway:
• Twilio
http://twilio.com
• Clickatell
http://www.clickatell.com
• SMSpubli
http://www.smspubli.com
45. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? SMS/MMS
MMS son mensajes multimedia con texto,
imágenes, video y audio
Usos comunes:
- Procesamiento de fotos
- Envío de código de barras 2D
47. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
Frameworks HTML / Javascript
• iui
http://code.google.com/p/iui/ )uno de los primeros(
• JQuery Mobile
http://jquerymobile.com/ )Open source(
• JQTouch
http://jqtouch.com/ )Open source(
• DHTMLX Touch
http://dhtmlx.com/touch/ )Open source(
• The M Project
http://www.the-m-project.org/ )Open source(
• Sensa Touch
http://www.sencha.com/products/touch/
51. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
jQuery Mobile - Características
• Basado en jQuery
• Liviano )12KB comprimido(
• HTML5
• Accesible )funciona con lectores de
páginas(
• Eventos, plugins y themes
• Patrocinado por Mozilla, Adobe, Palm,
Nokia, Blackberry entre otros.
52. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
jQuery Mobile - Características
• Manejo de páginas
• Transiciones
• Ventanas de dialogo
• Enlances y botones
• Barras de navegación
• Encabezados / Pies de páginas
• Formularios
• Listas
53. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
jQuery Mobile - Manejo de páginas
<body>
<!-- Start of first page -->
<div data-role="page" id="foo">
! <div data-role="content">!
! ! <p>I'm first in the source order so I'm shown as the page.
</p>!!
! ! <p>View internal page called <a href="#bar">bar</a></p>!
! </div><!-- /content -->
</div><!-- /page -->
</body>
54. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
jQuery Mobile - Manejo de páginas
<body>
<!-- Start of first page -->
<div data-role="page" id="foo">
! <div data-role="content">!
! ! <p>I'm first in the source order so I'm shown as the page.</p>! !
! ! <p>View internal page called <a href="#bar">bar</a></p>!
! </div><!-- /content -->
</div><!-- /page -->
<!-- Start of second page -->
<div data-role="page" id="bar">
! <div data-role="content">!
! ! <p>I'm first in the source order so I'm shown as the page.</p>! !
! ! <p><a href="#foo">Back to foo</a></p>!
! </div><!-- /content -->
</div><!-- /page -->
</body>
55. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
jQuery Mobile - Transiciones
<a href="foo.html" data-rel="dialog" data-transition="pop">Open dialog</a>
<a href="foo.html" data-rel="dialog" data-transition="slidedown">Open dialog</a>
<a href="foo.html" data-rel="dialog" data-transition="flip">Open dialog</a>
<a href="foo.html" data-rel="dialog" data-transition="fade">Open dialog</a>
72. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
jQuery Mobile y Symfony / Rutas opción 3
m_portada:
pattern: /m
defaults: { _controller: DesymfonyBundle:Movil:index }
76. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
• Podemos utilizar los functional
tests de Symfony2 ya que el
contenido es HTML
• Si utilizamos el modo AJAX para
transiciones y carga dinámica,
no podemos usar los functional
tests
• Alternativas: Selenium RC
77. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? Web
jQuery Mobile y Symfony
DEMO !
Aplicación desymfony:
• http://desymfony.qa.servergrove.com
• http://desymfony.qa.servergrove.com/m
Panel de Control:
• https://control.servergrove.com/
• https://control.servergrove.com/m
login: demo@servergrove.com
password: Demo2010
79. Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel? híbridas
Aplicaciones que combinan aspectos de
aplicaciones nativas y web
Framework PhoneGap
- Desarrollo de aplicación con HTML y JavaScript
- Integración con XCode
- Compila en código nativo
- Acceso a acelerómetro, cámara, geolocation,
notificaciones