SlideShare ist ein Scribd-Unternehmen logo
1 von 93
Downloaden Sie, um offline zu lesen
Aplicaciones Móviles
     Quién es Pablo Godel?


                      Creación de aplicaiones
                           móviles con
                         PHP y Symfony2
                                   Pablo Godel



                           PHP Barcelona Conference 2011



Friday, October 28, 2011
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 )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



Friday, October 28, 2011
Quién es Pablo Godel?"




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Por qué?




                           ¿Por qué?



Friday, October 28, 2011
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

Friday, October 28, 2011
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




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Por qué?




                           Algunos números...




Friday, October 28, 2011
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



Friday, October 28, 2011
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



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Por qué?




       ¿Cómo llegamos hasta aquí?



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Por qué?




                           Un poco de historia...



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia
   1979                    Primera red celular )1G - primera generación(
                              comercial del mundo lanzada en Japón




Friday, October 28, 2011
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!


Friday, October 28, 2011
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>
Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia

                           WAP/WML




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia

                           WAP/WML




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia

                           WAP/WML




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia

                             WAP/WML


                  Programador:




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia

                                      WAP/WML


                           Usuario:




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia




                           2007...



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia
   2007                    iPhone




      • Revolución en el
           mercado de
           telefonía móvil
      • Cliente Web Safari



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia
   2007                    iPhone App Store




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia
   2008                    Primer dispositivo Android




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia
   2010                    iPad




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia




                   ¿Qué significa todo esto?




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia


                           Generación móvil
                             La PC no está muerta




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia

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




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Historia

                           Generación móvil
                           Y esto es sólo el comienzo...




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony




                           ¿Symfony?




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony


                           ¿Qué es Symfony?




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? 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
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony




                           21 componentes
                            de alta calidad



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony
       Componentes:                     •   DependencyInjection
                                        •   EventDispatcher
                                        •   HttpFoundation
                                        •   DomCrawler
                                        •   ClassLoader
                                        •   CssSelector
                                        •   HttpKernel
                                        •   BrowserKit
                                        •   Templating
                                        •   Translation
                                        •   Serializer
                                        •   Validator
                                        •   Security
                                        •   Routing
                                        •   Console
                                        •   Process
                                        •   Config
                                        •   Finder
                                        •   Locale
                                        •   Yaml
                                        •   Form
                           Todos en GitHub: http://github.com/symfony
Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? 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
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony




                           ¿Conoces o usaste
                             symfony 1.x?



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony




                           Mejor olvídate...




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony




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



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony




                           Bueno, la carpeta web
                                también...



Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? 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
Aplicaciones Móviles -
     Quién es Pablo Godel? 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
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony


             Características

              • 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




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Symfony




                           ¿Por qué Symfony?




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? 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
Aplicaciones Móviles -
     Quién es Pablo Godel? Tipos



     1.Aplicaciones nativas
     2.Aplicaciones SMS
     3.Aplicaciones web
     4.Aplicaciones híbridas )mezcla de nativas & web(




Friday, October 28, 2011
Aplicaciones Móviles -
     Quién es Pablo Godel? Tipos




                           Aplicaciones Nativas




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                               nativas



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


Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                           nativas


                            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
Friday, October 28, 2011
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(

Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                                     Nativas




                       Symfony2 Bundle para crear una API


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




Friday, October 28, 2011
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/



Friday, October 28, 2011
Aplicaciones Móviles
     Quién es Pablo Godel?




                           Aplicaciones SMS




Friday, October 28, 2011
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

Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?       SMS




Friday, October 28, 2011
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



Friday, October 28, 2011
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.




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                              SMS


                           Proveedores de SMS gateway:
                   • Twilio
                           http://twilio.com
                           )lanzanzando servicio internacional pronto(
                   • Clickatell
                           http://www.clickatell.com
                   • SMSpubli
                           http://www.smspubli.com


Friday, October 28, 2011
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




Friday, October 28, 2011
Aplicaciones Móviles
     Quién es Pablo Godel?




                           Aplicaciones Web




Friday, October 28, 2011
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/

Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?             Web
                           jQuery Mobile




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                           Web
                                         jQuery Mobile


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




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?             Web
                           jQuery Mobile




Friday, October 28, 2011
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.




Friday, October 28, 2011
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



Friday, October 28, 2011
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>




Friday, October 28, 2011
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>




Friday, October 28, 2011
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>




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                          Web
                           jQuery Mobile - Ventanas de dialogo




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                                      Web
                           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>




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                  Web
                           jQuery Mobile - Forms




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                  Web
                           jQuery Mobile - Forms




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                   Web
                           jQuery Mobile - Listas




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                   Web




                           jQuery Mobile y Symfony




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?       Web




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?       Web




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?             Web




                           Plantillas




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                                            Web
     <!DOCTYPE html>
     <html>
                                                                      layout_movil.html.twig
     <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>
Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                                 Web
   {% extends "DesymfonyBundle::layout_movil.html.twig" %}
   {% block pageid 'ponencia' %}                              ponencia.mhtml.twig
   {% 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 %}
Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                  Web

                                               header.mhtml.twig



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




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?         Web




                           Rutas




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                                   Web
                           jQuery Mobile y Symfony / Rutas

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

Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                                Web
                           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|ics
          m_ponencia:
            pattern: /m/ponencia/{slug}
            defaults: { _controller: DesymfonyBundle:Ponencia:ponencia, _format: mhtml }
          m_ponentes:
            pattern: /m/ponentes
            defaults: { _controller: DesymfonyBundle:Ponente:index, _format: mhtml }




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                                  Web
                           jQuery Mobile y Symfony / Rutas opción 2


          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|ics
          m_ponencia:
            pattern: /m/ponencia/{slug}
            defaults: { _controller: DesymfonyBundle:Ponencia:ponencia, movil: true }
          m_ponentes:
            pattern: /m/ponentes
            defaults: { _controller: DesymfonyBundle:Ponente:index, movil: true }




Friday, October 28, 2011
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 }




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                    Web




                           Controladores y acciones




Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?                                    Web
                    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,
                ));
          }



Friday, October 28, 2011
Aplicaciones
     Aplicaciones Móviles
     Quién es Pablo Godel?           Web




                           Testing




Friday, October 28, 2011
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
                           • Behat )BDD(


Friday, October 28, 2011
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
Friday, October 28, 2011
Aplicaciones Móviles
     Quién es Pablo Godel?




                           Aplicaciones Híbridas




Friday, October 28, 2011
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



Friday, October 28, 2011
Aplicaciones Móviles
     Quién es Pablo Godel?




                           ¿Preguntas?




Friday, October 28, 2011
Aplicaciones Móviles
     Quién es Pablo Godel?

                              MUCHAS GRACIAS!

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

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

                                  Twitter: @pgodel
                                IRC Freenode: pgodel


Friday, October 28, 2011

Weitere ähnliche Inhalte

Andere mochten auch

Bebo characters for carpe ominous
Bebo characters for carpe ominousBebo characters for carpe ominous
Bebo characters for carpe ominous
Andie Eames
 
Internet y los buscadores (especializados, inteligentes
Internet y los buscadores (especializados, inteligentesInternet y los buscadores (especializados, inteligentes
Internet y los buscadores (especializados, inteligentes
Angie Suarez
 
Vierkant Bol Jakom
Vierkant Bol JakomVierkant Bol Jakom
Vierkant Bol Jakom
Eric Vos
 
Streets United Extreme Unicycle Show
Streets United Extreme Unicycle ShowStreets United Extreme Unicycle Show
Streets United Extreme Unicycle Show
Streets United
 
Fun6.2 the fuse and circuit breaker notes
Fun6.2  the fuse and circuit breaker  notesFun6.2  the fuse and circuit breaker  notes
Fun6.2 the fuse and circuit breaker notes
Enoch Chow
 

Andere mochten auch (20)

CONEXION A LA BASE DE DATOS SQLITE A TRAVES DE UNA APLICACION MOVIL ANDRO...
CONEXION A  LA BASE DE DATOS  SQLITE A TRAVES DE UNA APLICACION  MOVIL  ANDRO...CONEXION A  LA BASE DE DATOS  SQLITE A TRAVES DE UNA APLICACION  MOVIL  ANDRO...
CONEXION A LA BASE DE DATOS SQLITE A TRAVES DE UNA APLICACION MOVIL ANDRO...
 
Innovation and the Future of Music
Innovation and the Future of MusicInnovation and the Future of Music
Innovation and the Future of Music
 
Naveen visual cv
Naveen visual cvNaveen visual cv
Naveen visual cv
 
Bebo characters for carpe ominous
Bebo characters for carpe ominousBebo characters for carpe ominous
Bebo characters for carpe ominous
 
Internet y los buscadores (especializados, inteligentes
Internet y los buscadores (especializados, inteligentesInternet y los buscadores (especializados, inteligentes
Internet y los buscadores (especializados, inteligentes
 
Tabaquismo ! liseth vazquez
Tabaquismo ! liseth vazquezTabaquismo ! liseth vazquez
Tabaquismo ! liseth vazquez
 
IT-survey.pdf
IT-survey.pdfIT-survey.pdf
IT-survey.pdf
 
Vierkant Bol Jakom
Vierkant Bol JakomVierkant Bol Jakom
Vierkant Bol Jakom
 
Streets United Extreme Unicycle Show
Streets United Extreme Unicycle ShowStreets United Extreme Unicycle Show
Streets United Extreme Unicycle Show
 
(132) La competencia intercultural del docente en la enseñanza universitaria ...
(132) La competencia intercultural del docente en la enseñanza universitaria ...(132) La competencia intercultural del docente en la enseñanza universitaria ...
(132) La competencia intercultural del docente en la enseñanza universitaria ...
 
My turf 2007
My turf 2007My turf 2007
My turf 2007
 
Dealing with digital furniture: LMS', IRs and CRIS' - Opportunities for Integ...
Dealing with digital furniture: LMS', IRs and CRIS' - Opportunities for Integ...Dealing with digital furniture: LMS', IRs and CRIS' - Opportunities for Integ...
Dealing with digital furniture: LMS', IRs and CRIS' - Opportunities for Integ...
 
2014 RJI Mobile Media Research Report 2: Seniors hold key to future growth fo...
2014 RJI Mobile Media Research Report 2: Seniors hold key to future growth fo...2014 RJI Mobile Media Research Report 2: Seniors hold key to future growth fo...
2014 RJI Mobile Media Research Report 2: Seniors hold key to future growth fo...
 
MONITOREO Y EVALUACIÓN
MONITOREO Y EVALUACIÓNMONITOREO Y EVALUACIÓN
MONITOREO Y EVALUACIÓN
 
Reparación PST
Reparación PSTReparación PST
Reparación PST
 
Weg cfw08
Weg cfw08Weg cfw08
Weg cfw08
 
Global Millennial Survey de Telefónica 2014: resultados globales
Global Millennial Survey de Telefónica 2014: resultados globales Global Millennial Survey de Telefónica 2014: resultados globales
Global Millennial Survey de Telefónica 2014: resultados globales
 
Fonterra Consumer Brands Contact Case Study
Fonterra Consumer Brands   Contact Case StudyFonterra Consumer Brands   Contact Case Study
Fonterra Consumer Brands Contact Case Study
 
Ifa
IfaIfa
Ifa
 
Fun6.2 the fuse and circuit breaker notes
Fun6.2  the fuse and circuit breaker  notesFun6.2  the fuse and circuit breaker  notes
Fun6.2 the fuse and circuit breaker notes
 

Ähnlich wie Creación de aplicaciones móviles con PHP y Symfony2

Creacion de aplicaciones moviles con symfony2
Creacion de aplicaciones moviles con symfony2Creacion de aplicaciones moviles con symfony2
Creacion de aplicaciones moviles con symfony2
Pablo Godel
 
V2 d2013 alberto sagredo - domótica
V2 d2013   alberto sagredo - domóticaV2 d2013   alberto sagredo - domótica
V2 d2013 alberto sagredo - domótica
VOIP2DAY
 
Internet TV and Social
Internet TV and SocialInternet TV and Social
Internet TV and Social
Pablo Vittori
 
Android la plataforma móvil open source
Android la plataforma móvil open sourceAndroid la plataforma móvil open source
Android la plataforma móvil open source
Israel Camacho
 

Ähnlich wie Creación de aplicaciones móviles con PHP y Symfony2 (20)

Creacion de aplicaciones moviles con symfony2
Creacion de aplicaciones moviles con symfony2Creacion de aplicaciones moviles con symfony2
Creacion de aplicaciones moviles con symfony2
 
Domótica con Asterisk Voip2day 2013
Domótica con Asterisk Voip2day 2013Domótica con Asterisk Voip2day 2013
Domótica con Asterisk Voip2day 2013
 
V2 d2013 alberto sagredo - domótica
V2 d2013   alberto sagredo - domóticaV2 d2013   alberto sagredo - domótica
V2 d2013 alberto sagredo - domótica
 
SEMINARIO DE INFORMATICA IDE0812385
SEMINARIO DE INFORMATICA IDE0812385SEMINARIO DE INFORMATICA IDE0812385
SEMINARIO DE INFORMATICA IDE0812385
 
sistema operativo android
sistema operativo androidsistema operativo android
sistema operativo android
 
Internet TV and Social
Internet TV and SocialInternet TV and Social
Internet TV and Social
 
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
 
Entorno de desarrollo productivo
Entorno de desarrollo productivoEntorno de desarrollo productivo
Entorno de desarrollo productivo
 
Android la plataforma móvil open source
Android la plataforma móvil open sourceAndroid la plataforma móvil open source
Android la plataforma móvil open source
 
UNAM App Marketing
UNAM App MarketingUNAM App Marketing
UNAM App Marketing
 
Plone CMS en el Proyecto CANAIMA GNU/Linux
Plone CMS en el Proyecto CANAIMA GNU/LinuxPlone CMS en el Proyecto CANAIMA GNU/Linux
Plone CMS en el Proyecto CANAIMA GNU/Linux
 
Jolicloud
JolicloudJolicloud
Jolicloud
 
API XML basada en pyxser bajo Django
API XML basada en pyxser bajo DjangoAPI XML basada en pyxser bajo Django
API XML basada en pyxser bajo Django
 
Seguimiento lucano.online def junio 2011
Seguimiento lucano.online def junio 2011Seguimiento lucano.online def junio 2011
Seguimiento lucano.online def junio 2011
 
Plone CMS es chevere!!!
Plone CMS es chevere!!!Plone CMS es chevere!!!
Plone CMS es chevere!!!
 
Guadalinex
GuadalinexGuadalinex
Guadalinex
 
Ratatatata
RatatatataRatatatata
Ratatatata
 
Sostenibilidad y Software Libre
Sostenibilidad y Software LibreSostenibilidad y Software Libre
Sostenibilidad y Software Libre
 
Alejandra
AlejandraAlejandra
Alejandra
 
Openwolf
OpenwolfOpenwolf
Openwolf
 

Mehr von Pablo Godel

Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2
Pablo Godel
 

Mehr von Pablo Godel (20)

SymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkySymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSky
 
Symfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSkySymfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSky
 
DeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyDeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSky
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
 
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
 
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsphp[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
 
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersLone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
 
Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2
 
Tek13 - Creating Mobile Apps with PHP and Symfony
Tek13 - Creating Mobile Apps with PHP and SymfonyTek13 - Creating Mobile Apps with PHP and Symfony
Tek13 - Creating Mobile Apps with PHP and Symfony
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJS
 
Soflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersSoflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developers
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 

Creación de aplicaciones móviles con PHP y Symfony2

  • 1. Aplicaciones Móviles Quién es Pablo Godel? Creación de aplicaiones móviles con PHP y Symfony2 Pablo Godel PHP Barcelona Conference 2011 Friday, October 28, 2011
  • 2. 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 )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 Friday, October 28, 2011
  • 3. Quién es Pablo Godel?" Friday, October 28, 2011
  • 4. Aplicaciones Móviles - Quién es Pablo Godel? Por qué? ¿Por qué? Friday, October 28, 2011
  • 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 Friday, October 28, 2011
  • 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 Friday, October 28, 2011
  • 7. Aplicaciones Móviles - Quién es Pablo Godel? Por qué? Algunos números... Friday, October 28, 2011
  • 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 Friday, October 28, 2011
  • 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 Friday, October 28, 2011
  • 10. Aplicaciones Móviles - Quién es Pablo Godel? Por qué? ¿Cómo llegamos hasta aquí? Friday, October 28, 2011
  • 11. Aplicaciones Móviles - Quién es Pablo Godel? Por qué? Un poco de historia... Friday, October 28, 2011
  • 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 Friday, October 28, 2011
  • 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! Friday, October 28, 2011
  • 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> Friday, October 28, 2011
  • 15. Aplicaciones Móviles - Quién es Pablo Godel? Historia WAP/WML Friday, October 28, 2011
  • 16. Aplicaciones Móviles - Quién es Pablo Godel? Historia WAP/WML Friday, October 28, 2011
  • 17. Aplicaciones Móviles - Quién es Pablo Godel? Historia WAP/WML Friday, October 28, 2011
  • 18. Aplicaciones Móviles - Quién es Pablo Godel? Historia WAP/WML Programador: Friday, October 28, 2011
  • 19. Aplicaciones Móviles - Quién es Pablo Godel? Historia WAP/WML Usuario: Friday, October 28, 2011
  • 20. Aplicaciones Móviles - Quién es Pablo Godel? Historia 2007... Friday, October 28, 2011
  • 21. Aplicaciones Móviles - Quién es Pablo Godel? Historia 2007 iPhone • Revolución en el mercado de telefonía móvil • Cliente Web Safari Friday, October 28, 2011
  • 22. Aplicaciones Móviles - Quién es Pablo Godel? Historia 2007 iPhone App Store Friday, October 28, 2011
  • 23. Aplicaciones Móviles - Quién es Pablo Godel? Historia 2008 Primer dispositivo Android Friday, October 28, 2011
  • 24. Aplicaciones Móviles - Quién es Pablo Godel? Historia 2010 iPad Friday, October 28, 2011
  • 25. Aplicaciones Móviles - Quién es Pablo Godel? Historia ¿Qué significa todo esto? Friday, October 28, 2011
  • 26. Aplicaciones Móviles - Quién es Pablo Godel? Historia Generación móvil La PC no está muerta Friday, October 28, 2011
  • 27. Aplicaciones Móviles - Quién es Pablo Godel? Historia Generación móvil Pero el consumo de información pasó a teléfonos y tabletas Friday, October 28, 2011
  • 28. Aplicaciones Móviles - Quién es Pablo Godel? Historia Generación móvil Y esto es sólo el comienzo... Friday, October 28, 2011
  • 29. Aplicaciones Móviles - Quién es Pablo Godel? Symfony ¿Symfony? Friday, October 28, 2011
  • 30. Aplicaciones Móviles - Quién es Pablo Godel? Symfony ¿Qué es Symfony? Friday, October 28, 2011
  • 31. Aplicaciones Móviles - Quién es Pablo Godel? 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
  • 32. Aplicaciones Móviles - Quién es Pablo Godel? Symfony 21 componentes de alta calidad Friday, October 28, 2011
  • 33. Aplicaciones Móviles - Quién es Pablo Godel? Symfony Componentes: • DependencyInjection • EventDispatcher • HttpFoundation • DomCrawler • ClassLoader • CssSelector • HttpKernel • BrowserKit • Templating • Translation • Serializer • Validator • Security • Routing • Console • Process • Config • Finder • Locale • Yaml • Form Todos en GitHub: http://github.com/symfony Friday, October 28, 2011
  • 34. Aplicaciones Móviles - Quién es Pablo Godel? 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
  • 35. Aplicaciones Móviles - Quién es Pablo Godel? Symfony ¿Conoces o usaste symfony 1.x? Friday, October 28, 2011
  • 36. Aplicaciones Móviles - Quién es Pablo Godel? Symfony Mejor olvídate... Friday, October 28, 2011
  • 37. Aplicaciones Móviles - Quién es Pablo Godel? Symfony Lo único en común entre symfony 1.x y Symfony2 es el nombre... Friday, October 28, 2011
  • 38. Aplicaciones Móviles - Quién es Pablo Godel? Symfony Bueno, la carpeta web también... Friday, October 28, 2011
  • 39. Aplicaciones Móviles - Quién es Pablo Godel? 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
  • 40. Aplicaciones Móviles - Quién es Pablo Godel? 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
  • 41. Aplicaciones Móviles - Quién es Pablo Godel? Symfony Características • 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 Friday, October 28, 2011
  • 42. Aplicaciones Móviles - Quién es Pablo Godel? Symfony ¿Por qué Symfony? Friday, October 28, 2011
  • 43. Aplicaciones Móviles - Quién es Pablo Godel? 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
  • 44. Aplicaciones Móviles - Quién es Pablo Godel? Tipos 1.Aplicaciones nativas 2.Aplicaciones SMS 3.Aplicaciones web 4.Aplicaciones híbridas )mezcla de nativas & web( Friday, October 28, 2011
  • 45. Aplicaciones Móviles - Quién es Pablo Godel? Tipos Aplicaciones Nativas Friday, October 28, 2011
  • 46. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? nativas • 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/ Friday, October 28, 2011
  • 47. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? nativas 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 Friday, October 28, 2011
  • 48. 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( Friday, October 28, 2011
  • 49. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Nativas Symfony2 Bundle para crear una API - FOSRestBundle https://github.com/FriendsOfSymfony/FOSRestBundle Friday, October 28, 2011
  • 50. 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/ Friday, October 28, 2011
  • 51. Aplicaciones Móviles Quién es Pablo Godel? Aplicaciones SMS Friday, October 28, 2011
  • 52. 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 Friday, October 28, 2011
  • 53. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? SMS Friday, October 28, 2011
  • 54. 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 Friday, October 28, 2011
  • 55. 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. Friday, October 28, 2011
  • 56. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? SMS Proveedores de SMS gateway: • Twilio http://twilio.com )lanzanzando servicio internacional pronto( • Clickatell http://www.clickatell.com • SMSpubli http://www.smspubli.com Friday, October 28, 2011
  • 57. 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 Friday, October 28, 2011
  • 58. Aplicaciones Móviles Quién es Pablo Godel? Aplicaciones Web Friday, October 28, 2011
  • 59. 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/ Friday, October 28, 2011
  • 60. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile Friday, October 28, 2011
  • 61. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile Soporta: - IOS )iPhone/iPad( - Android - Blackberry - Windows Phone - palm webOS - symbian Friday, October 28, 2011
  • 62. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile Friday, October 28, 2011
  • 63. 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. Friday, October 28, 2011
  • 64. 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 Friday, October 28, 2011
  • 65. 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> Friday, October 28, 2011
  • 66. 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> Friday, October 28, 2011
  • 67. 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> Friday, October 28, 2011
  • 68. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile - Ventanas de dialogo Friday, October 28, 2011
  • 69. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web 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> Friday, October 28, 2011
  • 70. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile - Forms Friday, October 28, 2011
  • 71. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile - Forms Friday, October 28, 2011
  • 72. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile - Listas Friday, October 28, 2011
  • 73. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile y Symfony Friday, October 28, 2011
  • 74. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web Friday, October 28, 2011
  • 75. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web Friday, October 28, 2011
  • 76. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web Plantillas Friday, October 28, 2011
  • 77. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web <!DOCTYPE html> <html> layout_movil.html.twig <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> Friday, October 28, 2011
  • 78. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web {% extends "DesymfonyBundle::layout_movil.html.twig" %} {% block pageid 'ponencia' %} ponencia.mhtml.twig {% 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 %} Friday, October 28, 2011
  • 79. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web header.mhtml.twig <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 --> Friday, October 28, 2011
  • 80. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web Rutas Friday, October 28, 2011
  • 81. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile y Symfony / Rutas portada: pattern: / defaults: { _controller: DesymfonyBundle:Default:index } ponencias: pattern: /ponencias.{_format} defaults: { _controller: DesymfonyBundle:Ponencia:index, _format: html } requirements: _format: html|xml|ics ponencia: pattern: /ponencia/{slug} defaults: { _controller: DesymfonyBundle:Ponencia:ponencia } estatica: pattern: /sitio/{pagina} defaults: { _controller: DesymfonyBundle:Default:estatica } requirements: pagina: contacto|copyright|condiciones|privacidad Friday, October 28, 2011
  • 82. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web 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|ics m_ponencia: pattern: /m/ponencia/{slug} defaults: { _controller: DesymfonyBundle:Ponencia:ponencia, _format: mhtml } m_ponentes: pattern: /m/ponentes defaults: { _controller: DesymfonyBundle:Ponente:index, _format: mhtml } Friday, October 28, 2011
  • 83. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web jQuery Mobile y Symfony / Rutas opción 2 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|ics m_ponencia: pattern: /m/ponencia/{slug} defaults: { _controller: DesymfonyBundle:Ponencia:ponencia, movil: true } m_ponentes: pattern: /m/ponentes defaults: { _controller: DesymfonyBundle:Ponente:index, movil: true } Friday, October 28, 2011
  • 84. 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 } Friday, October 28, 2011
  • 85. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web Controladores y acciones Friday, October 28, 2011
  • 86. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web 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, )); } Friday, October 28, 2011
  • 87. Aplicaciones Aplicaciones Móviles Quién es Pablo Godel? Web Testing Friday, October 28, 2011
  • 88. 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 • Behat )BDD( Friday, October 28, 2011
  • 89. 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 Friday, October 28, 2011
  • 90. Aplicaciones Móviles Quién es Pablo Godel? Aplicaciones Híbridas Friday, October 28, 2011
  • 91. 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 Friday, October 28, 2011
  • 92. Aplicaciones Móviles Quién es Pablo Godel? ¿Preguntas? Friday, October 28, 2011
  • 93. Aplicaciones Móviles Quién es Pablo Godel? MUCHAS GRACIAS! Comentarios & sugerencias: http://joind.in/4330 Fuentes: https://github.com/desymfony/desymfony Slides: http://slideshare.net/pgodel Twitter: @pgodel IRC Freenode: pgodel Friday, October 28, 2011