44. Eskerrik asko! Aitzol Naberan (CodeSyntax) [email_address] Fotos: tomsun@Flickr , nimbuzz@Flickr, jetalone@Flickr, djwudi@Flickr Metodología de desarrollo ágil para sistemas móviles Introducción al desarrollo con Android y el iPhone
Notas del editor
Free Libre Open Source Software
- Para poder publicar/instalar una aplicación iPhone es necesario certificación/visto bueno de apple. La instalación solamente es posible utilizando la app store de apple. Apple puede decidir unilateralmente eliminar la aplicación de su store. 30% de beneficio para apple.
- Las aplicaciones desarrolladas deberían funcionar en cualquier dispositivo Android compatible con la versión del desarrollo. (no distintas versiones j2me)
- Casi todas las operadoras tienen disponible algún terminal Android. - Muchos fabricantes están lanzando sus terminales con Android. - Grafica: Solamente iPhone y Android muestran tendencias ascendentes.
- furry.com:analiza tendencias del mercado de los móviles - En la gráfica se muestra como los nuevos proyectos android muestran una tendencia ascendente.
- tanto symbian como iphone tienen mas cuota de mercado - No es un riesgo propiamente de Android, pero el poder de personalización sobre Android da mucha libertad a las operadoras para hacer o desacer sobre lo que van a comercializar (cambios en el firmware, no ofrecer ciiertos servicios, contratos abusivos..) Es cierto que el usuario siempre tiene la opción de cambiar de firmware , pero no es una opción que esté al alcance de cualquiera. - Google envia un Cease&Desist a un desarrollador que había compilado una nueva versión del firmware de android que incluía servicios aún no incluidos en el firmware oficial. La explicación oficial ha sido que para la instalación de ese firmware se reinstalaban aplicaciones no libres (gmail, gcalendar, gmaps), y que la licencia de esas aplicaciones no da permiso para ello. De todas maneras se ha creado cierto revuelo sobre lo que google puede o no puede hacer..
Kernel: Android depende de Linux versión 2.6 para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, stack de red, y modelo de controladores. El núcleo también actúa como una capa de abstracción entre el hardware y el resto del stack de software. Runtime de Android: Android incluye un set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que han sido transformadas al formato.dex por la herramienta incluida "dx". Bibliotecas: Android incluye un set de bibliotecas C/C++ usadas por varios componentes del sistema Android. Estas características se exponen a los desarrolladores a través del framework de aplicaciones de Android; algunas son: System C library (implementación biblioteca C standard), bibliotecas de medios, bibliotecas de gráficos, 3d, SQLite, entre otras. Framework de aplicaciones: los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura está diseñada para simplificar el reutilización de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework). Este mismo mecanismo permite que los componentes sean reemplazados por el usuario. fuente: wikipedia
Dalvik es una máquina virtual optimizada para correr en dispositivos con pocos recursos hardware. Está diseñada para permitir ejecutar varias instancias de la máquina virtual Estrictamente no es una máquina virtual java, ya que no ejecuta Java bytecode. Se utiliza la herramienta dx para traducir ficheros java al formato utilizado por Dalvik (dex)
- Emulador: permite seleccionar distintos terminales y versiones del sistema operativo - Acceso de herramientas de desarrollo: capturas de pantalla, redirección de puertos, depurardor, traceback y lista de procesos en ejecució
- Aplicaciones basadas en componentes. Permiten la reutilización de código. - 4 tipos de componentes - Actividades - Servicios - Receptores de eventos - Proveedores de contenido - Actividades Las distintas ventanas de la aplicacion. El contenido visual de cada actividad lo proporcionan los onjetos de la clase View (botones, selectores...)
- Services Son componentes que se ejecutan en segudo plano y no necesitan ninguna acción por parte del usuario durante un periodo indeterminado.
- Los proveedores de contenido solo son necesarios si se necesita compartir información entre diferentes aplicaciones. Por ejemplo, la información de los contactos está compartida entre distintas aplicaciones, por tanto tiene que ser guardada en un proveedor de contenidos.
El checklist para la publicación de una aplicación en android no varia mucho del checlist para una aplicación convencional. Para publicar en la Android market es necesario registrarse como desarollador con una cuenta google y pagar una cuota de 25$