creación de aplicaciones móviles con php y symfony2

93
Creación de aplicaiones móviles con PHP y Symfony2 Quién es Pablo Godel? Aplicaciones Móviles Pablo Godel PHP Barcelona Conference 2011 Friday, October 28, 2011

Upload: pablo-godel

Post on 05-Dec-2014

8.018 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Creación de aplicaciones móviles con PHP y Symfony2

Creación de aplicaiones móviles con

PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles

Pablo Godel

PHP Barcelona Conference 2011

Friday, October 28, 2011

Page 2: Creación de aplicaciones móviles con PHP y Symfony2

•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 )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, Symfony,

Zend Framework, entre otros

Quién es Pablo Godel?"

Friday, October 28, 2011

Page 3: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel?"

Friday, October 28, 2011

Page 4: Creación de aplicaciones móviles con PHP y Symfony2

¿Por qué?

Quién es Pablo Godel? Aplicaciones Móviles - Por qué?

Friday, October 28, 2011

Page 5: Creación de aplicaciones móviles con PHP y Symfony2

• 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

Quién es Pablo Godel? Aplicaciones Móviles - Por qué?

Friday, October 28, 2011

Page 6: Creación de aplicaciones móviles con PHP y Symfony2

•No se pueden dar ventajas en el mercado

ultra-competitivo

•Tus competidores ya lo están haciendo o

implementando

Quién es Pablo Godel? Aplicaciones Móviles - Por qué?

Friday, October 28, 2011

Page 7: Creación de aplicaciones móviles con PHP y Symfony2

Algunos números...

Quién es Pablo Godel? Aplicaciones Móviles - Por qué?

Friday, October 28, 2011

Page 8: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - 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

Friday, October 28, 2011

Page 9: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Por qué?

Teléfonos celulares por Paises

Fuente:http://www.nationmaster.com/graph/med_mob_pho-media-mobile-phones

Friday, October 28, 2011

Page 10: Creación de aplicaciones móviles con PHP y Symfony2

¿Cómo llegamos hasta aquí?

Quién es Pablo Godel? Aplicaciones Móviles - Por qué?

Friday, October 28, 2011

Page 11: Creación de aplicaciones móviles con PHP y Symfony2

Un poco de historia...

Quién es Pablo Godel? Aplicaciones Móviles - Por qué?

Friday, October 28, 2011

Page 12: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Historia

Primera red celular )1G - primera generación(

comercial del mundo lanzada en Japón1979

Friday, October 28, 2011

Page 13: Creación de aplicaciones móviles con PHP y Symfony2

El teléfono “móvil”

Motorola DynaTAC -

también conocido como

LA BOTA - costaba

US$ 3995 y pesaba 793

gramos!

Quién es Pablo Godel? Aplicaciones Móviles - Historia

1983 Motorola DynaTAC

Friday, October 28, 2011

Page 14: Creación de aplicaciones móviles con PHP y Symfony2

Estandard común para conectar distintas redes y aplicaciones en dispositivos

•Cliente WAP•Servidor envia WML )XML(

WAP - Wireless Application Protocol

<?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>

Quién es Pablo Godel? Aplicaciones Móviles - Historia

1997

Friday, October 28, 2011

Page 15: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Historia

WAP/WML

Friday, October 28, 2011

Page 16: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Historia

WAP/WML

Friday, October 28, 2011

Page 17: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Historia

WAP/WML

Friday, October 28, 2011

Page 18: Creación de aplicaciones móviles con PHP y Symfony2

Programador:

Quién es Pablo Godel? Aplicaciones Móviles - Historia

WAP/WML

Friday, October 28, 2011

Page 19: Creación de aplicaciones móviles con PHP y Symfony2

Usuario:

Quién es Pablo Godel? Aplicaciones Móviles - Historia

WAP/WML

Friday, October 28, 2011

Page 20: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Historia

2007...

Friday, October 28, 2011

Page 21: Creación de aplicaciones móviles con PHP y Symfony2

•Revolución en el

mercado de

telefonía móvil

•Cliente Web Safari

Quién es Pablo Godel? Aplicaciones Móviles - Historia

iPhone2007

Friday, October 28, 2011

Page 22: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Historia

iPhone App Store2007

Friday, October 28, 2011

Page 23: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Historia

Primer dispositivo Android2008

Friday, October 28, 2011

Page 24: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Historia

iPad2010

Friday, October 28, 2011

Page 25: Creación de aplicaciones móviles con PHP y Symfony2

¿Qué significa todo esto?

Quién es Pablo Godel? Aplicaciones Móviles - Historia

Friday, October 28, 2011

Page 26: Creación de aplicaciones móviles con PHP y Symfony2

La PC no está muerta

Generación móvil

Quién es Pablo Godel? Aplicaciones Móviles - Historia

Friday, October 28, 2011

Page 27: Creación de aplicaciones móviles con PHP y Symfony2

Pero el consumo de información pasó a teléfonos y tabletas

Quién es Pablo Godel? Aplicaciones Móviles - Historia

Generación móvil

Friday, October 28, 2011

Page 28: Creación de aplicaciones móviles con PHP y Symfony2

Y esto es sólo el comienzo...

Quién es Pablo Godel? Aplicaciones Móviles - Historia

Generación móvil

Friday, October 28, 2011

Page 29: Creación de aplicaciones móviles con PHP y Symfony2

¿Symfony?

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Friday, October 28, 2011

Page 30: Creación de aplicaciones móviles con PHP y Symfony2

¿Qué es Symfony?

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Friday, October 28, 2011

Page 31: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Definición por Fabien Potencier:

⁃ Symfony2 es un grupo de componentes

independientes, reusables y cohesivos, para

solucionar problemas comunes de

desarrollo web.

⁃ Symfony2 es también un framework full-stack, gracias a estos componentes

Fuente: http://fabien.potencier.org/

Friday, October 28, 2011

Page 32: Creación de aplicaciones móviles con PHP y Symfony2

21 componentes de alta calidad

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Friday, October 28, 2011

Page 33: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

• DependencyInjection• EventDispatcher• HttpFoundation• DomCrawler• ClassLoader• CssSelector• HttpKernel• BrowserKit• Templating• Translation• Serializer• Validator • Security • Routing • Console • Process • Config • Finder • Locale • Yaml• Form

Componentes:

Todos en GitHub: http://github.com/symfonyFriday, October 28, 2011

Page 34: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Proyectos usando componentes de Symfony2:

• Silex: BrowerKit, CssSelector, DomCrawler, EventDispatcher, HttpFoundation, HttpKernel, Routing, Form, Translation, Validator

• Goutte: BrowserKit, DomCrawler, CssSelector, Process, ClassLoader, Finder • Behat: Console, DependencyInjection, EventDispatcher, Finder, Yaml, Config,

Translation • Doctrine2: Console, Yaml Propel2: Console, ClassLoader, Yaml• PHPUnit: Yaml • FLOW3: Yaml • Midguard CMS: most of them in their next version? • phpBB 4: most of them? • Drupal 8*: ClassLoader, HttpFoundation, HttpKernel?

Fuente: http://fabien.potencier.org/

Friday, October 28, 2011

Page 35: Creación de aplicaciones móviles con PHP y Symfony2

¿Conoces o usaste symfony 1.x?

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Friday, October 28, 2011

Page 36: Creación de aplicaciones móviles con PHP y Symfony2

Mejor olvídate...

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Friday, October 28, 2011

Page 37: Creación de aplicaciones móviles con PHP y Symfony2

Lo único en común entre symfony 1.x y Symfony2

es el nombre...

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Friday, October 28, 2011

Page 38: Creación de aplicaciones móviles con PHP y Symfony2

Bueno, la carpeta web también...

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Friday, October 28, 2011

Page 39: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Características• Escrito completamente desde cero para PHP 5.3 o superior.• Basado en los estandares del protocolo HTTP• API sólido y estable.• Extensible mediante creación de bundles (en sf1 eran llamados plugins)• Configuración flexible con archivos Yaml, XML, anotaciones, y/o código PHP.• Toda la configuración es convertida a PHP y cacheada.• Creación y manejo de formularios• Muchos unit tests• Código auditado por compañia de seguridad profesional gracias a las

donaciones de la comunidad Symfony.

Friday, October 28, 2011

Page 40: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Comunidad Symfony

• 312 personas han contribuido a Symfony2 hasta la fecha

• ~2500 pull requests en GitHub• 705 bundles en http://symfony2bundles.org• Canales IRC en Freenode: #symfony-es, #symfony

y #symfony-dev• Listas de discusión: symfony-es, symfony y

symfony-devs en Google Groups

Friday, October 28, 2011

Page 41: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

• Excelente integración con:• Doctrine2 ORM y ODM• Propel2• Assetic - manejo de assets (css, js, imágenes, etc)• Twig - motor de plantillas• Swiftmailer - envío de emails

Características

Friday, October 28, 2011

Page 42: Creación de aplicaciones móviles con PHP y Symfony2

¿Por qué Symfony?

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

Friday, October 28, 2011

Page 43: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles - Symfony

• Gracias a la base sólida se pueden crear buenas APIs HTTP / Restful

• Twig facilita la creación de plantillas para dispositivos móviles

• Es posible re-utilizar mucho código para distintas aplicaciones o dispositivos gracias a las plantillas, los controladores y el ruteo

Friday, October 28, 2011

Page 44: Creación de aplicaciones móviles con PHP y Symfony2

1.Aplicaciones nativas2.Aplicaciones SMS3.Aplicaciones web4.Aplicaciones híbridas )mezcla de nativas & web(

Quién es Pablo Godel? Aplicaciones Móviles - Tipos

Friday, October 28, 2011

Page 45: Creación de aplicaciones móviles con PHP y Symfony2

Aplicaciones Nativas

Quién es Pablo Godel? Aplicaciones Móviles - Tipos

Friday, October 28, 2011

Page 46: Creación de aplicaciones móviles con PHP y Symfony2

• iPhone - Objective-C

•Android - Java

•Windows Mobile - .NET

•Frameworks multi-plataform

⁃ PhoneGap http://phonegap.com

⁃ rhomobile http://rhomobile.com

⁃ Appceledator http://appcelerator.com

⁃ Corona http://anscamobile.com/corona/

Quién es Pablo Godel? Aplicaciones Móviles Aplicacionesnativas

Friday, October 28, 2011

Page 47: Creación de aplicaciones móviles con PHP y Symfony2

PHP o Symfony no corren en estos

dispositivos 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

Quién es Pablo Godel? Aplicaciones Móviles Aplicacionesnativas

Friday, October 28, 2011

Page 48: Creación de aplicaciones móviles con PHP y Symfony2

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(

Quién es Pablo Godel? Aplicaciones Móviles Aplicacionesnativas

Friday, October 28, 2011

Page 49: Creación de aplicaciones móviles con PHP y Symfony2

Symfony2 Bundle para crear una API

- FOSRestBundlehttps://github.com/FriendsOfSymfony/FOSRestBundle

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesNativas

Friday, October 28, 2011

Page 50: Creación de aplicaciones móviles con PHP y Symfony2

Notificaciones PUSH

Un servidor envía mensajes a la red celular

con destino teléfono/aplicación- El servidor puede estar desarrollado con

SymfonyEjemplo en PHP: http://easyapns.com/

Quién es Pablo Godel? Aplicaciones Móviles Aplicacionesnativas

Friday, October 28, 2011

Page 51: Creación de aplicaciones móviles con PHP y Symfony2

Aplicaciones SMS

Quién es Pablo Godel? Aplicaciones Móviles

Friday, October 28, 2011

Page 52: Creación de aplicaciones móviles con PHP y Symfony2

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

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesSMS

Friday, October 28, 2011

Page 53: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesSMS

Friday, October 28, 2011

Page 54: Creación de aplicaciones móviles con PHP y Symfony2

Recibo de SMS1.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ía3.El mensaje llega al gateway registrado para procesar el short code4.El gateway convierte el mensaje y lo envía por internet utilizando

HTTP/HTTPS5.Nuestro servidor recibe el "request" con la siguiente información:

⁃ número de télefono

⁃ operador / carrier

⁃ contenido del mensaje6.Procesamos el mensaje7.Si es necesario enviamos una respuesta

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesSMS

Friday, October 28, 2011

Page 55: Creación de aplicaciones móviles con PHP y Symfony2

Envío de SMS

1.Generamos el contenido del mensaje2.Se envía el mensaje al gateway con la siguiente información

⁃ número de teléfono

⁃ operador / carrier )opcional(

⁃ contenido del mensaje3.El gateway recibe el mensaje y responde si puede aceptarlo4.Una vez que el mensaje es enviado, es posible recibir un acuse de

recibo. Este aviso puede ser un “request” aparte.

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesSMS

Friday, October 28, 2011

Page 56: Creación de aplicaciones móviles con PHP y Symfony2

Proveedores de SMS gateway:

•Twiliohttp://twilio.com)lanzanzando servicio internacional pronto(

•Clickatellhttp://www.clickatell.com

•SMSpublihttp://www.smspubli.com

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesSMS

Friday, October 28, 2011

Page 57: Creación de aplicaciones móviles con PHP y Symfony2

MMS son mensajes multimedia con texto, imágenes, video y audioUsos comunes:

- Procesamiento de fotos- Envío de código de barras 2D

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesSMS/MMS

Friday, October 28, 2011

Page 58: Creación de aplicaciones móviles con PHP y Symfony2

Aplicaciones Web

Quién es Pablo Godel? Aplicaciones Móviles

Friday, October 28, 2011

Page 59: Creación de aplicaciones móviles con PHP y Symfony2

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/

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 60: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile

Friday, October 28, 2011

Page 61: Creación de aplicaciones móviles con PHP y Symfony2

Soporta:- IOS )iPhone/iPad(- Android- Blackberry- Windows Phone- palm webOS- symbian

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile

Friday, October 28, 2011

Page 62: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile

Friday, October 28, 2011

Page 63: Creación de aplicaciones móviles con PHP y Symfony2

•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.

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile - Características

Friday, October 28, 2011

Page 64: Creación de aplicaciones móviles con PHP y Symfony2

•Manejo de páginas•Transiciones•Ventanas de dialogo•Enlances y botones•Barras de navegación•Encabezados / Pies de páginas•Formularios•Listas

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile - Características

Friday, October 28, 2011

Page 65: Creación de aplicaciones móviles con PHP y Symfony2

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>

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 66: Creación de aplicaciones móviles con PHP y Symfony2

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>

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 67: Creación de aplicaciones móviles con PHP y Symfony2

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>

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 68: Creación de aplicaciones móviles con PHP y Symfony2

jQuery Mobile - Ventanas de dialogo

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 69: Creación de aplicaciones móviles con PHP y Symfony2

jQuery Mobile - Barras de navegacion

<div data-role="header" data-position="inline">! <a href="index.html" data-icon="delete">Cancel</a>! <h1>Edit Contact</h1>! <a href="index.html" data-icon="check">Save</a></div>

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 70: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile - Forms

Friday, October 28, 2011

Page 71: Creación de aplicaciones móviles con PHP y Symfony2

jQuery Mobile - Forms

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 72: Creación de aplicaciones móviles con PHP y Symfony2

jQuery Mobile - Listas

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 73: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile y Symfony

Friday, October 28, 2011

Page 74: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 75: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 76: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Plantillas

Friday, October 28, 2011

Page 77: Creación de aplicaciones móviles con PHP y Symfony2

<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>{% block title %}Jornadas de Symfony{% endblock %} | Desymfony.com</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" /> <script src="http://code.jquery.com/jquery-1.6.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script></head><body><div data-role="page" id="{% block pageid '' %}" class="type-{% block pagetype 'interior' %}">{% block header %}{% endblock %}{% block contenido %}{% endblock %}{% block footer %}<div data-role="footer" class="ui-bar" data-theme="b"> <a href="{{ path('m_estatica', { 'pagina': 'copyright'}) }}">&copy; {{ 'now' | date('Y') }} - desymfony</a> <a href="{{ path('m_estatica', { 'pagina': 'privacidad'}) }}"> Privacidad</a> <a href="{{ path('m_estatica', { 'pagina': 'condiciones'}) }}"> Condiciones de uso</a></div>{% endblock %}</div></body></html>

layout_movil.html.twig

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 78: Creación de aplicaciones móviles con PHP y Symfony2

{% extends "DesymfonyBundle::layout_movil.html.twig" %}{% block pageid 'ponencia' %}{% block pagetype 'interior' %}{% block header %} {% include 'DesymfonyBundle:Movil:header.mhtml.twig' with {'titulo': ponencia.titulo} %}{% endblock %}{% block contenido %}<div data-role="content"> <div class="content-primary"> <h2>{{ ponencia.titulo }}</h2> <p>{{ ponencia.descripcion }}</p> <ul data-role="listview" data-inset="true"> <li><strong>Fecha</strong><p class="ui-li-aside">{{ ponencia.fecha | date("d M") }}</p></li> <li><strong>Hora</strong><p class="ui-li-aside">{{ ponencia.hora | date("H:i") }} - {{ ponencia.horaFinalizacion | date("H:i") }}</p></li> <li><strong>Idioma</strong><p class="ui-li-aside">{{ idiomas[ponencia.idioma] }}</p></li> <li><a href="{{ path('m_ponentes') }}"><strong>Ponente</strong><p class="ui-li-aside">{{ ponencia.ponente }}</p></a></li> </ul> </div></div>{% endblock %}

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

ponencia.mhtml.twig

Friday, October 28, 2011

Page 79: Creación de aplicaciones móviles con PHP y Symfony2

<div data-role="header" data-theme="b"> <h1>{{titulo}}</h1> <a href="#home" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home" data-ajax="false">Home</a></div><!-- /header -->

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

header.mhtml.twig

Friday, October 28, 2011

Page 80: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Rutas

Friday, October 28, 2011

Page 81: Creación de aplicaciones móviles con PHP y Symfony2

portada: pattern: / defaults: { _controller: DesymfonyBundle:Default:index }ponencias: pattern: /ponencias.{_format} defaults: { _controller: DesymfonyBundle:Ponencia:index, _format: html } requirements: _format: html|xml|icsponencia: pattern: /ponencia/{slug} defaults: { _controller: DesymfonyBundle:Ponencia:ponencia }estatica: pattern: /sitio/{pagina} defaults: { _controller: DesymfonyBundle:Default:estatica } requirements: pagina: contacto|copyright|condiciones|privacidad

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile y Symfony / Rutas

Friday, October 28, 2011

Page 82: Creación de aplicaciones móviles con PHP y Symfony2

jQuery Mobile y Symfony / Rutas

m_portada: pattern: /m defaults: { _controller: DesymfonyBundle:Default:index, _format: mhtml }m_ponencias: pattern: /m/ponencias.{_format} defaults: { _controller: DesymfonyBundle:Ponencia:index, _format: mhtml } requirements: _format: mhtml|html|xml|icsm_ponencia: pattern: /m/ponencia/{slug} defaults: { _controller: DesymfonyBundle:Ponencia:ponencia, _format: mhtml }m_ponentes: pattern: /m/ponentes defaults: { _controller: DesymfonyBundle:Ponente:index, _format: mhtml }

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 83: Creación de aplicaciones móviles con PHP y Symfony2

m_portada: pattern: /m defaults: { _controller: DesymfonyBundle:Default:index, movil: true }m_ponencias: pattern: /m/ponencias.{_format} defaults: { _controller: DesymfonyBundle:Ponencia:index, movil: true } requirements: _format: html|xml|icsm_ponencia: pattern: /m/ponencia/{slug} defaults: { _controller: DesymfonyBundle:Ponencia:ponencia, movil: true }m_ponentes: pattern: /m/ponentes defaults: { _controller: DesymfonyBundle:Ponente:index, movil: true }

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

jQuery Mobile y Symfony / Rutas opción 2

Friday, October 28, 2011

Page 84: Creación de aplicaciones móviles con PHP y Symfony2

jQuery Mobile y Symfony / Rutas opción 3

m_portada: pattern: /m defaults: { _controller: DesymfonyBundle:Movil:index }

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 85: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Controladores y acciones

Friday, October 28, 2011

Page 86: Creación de aplicaciones móviles con PHP y Symfony2

jQuery Mobile y Symfony / Controlador & Acción

public function indexAction() { $em = $this->get('doctrine')->getEntityManager(); $ponenciasDiaUno = $em->getRepository('DesymfonyBundle:Ponencia')->findTodasDeFecha('2011-07-01'); $ponenciasDiaDos = $em->getRepository('DesymfonyBundle:Ponencia')->findTodasDeFecha('2011-07-02');

$format = $this->get('request')->getRequestFormat();

return $this->render('DesymfonyBundle:Default:index.'.$format.'.twig', array( 'ponenciasDiaUno' => $ponenciasDiaUno, 'ponenciasDiaDos' => $ponenciasDiaDos, )); }

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Friday, October 28, 2011

Page 87: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

Testing

Friday, October 28, 2011

Page 88: Creación de aplicaciones móviles con PHP y Symfony2

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

•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•Behat )BDD(

Friday, October 28, 2011

Page 89: Creación de aplicaciones móviles con PHP y Symfony2

jQuery Mobile y Symfony

DEMO !

Quién es Pablo Godel? Aplicaciones Móviles AplicacionesWeb

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: [email protected]: Demo2010

Friday, October 28, 2011

Page 90: Creación de aplicaciones móviles con PHP y Symfony2

Aplicaciones Híbridas

Quién es Pablo Godel? Aplicaciones Móviles

Friday, October 28, 2011

Page 91: Creación de aplicaciones móviles con PHP y Symfony2

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

Quién es Pablo Godel? Aplicaciones Móviles Aplicacioneshíbridas

Friday, October 28, 2011

Page 92: Creación de aplicaciones móviles con PHP y Symfony2

¿Preguntas?

Quién es Pablo Godel? Aplicaciones Móviles

Friday, October 28, 2011

Page 93: Creación de aplicaciones móviles con PHP y Symfony2

MUCHAS GRACIAS!

Comentarios & sugerencias:http://joind.in/4330

Fuentes: https://github.com/desymfony/desymfonySlides: http://slideshare.net/pgodel

Twitter: @pgodelIRC Freenode: pgodel

Quién es Pablo Godel? Aplicaciones Móviles

Friday, October 28, 2011