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

Slides:



Advertisements
Presentaciones similares
Desarrollo con Android
Advertisements

Andy Rubin estudiante de Ciencias de la Computación graduado en 1986 General Magic (Magic Cup SO para PDAs) Artemis Research Danger.Inc (Desarrollando.
ENTORNO DE ECLIPSE CREACIÓN DE ACTIVITIES Y SU CICLO DE VIDA.
Clase 09.  Garantizar la calidad de software  La prueba nunca termina, del IS translada se translada al usuario  Las casas de software invierte del.
Tutorial Dropbox. INDICE 1. Instalación de la aplicación 2. Capacidad de Almacenamiento 3. Creación de nueva cuenta 4. Descarga de la Aplicación 5. Instalación.
COMUNICACIÓN Y TIC Ángela Espinosa Hayler Peñaranda.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
Conceptos generales de base de datos
Iniciación a Android Dia 1: Instalación Android Studio - 1h
UNIVERSIDAD NACIONAL DE CHIMBORAZO NOMBRE:ERIKA SALAO PRIMERO:A ESCUELADE:EDUCACION BASICA DOCENTE: FERNANDO BUFANTE AÑO LECTIVO Es un sistemas.
INGENIERÍA DE INFORMACIÓN Y APLICACIONES
COMPUTACIÓN Y SOFTWARE DE APLICACIÓN
Diseño de aplicaciones móviles
Google Play Store o Play Store para abreviar, es la aplicación que la gente con tabletas y smartphones Android utiliza para descargar juegos, aplicaciones.
INTRODUCCIÓN. Una computador u ordenador se compone principalmente del software, que se refiere al conjunto de programas, instrucciones y reglas informáticas,
¿Qué es y para qué nos sirve BootStrap?
Iniciación a Android Dia 1: Instalación Android Studio - 1h
Iniciación a Android Cándido Caballero Gil.
Visual ITP y Web ITP Raquel Sánchez Díaz Universidad de Salamanca.
Capítulo 7: Consideraciones hacia la web móvil
DESARROLLO DE APPS MÓVILES Introducción
Iniciación a Android Cándido Caballero-Gil Doctor en Informática
PHP Hypertext Preprocessor
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
Diseño y Programación Orientados a Objetos
Programación Orientada a Eventos
Sitio web Prezi Funcionamiento Se emplea para diseñar, es plataforma puente entre la información. El texto se coloca sobre plantillas ya prediseñadas,
LENGUAJE DE PROGRAMACIÓN Y SOFTWARE PROPIETARIO
Tópicos de bases de datos
ARQUITECTURA DE COMPUTADORES
Miguel García Ruiz Jackeline Giraldo Urrea
Ing. Victor Padilla Farías. LINUX INTRODUCCIÓN Si conserva un antiguo 386 ó 486, puede que lo quiera aprovechar con Linux. No va a alcanzar velocidades.
Ing. Victor Padilla Farías. LINUX INTRODUCCIÓN Si conserva un antiguo 386 ó 486, puede que lo quiera aprovechar con Linux. No va a alcanzar velocidades.
¿Qué es IONIC? Ionic es un Framework que nos permite crear de una manera rápida y sencilla aplicaciones móviles multiplataforma (Android, IOS, Windows)
 PhoneGap es un framework de código libre para el desarrollo de aplicaciones móviles. Su principal característica: multiplataforma, es decir, con un.
HERRAMIENTAS BÁSICAS PARA ESTUDIO VIRTUAL
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
Push Notifications.
MOODLE ILO ADM. DE SISTEMAS DE LA INFORMACION
SEBASTIAN GAITAN BEDOYA
Diseño y Programación Orientados a Objetos
Computación Nivel Usuario CB-123
Fundamentos de programación
QUE ES UN SISTEMA OPERATIVO ANDROID  Es un Sistema Operativo además de una plataforma de Software basada en el núcleo de Linux.  Permite controlar dispositivos.
Introducción al Visual Basic  Un programa en sentido informático está constituido en un sentido general por variables que contienen los datos con los.
Sistemas Operativos En La Nube Mtro. Abimael Antonio Pineda TEMA.
CREACIÓN DE ACTIVITIES Y SU CICLO DE VIDA
PROYECTO DE GRADUACIÓN
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
Bienvenidos!.
Introducción a Android Studio Lic. Jose Armando Tiznado Ubillus.
“Conceptos Básicos de Java”
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
Lenguajes del lado del cliente
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
INTRODUCCIÓN A DISEÑO Objetivos del curso. Definición de PowerPoint. Que podemos hacer en PowerPoint. Definición de Presentación. Principios de un buen.
PARAMETROS PARA EL DISEÑO DE CONTENIDOS EDUCATIVOS DIGITALES
Diseño y Programación Orientados a Objetos
Android Integrantes: Nelson Lopez Reyes Silvana Carpio Salvador.
Características de los Sistemas Operativos
Google Classroom. Bienvenidos a Google Classroom.
PROYECTO DE GRADUACIÓN
¿Como crear tu propia app?
PROYECTO DE GRADUACIÓN
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ESTRUCTURA DE LO SISTEMAS OPERATIVOS Presentado por: Jennifer.
Conjunto de programas contenidos en un núcleo o kernel que efectúan la gestión de los procesos básicos de un Sistema informático, y permite la normal.
Transcripción de la presentación:

Iniciación a Android Cándido Caballero-Gil Doctor en Informática ccabgil@ull.es Facebook: Cándido Caballero-Gil Twitter: @CndidoCaballero

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

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

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

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

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

Arquitectura del sistema

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.

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.

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.

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

Versiones Android

Versiones Android – El problema de la fragmentación

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

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.

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.

Activities

Ciclo de Vida de una Activity

Ciclo de Vida de una Activity

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.

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.

Ejercicio Ciclo de vida

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

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

Fragments Permiten modularidad y reusabilidad.

Fragments

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

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!

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:

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 con android:layout_below=”@id/text1″

Layouts – Muchos otros List View Grid View Table Layout

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.

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.

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!

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:

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:

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.

…muchos otros… …muchos otros Radio Button Spinner Tabs

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

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

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

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

Matias Duarte - Material Design

Material Palette Tool

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

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

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

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

Android Studio Mayo 2013 Presentación Atajos

Android Studio

Diseño en vivo

Plantillas

Plantillas

Editor de diseño

Android Studio Atajos Imprescindibles http://androcode.es/2014/10/mejores-atajos- android-studio/ https://cetatech.ceta-ciemat.es/2015/02/atajos- imprescindibles-en-android-studio

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.

Android Studio Mayo 2013 Presentación

Comparativa Android Studio / Eclipse

Estructura de un proyecto

Recursos …muchos otros… SDK: http://developer.android.com/sdk/index.html Guía de Diseño: http://developer.android.com/design/index.html Android Studio: http://developer.android.com/sdk/installing/studio.html Android Developers: http://developer.android.com/index.html

Recursos …muchos otros… Android Asset Studio: (para generar iconos) http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html Action Bar Sherlock: (versión 2.3) http://actionbarsherlock.com/index.html Action Bar Compact: (versión 4.2) http://gmariotti.blogspot.com.es/2013/07/actionbarsherlock-vs-actionbarcompat.html Smart Image View: (permite carga de imágenes de url) http://loopj.com/android-smart-image-view/ Google Play Developer Console: https://play.google.com/apps/publish/ Curso Android Sgoliver (2 Euros en PDF, Gratis Online) http://www.sgoliver.net/blog/?page_id=3011 Cursos Udacity https://www.udacity.com/course/developing-android-apps--ud853

Versiones Android …muchos otros… http://academiaandroid.com/android-6-0-marshmallow-presentacion/ http://academiaandroid.com/novedades-de-android-5-0-lollipop/ RECURSOS CURSO ANDROID EN ESPAÑOL http://academiaandroid.com/

¿Preguntas?