Presentacion Plataformas moviles

3,414 views
3,306 views

Published on

Esta presentacion incluye oportunidades de mercado de aplicaciones moviles, A su vez, conceptos de desarrollo movil, utiles para Android, Blackberry, Android, y iPhone.

This presentation contains market opportunities for mobile applications, and an introduction to techniques and demos on application development for Android, Blackberry, and Android.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,414
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
116
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Si la respuesta es no, porque no?Si la respuesta es si, cuantos triangulos se pueden formar?Como lo sabes con certeza?
  • Presentacion Plataformas moviles

    1. 1. FUNDACION <br />SALVADOR MONCADA<br />PARA EL AVANCE DE LA CIENCIA<br />SEPLAN<br />Plataformas MóvilesEdwin Hernández, PhDTegucigalpa, 11 de agosto de 2010<br />
    2. 2. Temario<br /><ul><li>Introduccion
    3. 3. Mercado Movil de Aplicaciones
    4. 4. Desarrollo
    5. 5. Android
    6. 6. BlackBerry (J2ME)
    7. 7. iPhone
    8. 8. Brainstorming </li></li></ul><li>Introduccion<br />Dr. Edwin Hernández<br />Socio de Honduras Global<br />
    9. 9. Dr. Edwin A. Hernandez<br />Ingeniero en Electrónica, MaestríayDoctorado en IngenieríaEléctricayComputadoras.<br /><ul><li>Emprendedor: Varias empresas fundadas COMPUNET, UBIWIRELESS LLC, EGLA CORP, Rapid Mobile Tech. Inc
    10. 10. Inventor con 5 Patentes asignadas, y 7 por asignar. Participación en foros y paneles de IEEE/ACM, publicaciones y editor para revistas tecnologicas.
    11. 11. Experiencia en la Industria de Software en Estados Unidos
    12. 12. Microsoft: Redmond, WA. Windows Networking
    13. 13. Motorola: Plantation, FL. Mobile Devices</li></li></ul><li>Mercado de Aplicaciones Móviles<br />Áreas de mercado, evolución de Smartphones, posibles aplicaciones.<br />
    14. 14. El caso de Honduras<br />Uso de “mensajería” de texto y multimedia<br />Gran cantidad de “Smartphones” <br />Costo bajo de 3G ($15/mes)<br />Hay en realidad un mercado de aplicaciones móviles?<br />
    15. 15. ¿Que se puede hacer con los Smartphones de Hoy?<br />Blackberry, Android, iPhone<br />Soporte multimedia (MP3, AAC, tiempo real, Video)<br />GPS y Localización (Quizás Wifi-based no funcione en Honduras)<br />Almacenamiento, SD Card, 2GB? O mas?<br />Memoria: 64MB hasta 1GB<br />Procesador : Qualcomm’s 1GHz <br />Soporte de WiFi, Bluetooth, Camera<br />Internet, Redes Sociales, …..<br />Oportunidades de Monetizacion<br />Fuente: Revista Tecno, producida por EL HERALDO<br />
    16. 16. Caso: Encontrar mi teléfono<br />Problema: “Yo necesito encontrar algo, utilizo mi teléfono para detectar su localización” <br />GPS disponible en 99% de unidades<br />Aplicaciones residentes y corriendo en el background<br />Es posible que se necesite un “servidor” que tenga un webservice para localizar el dispositivo.<br />Tengo una idea novedosa para esto……<br />
    17. 17. Brainstorming…<br />
    18. 18. Investigación de Aplicaciones similares en (App Store):<br />¿Parece que ya lo pensaron muchos?<br />
    19. 19. “Zooming In”<br />
    20. 20. Mercado de las Apps Móviles <br />Fuente: Mashable.com“Mobile AppMarketto Surge to $17.5Bil By 2012”<br />Fuente: Morgan Stanley’sReport<br /> “Mobile Internet to Eclipse Desktop Internet, social networkingdrivinggrowth” “57Mi iPhoneusers, 100K Apps, 2B+ Downloads” <br />Google se adueña del 98.29% de busquedasmoviles<br />
    21. 21. Mercado de Apps Móviles<br />Predicciones en lo relacionado a Geo-Local, como Loopt, Foursquare, Gowalla, y lo que se denomina “AugmentedReality” apps<br />“Golden Triangle” de Morgan Stanley, Geo-Apps, y Mobilidad social<br />
    22. 22. Reportes de Admob<br />Porque es importante Admob<br />Revisemos los reportes de:<br />Mayo 2008 : mobile_metrics_may_08.pdf<br />Mayo 2009 : admob-mobile-metrics-report-may-2009.pdf<br />Mayo 2010 (Ultimo de Admob al publico): May-2010-AdMob.pdf<br />
    23. 23. Ventas de iPhone<br />
    24. 24. Conclusiones<br />Estudiar el mercado de aplicaciones móviles, antes de aventurarnos<br />Muchas aplicaciones para mercados verticales tienen sentido<br />Uso del móvil para aumentar la realidad y crear redes sociales reales.<br />
    25. 25. Desarrollo de Aplicaciones Móviles<br />Dirigido a Ingenieros de Software y otros entusiastas<br />
    26. 26. Requisitios<br />Android<br />Mac, Linux o Windows<br />Emulador incluido para desarrollo<br />Entendimiento de Linux para el kernel<br />Java y Eclipse<br />Blackberry<br />Windows, Mac (hack), Linux (compilacion) <br />Emulador incluido para desarrollo<br />Java, y J2ME o Java Microedition.<br />
    27. 27. Requisitos<br />iPhone<br />Solamente en Mac y Xcode<br />
    28. 28. Android<br />Plataforma de Desarrollo<br />
    29. 29. Contenido de la Presentación<br />Introducción a la architectura de Android<br />Formas de trabajar en Android<br />Android SDK : Desarrollar Applicaciones<br />Android NDK: Desarrollar librerias nativas<br />MyDroid: Codigo entero que corre en el emulador o en el telefono.<br />
    30. 30. Android<br />Android es un “middleware” un software stack para sistemas móviles que incluye:<br />Una Máquina Virtual: DALVIK-VM (Comprado por Google y Optimizado)<br />Serie de Librerías y Recursos escritos en Java: JDK, Jars, JNI, Reflexión<br />KERNEL: LINUX 2.6-* que se continua actualizando<br />Cada “release” tiene nombres de postres, “cupcake”, “donut”, “eclaire”, etc<br />
    31. 31. Logica para programa en Android<br />Codigo en JAVA+C/C++<br />Recursos en XML<br />Compilacion a<br />.class<br />Generacion .DEX con Optimizacion<br />Archivo APK <br />
    32. 32.
    33. 33. Arquitectura simple de un Smartphone<br />Modem<br />GSM/3G/CDMA<br />AP<br />Android Runtime<br />Linux Kernel<br />2.6.x<br />Modem Link<br />
    34. 34. Componentes del Middleware<br />Application/Activity<br />Android Service<br />JNI (Java)<br />Java Native Interface<br />Middleware/Native ServiceBSP Component<br />
    35. 35. Otraspartes de Android<br />Framework en Java con muchosobjetosyclasesparautilizar<br />Dalvik virtual machine: Dalvik-VM <br />Integrated browser based on the open source WebKit engine<br />Gráficos con OpenGL ES<br />SQLiteparaalmacenardatos<br />Multimedia: audio, video, eimagenes (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)<br />Telefonia (GSM, CDMA)<br />GPS, Bluetooth, WiFi, ymas, derivados de Linux<br />
    36. 36. Ahoravamos a Linux<br />Linux: Uso del “driver model,” open source, Abstraccion de Hardware (HAL), manejo de memoria, seguridad<br />LibreriasNativas: Manejo de Superficies via OpenGL yotraslibreriasnativascomo: Packet Video, SQL Lite, WebKit.<br />EL “Android Runtime”: Dalvik VM. DEX file support, .class files are converted are runtime ymapeadas a procesosnativos Linux<br />
    37. 37. Productos a Desarrollar en Android<br />Primero: Aplicaciones, son archivos “APK”<br />Desarrollo via Eclipse o MOTODEV, hasta “vi”.<br />Android SDK (Reciente version 2.2)<br />Segundo: Libreriasnativaspara Android, muchosparamejorarrendimientoyparafuncionalidadque no esta en el “framework” lasagregan locales (NDK)<br />Tercero: Crear imagines, se podriahacer un acuerdo de colaboración con un proveedor de hardware ysu BSP ycreartelefonosinteligentes<br />
    38. 38. Quemasnecesitamosparahacerunaaplicación?<br />Muchacreatividad!<br />Bajartodaslasherramients<br />Todaslasherramientas son gratuitas! <br />Diseñar el flow yempezar a probarlo en el emulador<br />
    39. 39. Ambiente de Desxarrollo<br />Eclipse/MotoDev<br />Bajar el SDK dehttp://source.android.com/source/download.html<br />Seguirinstrucciones de Google parainstalar SDK<br />Important components<br />ADB: Android Debug Build <br />DDMS: Debug Data Management System <br />Android script: Para crearAVDs (Android Virtual Device)<br />Emulator: QEMU parasimular el telefono<br />DX: Converte los .class a DEX<br />
    40. 40. Eclipse<br />
    41. 41. Android Script<br />
    42. 42. DDMS<br />
    43. 43. Emulator<br />
    44. 44. ADB: Android Debug Bridge<br />
    45. 45. DroidDraw<br />
    46. 46. Estructura de lasAplicaciones Android<br />SDK Demo utilizando Eclipse yAPIDemos<br />
    47. 47. Dentro de un APK file<br />
    48. 48. Componentes de un APK<br />Activity: Es la “actividad.” Muchoscrean un “Application” con muchas “actividades”<br />Intent: Mecanismoutilizadoparaactivarcomponentesycomunicarse entre actividades. <br />Broadcast Receiver: Estandiseñadospararegistrarse a leer “Intents” yrecibirlos<br />Content Providers: Proveendatos a todo el sistema, acceso a Contactos, Listado de Mensajes, DRM<br />Services: No tienen UI, ypor lo general correr en el “background”<br />
    49. 49. Estados de unaAplicacion en Android<br />
    50. 50. Service<br />
    51. 51. Activity<br />Unidad Principal. Unaactividades lo que se ejecutayesmanejadopor el Dalvik-VM en un “life-cycle”. <br />Unaaplicacionpuedetenervariasactividadesentrelazadas, perosolamenteunaes la que se lanza del icono principal<br />El UI se define via el archivo “Manifest,” DroidDrawo un XML Editor<br />El Archivo Manifest, contieneimportantesdefinicionespara la “Actividad,” UI, filtros de intents, otrasactividades, permisos de acceso. <br />
    52. 52. Service<br />Un servicio, probablemente no tiene UI<br />GeneralmenteutlizaNoticacionesy el Toolbar parapresentaractualizaciones<br />Generalmente se comienay se manaja en el background<br />Tratar de utilizar la claseAsyncTaskparacorrerprocesos en el “background”<br />
    53. 53. Intent<br />Mecanismo de comunicación entre actividades (Activities)<br />Puede ser implicito, oexplicito<br />Se puedehacer un Broadcast Intent, o se puedeseleccionar la claseque se quierelanzar.<br />Se puedendefinirnuevos intents, INTENT_WEBCONF si se desa via archivo manifest <br />
    54. 54. Broadcast Receiver<br />Se implementapararecibir un Intent, ya sea queeste en el sistema: e.g. ACTION_CALL ocualquier intent creadoporunaactividad<br />El BroadCastRecieveresutilapramanejareventos<br />Chequear los “Permissions” siempre, no todos los Intents puedenrecibirseporunaclases de estetipo<br />
    55. 55. Content Provider <br />Es simplementeunaabstraccionparaaccesarunaclase de datos, de unaovariastablas en SQLITE o en un archivo<br />El ContentProviderimplementa el acceso a la clase, se puedeutlizar de variasactividadesy no se necesitanhaceruso de comandostipo SELECT como en SQLITE<br />Muchos “Developers” no los utilizan<br />
    56. 56. SeguridadyPermisos<br />Cadaaplicacioncreada en /data/ tiene un UID unico<br />Cadaaplicacioncreada en /system es de otro UID ygeneralmente no se puedeborrar del sistema<br />La seguridad de aplicacionespuederequerirfirmar el APK con unamismallaveparaverificar sea valido<br />A suvez, Certificadosasociados con el “System” previeneningreso no autoizado<br />En un “rooted” phone estospermisos son validosperopueden ser reemplazados.<br />
    57. 57. Muchosotrosservicios en Android<br />Location: GPS a travez de LocationProviders<br />Multimedia <br />Mensajeria de Textoy Multimedia<br />Busqueda<br />Muchosmaslocalizados en: http://developer.android.com/resources/index.html<br />
    58. 58. VeamosEjemplo de “APIDemo”<br />Views<br />App<br />OS<br />WebViews<br />ListActivity<br />
    59. 59. Codigo de Android <br />Goldfish: ArquitecturaProveida en Android 2.2<br />
    60. 60. MyDroid : Open Source<br />Podemosrevisartodo el codigo de los “Repos” de Google, incluyendocodigo de HTC, yotros “Vendors”<br />Quepodemosencontrar:<br />Un Browser: Browser App<br />Un Provider: Digital Rights Management <br />Integracion con el Kernel: BSP es Goldfish Architecture.<br />Muchamemoria, 8GB mínimo. Seguirinstruccione en:<br />http://source.android.com/source/git-repo.html<br />
    61. 61. “Browser Activity”<br />
    62. 62. Codigo Nativo (NDK)<br />Resumen de funcionamiento : JNI – Java Native Interface<br />
    63. 63. NDK<br />Se puedencrearlibrerias de extension .so en C/C++<br />Ejemplos de combinacionNativo + Java<br />Bluetooth<br />RIL : Radio Interface Layer <br />Camera App<br />DRM: Digital Rights Management<br />Now your own applications! <br />
    64. 64. NDK<br />
    65. 65. NDK<br />Codigo en C<br />
    66. 66. Futuro de Desarrollo de Apps<br />App Inventor : Enlistarsepararevisar BETA<br />
    67. 67. MOTODEV DEMO<br />Motorola<br />
    68. 68. Desarrollo en BlackBerry y J2ME<br />Java Micro-Edition <br />MIDP, CLDC, net.rim.*<br />
    69. 69. Java: “En todos sabores”<br />
    70. 70. Java Micro-Edition<br />Nace en 1997-1998<br />Primer telefono con J2ME MIDP 1.0, Motorola iDEN i85<br />Features<br />2 socketsudp<br />1 sockettcp<br />Heap de 640K<br />Canvas<br />Muchas clases no-estandares, o com.motorola.*<br />
    71. 71. Comparación J2ME - Android<br />
    72. 72. Conceptos en J2ME<br />MIDlet: Unidad fundamental, es la aplicación en si<br />RMS: Record Management System, manejo de archivos en Java y una pequeña base de datos.<br />PushRegistry: Enviar un mensaje para despertar un midlet<br />Profile: Implementación de una serie de especificaciones.<br />Signatures: A midlet may requiresignaturetoaccesssomeAPIs<br />JSR: Java SpecificationReference: JSR-82: Bluetooth, JSR-179 Location, JSR-177: Security, etc.<br />PropietaryAPIs: com.mot.*, net.rim.*, others.<br />
    73. 73. Arquitectura de J2ME<br />
    74. 74. J2ME: Hoy<br />As of 22 December 2006, the Java ME source code is licensed under the GNU General Public License, and is released under the project name PhoneME.<br />
    75. 75. MIDLetLifecycle<br />AMS<br />Application Management System<br />
    76. 76. MIDLet: Estructura<br />import javax.microedition.midlet.*;<br />importjavax.microedition.lcdui.*;<br />public class HelloMidp extends MIDlet {<br /> Display display;<br /> Form mainForm;<br />public HelloMidp () {<br />mainForm = new Form ("HelloMidp");<br /> }<br />
    77. 77. Código de un MIDlet<br />public HelloMidp () {<br /> display = Display.getDisplay (this);<br />mainForm = new Form ("HelloMidp");<br /> try {<br />ImageItem logo = new ImageItem<br /> ("Copyright: ", Image.createImage ("/mcp.png"), <br />ImageItem.LAYOUT_CENTER | ImageItem.LAYOUT_NEWLINE_BEFORE<br /> | ImageItem.LAYOUT_NEWLINE_AFTER, "Macmillian USA");<br />mainForm.append (logo);<br /> }<br /> catch (IOExceptione) {<br />mainForm.append (new StringItem<br /> ("Copyright", "Sams Publishing; Image not available:" + e));<br /> }<br />}<br />
    78. 78. Ambientes para hacer MIDLets<br />WirelessToolkit<br />Eclipse con MIDP 2.0<br />Netbeans con varios plug-ins y mobiletools<br />“Edit” y compilación en “commandline”<br />
    79. 79. Blackberry Tools<br />JDE: Java Dev. Environm.<br />MDS (Mobile Data Systems): Simulador de red de Blackberry para usar datos<br />Eclipse runtimefor Bberry<br />Utilizar el WTK y los herramientas estandares de desarrollo.<br />
    80. 80. Que ha hecho RIM<br />Ha extendido la clase object con librerias propietarias net.rim* y muchas aplicaciones en lugar de derivarse de la clase MIDLet se derivan de UI Applictation.<br />
    81. 81. Desglosando algunas applicaciones de J2ME y BlackBerry<br />VNC para demo<br />
    82. 82. IOS: IPHONE OperatingSystem<br />Apple<br />pple has filed more than 200 patent applications related to the technology behind the iPhone<br />
    83. 83. Introducción<br />
    84. 84. IOS : Arquitectura<br />
    85. 85. Arquitectura de IOS<br />Multitasking oMultitares<br />AplicacionescontruidasutilizandoiPhone SDK 4.0 o superior no son terminadas al presionar la tecla de “Home” en lugar a eso, son enviadas al “background”<br />Data Protection oProteccion de Datos<br />Las aplicacionesqueutilizaninformacion sensible puedentomarventaja de la encriptacion “built-in”, guardandoarchivos en formatoprotegidocuando se require. <br />Notificacion via Push de Apple<br />Los usuarios de iPhonepuedencrearnotificaiones via Push a sususuarios, ya sea en formatotextoo beeps, siestosestansuscritos a la notificacion PUSH. <br />
    86. 86. Arquitectura IOS<br />Gestos<br />UIKit ahora incluye UIGestureRecognizer que define los comportamientos basicos de los gestos. Ud puede definir los suyos, incluyendo:<br /><ul><li>Tapping (tocar una o mas veces)
    87. 87. Pinching in and out (Usar dos dedos para zoom)
    88. 88. Panningordragging (halar, mover y agarrar)
    89. 89. Swiping (in anydirection) (Barrer la pantalla)
    90. 90. Rotating (fingers moving in oppositedirections) ( Dedos moviendose en direcciones opuestas)
    91. 91. Long presses (Presionar por largo rato)</li></li></ul><li>Herramientas para desarrollar<br />Xcode Tools – Proveelasherramientas de soporteparadesarrollar::<br /><ul><li>Xcode- Un IDE paradesarrollar, editar, compilar, yhacer debugging.
    92. 92. Interface Builder - Uneherramientahechaparacrear interfaces del usuario
    93. 93. Phone Simulator – a Applicacionquesimular la funcionalidad del IOS
    94. 94. iOS Reference Library- La referenciadle SDK paradesarrollarapplicacionespara IPHONE, IPOD. </li></li></ul><li>Xcode: Primero<br />CreateNew Iphone Project.<br />
    95. 95. Xcode: Project<br />
    96. 96. Xcode: Run<br />
    97. 97. Editar hellowviewcontroller.h<br />Agregando nuevas variables, como txtUserName1.<br />
    98. 98. Connection Inspector<br />Mapea funcione y parametros en el archivo .h, al InterfaceBuilder.<br />
    99. 99. Como es el UI que definimos<br />UITextField<br />UILabel<br />UIWebView<br />
    100. 100. Buildand Run<br />UIWebView con el contenido del UITextField URL<br />
    101. 101. Thanks! Gracias.<br />

    ×