SlideShare uma empresa Scribd logo
1 de 82
Baixar para ler offline
Quién es Pablo Godel?"


• Argentino, viviendo en Miami, EE.UU. desde 1999
• Programador PHP, Symfony, entre otros
• Fundador de la lista de PHP en español http://
  news.php.net/php.general.es/3 )antes de Julio 2000(
• Pasé el control a php.net con más de 1000 subscriptos
• Co-fundador de ServerGrove Networks
   ⁃ fundada en 2005 
   ⁃ servicios de hosting especializado en PHP y Symfony
• Advertencia! No soy experto en aplicaciones móviles,
  pero si he creado algunas con Symfony2.
Aplicaciones Móviles -
Quién es Pablo Godel? Por qué?




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




       Algunos números...
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
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
Aplicaciones Móviles -
Quién es Pablo Godel? Por qué?




¿Cómo llegamos hasta aquí?
Aplicaciones Móviles -
Quién es Pablo Godel? Por qué?




     Un poco de historia...
Aplicaciones Móviles -
Quién es Pablo Godel? Historia
1979   Primera red celular )1G - primera generación(
          comercial del mundo lanzada en Japón
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!
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>
Aplicaciones Móviles -
Quién es Pablo Godel? Historia

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

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

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

               WAP/WML

        Programador: “Renuncio!”
Aplicaciones Móviles -
Quién es Pablo Godel? Historia

                WAP/WML
         Usuario: “Esto no sirve!”
Aplicaciones Móviles -
Quién es Pablo Godel? Historia




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




• Revolución en el
 mercado de
 telefonía móvil
• Cliente Web Safari
Aplicaciones Móviles -
Quién es Pablo Godel? Historia
2007   iPhone App Store
Aplicaciones Móviles -
Quién es Pablo Godel? Historia
2008   Primer dispositivo Android
Aplicaciones Móviles -
Quién es Pablo Godel? Historia
2010   iPad
Aplicaciones Móviles -
Quién es Pablo Godel? Historia




   ¿Qué significa todo esto?
Aplicaciones Móviles -
Quién es Pablo Godel? Historia


        Generación móvil
            La PC no está muerta
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
Aplicaciones Móviles -
Quién es Pablo Godel? Historia


        Generación móvil
         Y esto es sólo el comienzo...
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(
Aplicaciones Móviles -
Quién es Pablo Godel? Tipos




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



                   PHP y Symfony?
    No... Symfony no corre en el teléfono, todavía!
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?          nativas


      pero las aplicaciones nativas
      comúnmente necesitan conectarse a un
      servidor.


    Usos comunes:
     • envío de mensajes
     • carga de datos de una DB
     • autenticación/autorización
     • chats
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(
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?                      Nativas




    Bundles para crear una API

     - ViewBundle
     - EverzetRestfulControllersBundle

    Ambos se convirtieron en
      - RestBundle
      https://github.com/FriendsOfSymfony/RestBundle
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/
Aplicaciones Móviles
Quién es Pablo Godel?




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


     Consideraciones útiles:
   • Short codes son adminstrados por CSCA )Common Short Code
     Assoc(
   • Short codes: compartidos y dedicados
      ⁃ compartido: el mensaje debe incluir un "keyword" para definir
        como procesarlo
   • Short codes: números aleatorios o "elegidos / de vanidad"
   • Costo: entre $500 y $1000 por mes
   • Costo por mensaje recibido y enviado
   • Reglas definidas de comportamiento )código de conducta de MMA(
   • Comandos standard: join, stop, stop all
   • Aplicaciones son llamadas campañas y deben ser aprobadas antes
     de ser lanzadas
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?            SMS




    Consideraciones técnicas:
   • Protocolos/Formatos: XML, SOAP, XML-RPC
   • Un mensaje recibido no puede ser recibido
    nuevamente, en consecuencia es importante
    guardar copia antes de ser procesado
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?           SMS



    Proveedores de SMS gateway:
   • Twilio
    http://twilio.com
   • Clickatell
    http://www.clickatell.com
   • SMSpubli
    http://www.smspubli.com
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
Aplicaciones Móviles
Quién es Pablo Godel?




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


     Soporta:
     - IOS )iPhone/iPad(
     - Android
     - Blackberry
     - Windows Phone
     - palm webOS
     - symbian
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?       Web
                jQuery Mobile
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.
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
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>
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>
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>
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?           Web
       jQuery Mobile - Ventanas de dialogo
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>
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?        Web
            jQuery Mobile - Forms
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?        Web
            jQuery Mobile - Forms
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?         Web
            jQuery Mobile - Listas
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?       Web




       jQuery Mobile y Symfony
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?       Web
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?       Web
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?       Web




              Plantillas
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>
Aplicaciones
 Aplicaciones Móviles
 Quién es Pablo Godel?                                      Web
{% extends "DesymfonyBundle::layout_movil.html.twig" %}
                                                                ponencia.mhtml.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 %}
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 -->
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?       Web




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




      Controladores y acciones
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,
      ));
  }
Aplicaciones
Aplicaciones Móviles
Quién es Pablo Godel?       Web




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




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




                PhoneGap

                DEMO !
Aplicaciones Móviles
Quién es Pablo Godel?




              ¿Preguntas?
Aplicaciones Móviles
Quién es Pablo Godel?



              MUCHAS GRACIAS!


Fuentes: https://github.com/pgodel/desymfony/tree/movil
       https://github.com/desymfony/desymfony
            Slides: http://slideshare.net/pgodel
                     Twitter: @pgodel
                   IRC Freenode: pgodel

Mais conteúdo relacionado

Semelhante a Creacion de aplicaciones moviles con symfony2

Semelhante a Creacion de aplicaciones moviles con symfony2 (20)

Investigacion sobre apps
Investigacion sobre appsInvestigacion sobre apps
Investigacion sobre apps
 
Desarrollo de apps en mexico
Desarrollo de apps en mexicoDesarrollo de apps en mexico
Desarrollo de apps en mexico
 
Egsi Sesion5
Egsi Sesion5Egsi Sesion5
Egsi Sesion5
 
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5
 
Clase mobile marketing
Clase mobile marketingClase mobile marketing
Clase mobile marketing
 
Internet movil..
Internet movil..Internet movil..
Internet movil..
 
Skype
SkypeSkype
Skype
 
skype
skypeskype
skype
 
Investigacion cientifica
Investigacion cientificaInvestigacion cientifica
Investigacion cientifica
 
Internet
InternetInternet
Internet
 
Taller virtual
Taller virtualTaller virtual
Taller virtual
 
Html 5
Html 5Html 5
Html 5
 
Curso Especialista Marketing Digital Empresa Digitala Bizkaia - Conceptos Ini...
Curso Especialista Marketing Digital Empresa Digitala Bizkaia - Conceptos Ini...Curso Especialista Marketing Digital Empresa Digitala Bizkaia - Conceptos Ini...
Curso Especialista Marketing Digital Empresa Digitala Bizkaia - Conceptos Ini...
 
telefonía IP
telefonía IP telefonía IP
telefonía IP
 
Informe proyecto topicos
Informe proyecto topicosInforme proyecto topicos
Informe proyecto topicos
 
Skipe (1)
Skipe (1)Skipe (1)
Skipe (1)
 
Que necesita para realizar una conexión a la internet
Que necesita para realizar una conexión a la internetQue necesita para realizar una conexión a la internet
Que necesita para realizar una conexión a la internet
 
Exp guis-1°-aplicada
Exp guis-1°-aplicadaExp guis-1°-aplicada
Exp guis-1°-aplicada
 
Exp guis-1°-aplicada
Exp guis-1°-aplicadaExp guis-1°-aplicada
Exp guis-1°-aplicada
 
Presentacion 1
Presentacion 1Presentacion 1
Presentacion 1
 

Mais de Pablo Godel

SymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkySymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkyPablo Godel
 
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 @ OpenSkyPablo Godel
 
DeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyDeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyPablo Godel
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
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 AppsPablo Godel
 
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 PHPConferenceARPablo Godel
 
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 AppsPablo Godel
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer ToolboxPablo Godel
 
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...Pablo Godel
 
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 balasPablo Godel
 
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 appsPablo Godel
 
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 DevelopersPablo Godel
 
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 AnglePablo Godel
 
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...Pablo Godel
 
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 SymfonyPablo Godel
 
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 AngularJSPablo Godel
 
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 developersPablo Godel
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013 Pablo Godel
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsPablo Godel
 
Codeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsCodeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsPablo Godel
 

Mais de 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...
 
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
 
Codeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsCodeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP Apps
 

Último

Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 

Último (20)

Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 

Creacion de aplicaciones moviles con symfony2

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