Presentacion Plataformas moviles
Upcoming SlideShare
Loading in...5
×
 

Presentacion Plataformas moviles

on

  • 3,639 views

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

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.

Statistics

Views

Total Views
3,639
Views on SlideShare
3,639
Embed Views
0

Actions

Likes
0
Downloads
110
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Presentacion Plataformas moviles Presentation Transcript

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