La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Iniciación a Android Cándido Caballero-Gil Doctor en Informática

Presentaciones similares


Presentación del tema: "Iniciación a Android Cándido Caballero-Gil Doctor en Informática"— Transcripción de la presentación:

1 Iniciación a Android Cándido Caballero-Gil Doctor en Informática
Facebook: Cándido Caballero-Gil

2 Quién soy… Qué me une a Larga Experiencia en Desarrollo de Aplicaciones Web con Java (Play Framework) Desarrollo en tesis doctoral de VAiPho en Windows Mobile CoOrganizador del GDG Tenerife Profesor Android en: Máster de Ingeniería Industrial Y en multitud de conferencias internacionales ¡ Reto Meier! con Auto4Android 1er Premio Conocer es Valer. 1er Premio Fyde Caja Canarias Finalista en Foros de Inversión TF invierte. Disa Emprende Autor de múltiples app Android Auto4Android +390k descargas

3 Contenido 1 Introducción a Android 2 Componentes Lógicos 3
Componentes UI 4 Guías de diseño 5 Publicación en Google Play 6 Primera aplicación

4 Contenido Introducción a Android Componentes Lógicos Componentes UI
Guías de diseño Publicación en Google Play Primera aplicación Introducción a Android

5 Características Sistema operativo: Android en sus inicios fue creado en Java y programado en C, su verdadero núcleo de proceso esta en Linux. Maquina Virtual (Dalvik Virtual Machine) optimizada para dispositivos móviles Lollipop+ se usa ART que es Ahead-Of-Time (Pre-compila en la instalación) Navegador Web integrado basado en el motor WebKit SQLite para el almacenamiento de datos. Soporte de medios audio, video, imágenes. Gráficos optimizados 2D/3D (OpenGL) Completo entorno de desarrollo Java es, en la mayoría de los casos, un lenguaje interpretado. ¿Qué quiere decir esto? Pues que un programa especializado, el interprete de Java, debe ir leyendo el código del programa instrucción a instrucción para descubrir cuál es la próxima acción a realizar. Esta operación cuesta muchos más ciclos de CPU que ejecutar un programa en código máquina nativo, ya que en este último caso es el propio microprocesador el que se encarga de decodificar las instrucciones en hardware.  ¿Por qué Java no se compila en código máquina, como el resto de programas? Pues precisamente para permitir que pueda ejecutarse en cualquier ordenador de Internet, tenga éste un microprocesador 80x86, 680x0, PowerPC, Alpha, MIPS, etc...

6 Arquitectura del sistema
Applications Application Framework Libraries Linux Kernel SQL Lite SSL Open GL Android Runtime Drivers Power Management

7 Arquitectura del sistema

8 Diferencias entre Máquina Virtual Dalvik y ART
ART cambios de ejecución y mejora el rendimiento, está más optimizada ART ha sido introducida en Android 4.4 KitKat de forma experimental. Podemos activarla entrado en ajustes y, posteriormente, en opciones de desarrollo.   Algunas aplicaciones no funcionan correctamente ART a diferencia de Dalvik, tiene un sistema de compilación diferente a lo que se conoce de su antecesor, pues compila los procesos y guarda el caché desde el momento de la instalación de la aplicación. Esto quiere decir, que en vez de que a diferencia de lo que sucede en Dalvik que la aplicación se va compilando a medida que vas navegando dentro de la app, en ART sucede que la compilación de la app se ha realizado y se ha cacheado en el sistema desde el momento de su instalación, por ende, la aplicación deberá iniciar mucho más rápido y deberá ser mucho más fluido, por otra parte, también hay que recalcar que entonces los procesos gastarán menos batería y por ende el rendimiento del sistema a nivel general deberá ser mayor. Ocupa más espacio en memoria.

9 Fundamentos de aplicaciones
Las aplicaciones son escritas en Java (SDK) o en C (NDK). El código y los recursos de una aplicación se compilan en un archivo con extensión *.apk Los archivos *.apk son aplicaciones listas para instalar en dispositivos Android Android es un sistema multi-usuario en el que cada aplicación actúa como un usuario.

10 Fundamentos de aplicaciones
El sistema le asigna a cada aplicación un ID de usuario y permisos de acceso. Sólo el ID de usuario asignado a la aplicación puede acceder a los recursos y archivos de la misma. Si es necesario, una aplicación puede solicitar permisos de acceso a datos y componentes del dispositivo como: Cámara, Bluetooth, Contactos, etc.

11 Versiones Android (SDK)
Desde abril de 2009, las versiones de Android han sido desarrolladas bajo un nombre en clave y sus nombres siguen un orden alfabético: Apple Pie, Banana Bread, Cupcake, Donut, Éclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop y Marshmallow. La actualización más reciente es Android 6.0 Marshmallow, que fue anunciado oficialmente en mayo de 2015, durante la conferencia I/O de Google Android O – Google I/O 2017

12 Versiones Android

13 Versiones Android – El problema de la fragmentación

14 Contenido Más Introducción a Android Componentes Lógicos
Componentes UI Guías de diseño Publicación en Google Play Primera aplicación Componentes Lógicos

15 Componentes de una aplicación
Activities: Son componentes de la interfaz de usuario, cada Activity representa una pantalla para el usuario. Fragments: Porción de la interfaz de usuario que puede añadirse o eliminarse de una interfaz de forma independiente al resto de elementos de la actividad, y que por supuesto puede reutilizarse en otras actividades Services: Se ejecutan en segundo plano y realizan operaciones de larga duración o procesos remotos. Content Providers: Son proveedores de contenido. Administran el acceso a un conjunto de datos de la aplicación. El sistema operativo Android incorpora de serie muchas aplicaciones con el uso de Content Providers como pueden ser los Contactos, Calendario, Mensajes, ... Broadcast Receivers: Responde a los avisos del sistema y de otras aplicaciones.

16 Componentes de una aplicación
Views: Son los componentes de la interfaz de usuario como botones, cuadros de texto, listas, etc. Intents: Son mensajes de notificaciones entre actividades y servicios. Básicamente nos permiten llamar a aplicaciones externas a la nuestra, lanzar eventos a los que otras aplicaciones puedan responder, lanzar alarmas, etc. Manifest: El archivo AndroidManifest.xml es donde se configura la aplicación, se agregan actividades, permisos, etc. Build.Gradle: es una herramienta para automatizar la construcción de nuestros proyectos, por ejemplo las tareas de compilación, testing, empaquetado y el despliegue de los mismos. Se puede publicar o tomar dependencias a los repositorios de “Maven” para reutilizar recursos.

17 Activities

18 Ciclo de Vida de una Activity

19 Ciclo de Vida de una Activity

20 Ciclo de Vida de una Activity
onCreate(Bundle): Se llama en la creación de la actividad. Se utiliza para realizar todo tipo de inicializaciones, como la creación de la interfaz de usuario o la inicialización de estructuras de datos. Puede recibir información de estado de la actividad (en una instancia de la clase Bundle), por si se reanuda desde una actividad que ha sido destruida y vuelta a crear. onStart(): Nos indica que la actividad está a punto de ser mostrada al usuario. onResume(): Se llama cuando la actividad va a comenzar a interactuar con el usuario. Es un buen lugar para lanzar las animaciones y la música.

21 Ciclo de Vida de una Activity
onPause(): Indica que la actividad está a punto de ser lanzada a segundo plano, normalmente porque otra actividad es lanzada. Es el lugar adecuado para detener animaciones, música o almacenar los datos que estaban en edición. onStop(): La actividad ya no va a ser visible para el usuario. Ojo si hay muy poca memoria, es posible que la actividad se destruya sin llamar a este método. onRestart(): Indica que la actividad va a volver a ser representada después de haber pasado por onStop(). onDestroy(): Se llama antes de que la actividad sea totalmente destruida. Por ejemplo, cuando el usuario pulsa el botón de volver o cuando se llama al método finish(). Ojo, si hay muy poca memoria, es posible que la actividad se destruya sin llamar a este método.

22 Ejercicio Ciclo de vida

23 Android. Persistencia de datos en la rotación de pantalla
Android. Persistencia de datos en la rotación de pantalla. Portrait <-> Landscape. Si bien podría pensarse que únicamente el cambio se da a nivel visual, no hay que olvidar que el usuario pudo haber introducido datos en una pantalla. En estos casos, la rotación de pantalla no tiene que truncar estas acciones, el usuario debe visualizar esos mismos datos en la nueva vista que ha sido llamada. Para mantener la persistencia entre ambos tipos de orientaciones y manejar adecuadamente el reinicio, es importante que la actividad restablezca su estado anterior a través del ciclo de vida normal de la actividad. Para ello utilizaremos los métodos  nSaveInstanceState() y onRestoreInstanceState().

24 Android. Persistencia de datos en la rotación de pantalla
Android. Persistencia de datos en la rotación de pantalla. Portrait <-> Landscape. El primero es llamado antes de destruir la actividad y con él guardaremos en el objeto Bundle suministrado como parámetro la información que deseemos. Con el segundo, llamado durante el onCreate, recuperaremos dicha información. De esta manera la actividad se mostrará con la información tal y como estaba en la actividad anterior. Estos métodos se utilizan en la gran mayoría de los casos, cuando toda nuestra información comprende tipos primitivos, o es son Serializable (Parcelable).

25 Fragments Permiten modularidad y reusabilidad.

26 Fragments

27

28 Contenido Más Introducción a Android Componentes Lógicos
Componentes UI Guías de diseño Publicación en Google Play Primera aplicación Componentes UI

29 Layouts - FrameLayout Este tipo de Layout es el más básico, coloca a sus objetos hijos en la parte superior izquierda de la pantalla. Como se puede apreciar en el resultado, si hay más de un hijo, los objetos se amontonan unos encima de otros. ¡Text View!

30 Layouts - LinearLayout
Este tipo de layout coloca sus hijos unos detrás de otros, también comenzando por la esquina superior izquierda de la pantalla. Podemos colocarlos alineados horizontalmente o verticalmente mediante su propiedad android:orientation=”horizontal | vertical” En este caso, he puesto un fondo de color a cada texto (con la propiedad android:background) para diferenciarlo bien, y he usado la orientación horizontal, de haber usado la orientación vertical, los textos aparecerían uno debajo del otro:

31 Layouts - RelativeLayout
Este Layout permite colocar elementos en un lugar con respecto a la posición de otro. Para conseguir esto, RelativeLayout proporciona propiedades como android:layout_toRightOf o android:layout_alignLeft, que toman como valores los identificadores de los objetos, o valores booleanos. Como vemos, hemos centrado el texto1 en la pantalla con android:layout_centerInParent=”true” y hemos puesto debajo del texto1 al texto2

32 Layouts – Muchos otros List View Grid View Table Layout

33 Layouts – Consejos Suele ser una buena práctica, en general, utilizar layouts tan simples como sea posible. Para conseguir una interfaz más eficiente podemos seguir los siguientes consejos: Evitar anidamientos innecesarios: no introduzcas un layout dentro de otro a menos que sea estrictamente necesario. Un LinearLayout dentro de un FrameLayout, usando ambos el valor fill_parent para su altura y su anchura, no producirá ningún cambio en el aspecto final de la interfaz y su único efecto será aumentar el coste computacional de construir dicha interfaz. Buscar layouts redundantes, sobre todo si has hecho varios cambios en la interfaz. Evitar usar demasiadas vistas: cada vista que se añade a la interfaz requiere recursos y tiempo de ejecución. Evitar anidamientos profundos: debido a que los layouts pueden ser anidados de cualquier manera y sin limitaciones es fácil caer en la tentación de construir estructuras complejas, con muchos anidamientos. Aunque no exista un límite para el nivel de anidamiento, deberemos intentar que sea lo más bajo posible.

34 Layouts – Fragments Un fragment no puede considerarse ni un control ni un contenedor, aunque se parecería más a lo segundo. Permite poder dividir nuestra interfaz en varias porciones de forma que podamos diseñar diversas configuraciones de pantalla, dependiendo de su tamaño y orientación, sin tener que duplicar código en ningún momento.

35 Botones Objetos simples, para realizar acciones al pulsar sobre ellos.
En este caso, hemos declarado una variable como miembro de la clase, (public int contador = 0;), para que cada vez que pulsemos el botón nos salga un mensaje con el número de veces que lo hemos pulsado: ¡Toast!

36 Edit Text Son campos de texto en los que el usuario puede escribir.
Lo que hemos hecho con este EditText, es fijarle un onKeyListener, que comprobará (con el if), que hemos pulsado la tecla enter, y si es cierto, mostrar el texto escrito:

37 ImageView Nos permite mostrar imágenes en la pantalla.
El icono es el que viene por defecto al crear un proyecto. Este es el resultado:

38 CheckBox Es un tipo de botón con dos estados, activo o inactivo, prácticamente tiene el mismo comportamiento de un botón, una de sus características es que podemos comprobar si el botón esta activo o no. En este caso, hemos usado como listener onCheckedChanged, que se ejecutará cada vez que el estado del checkbox cambie.

39 …muchos otros… …muchos otros Radio Button Spinner Tabs

40 Contenido Más Introducción a Android Componentes Lógicos
Componentes UI Guías de diseño Publicación en Google Play Primera aplicación Guías de Diseño

41 Guías de Diseño - Action Bar
…muchos otros… Guías de Diseño - Action Bar

42 Guías de Diseño – Combinando Múltiples Vistas
…muchos otros… Guías de Diseño – Combinando Múltiples Vistas

43 Guías de Diseño – Combinando Múltiples Vistas
…muchos otros… Guías de Diseño – Combinando Múltiples Vistas

44 Matias Duarte - Material Design

45 Material Palette Tool

46 Contenido Más Introducción a Android Componentes Lógicos
Componentes UI Guías de diseño Publicación en Google Play Primera aplicación Publicación en Google Play

47 Requisitos para la publicación en Google Play
…muchos otros… Requisitos para la publicación en Google Play Cuenta en Gmail: Diferente a tu cuenta personal. Pago único para publicar en Google Play: $25 Dólares Generar un certificado digital: Utilizando la herramienta “keytool” disponible en el JDK Firmar digitalmente el APK: A través de Eclipse, NetBeans o Android Studio Contenido: Preparar el apk, los datos y recursos para la publicación. Publicación

48 Contenido Más Introducción a Android Componentes Lógicos
Componentes UI Guías de diseño Publicación en Google Play Primera aplicación Primera Aplicación

49 Primera aplicación Creación del proyecto Creación de emulador
Pruebas en emulador Pruebas en dispositivo real

50 Android Studio Mayo 2013 Presentación Atajos

51 Android Studio

52 Diseño en vivo

53 Plantillas

54 Plantillas

55 Editor de diseño

56 Android Studio Atajos Imprescindibles android-studio/ imprescindibles-en-android-studio

57 Ventajas/inconvenientes de programar en Android Nativo o Multiplataforma
Ventajas aplicaciones multiplataforma Maneja todo el código de las aplicaciones desde un mismo código fuente. Los posibles bugs son solucionados en todas las plataformas a la vez. No tener que aprender nuevos lenguajes de programación si se sabe HTML, CSS Y Javascript. Es fácil hacer un diseño. Costes de mantenimiento. Desventajas aplicaciones multiplataforma Los usuarios la valoran mucho peor, tienen medias de 3 estrellas y tienes que competir con apps de 4 y 5 que encima estén invirtiendo en publicidad. Son penalizadas por los buscadores de los markets, es fácil que una aplicación multiplataforma se coloque en las últimas posiciones. El rendimiento es muy malo, al no ser un código compilado y por tanto reordenado la velocidad de la app se ve muy afectada. Estas muy limitado, no podrás hacer una app escalable y usar todas las carasteristicas del teléfono adecuadamente. Competencia, si tu idea está o se realiza en código nativo estas fuera de juego.

58 Android Studio Mayo 2013 Presentación

59 Comparativa Android Studio / Eclipse

60 Estructura de un proyecto

61 Recursos …muchos otros…
SDK: Guía de Diseño: Android Studio: Android Developers:

62 Recursos …muchos otros…
Android Asset Studio: (para generar iconos) Action Bar Sherlock: (versión 2.3) Action Bar Compact: (versión 4.2) Smart Image View: (permite carga de imágenes de url) Google Play Developer Console: Curso Android Sgoliver (2 Euros en PDF, Gratis Online) Cursos Udacity

63 Versiones Android …muchos otros…
RECURSOS CURSO ANDROID EN ESPAÑOL

64 ¿Preguntas?


Descargar ppt "Iniciación a Android Cándido Caballero-Gil Doctor en Informática"

Presentaciones similares


Anuncios Google