SlideShare ist ein Scribd-Unternehmen logo
1 von 82
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Creacion de aplicaciones moviles con symfony2

Ähnlich wie 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
 

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

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

Kürzlich hochgeladen

Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 

Kürzlich hochgeladen (20)

Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 

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