Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Següent revisió | Revisió prèvia | ||
| info:cursos:cibernarium:android [04/10/2017 15:29] – creat mate | info:cursos:cibernarium:android [07/07/2018 10:41] (actual) – [Creación de aplicacions con Google Android] mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| = Creación de aplicacions con Google Android | = Creación de aplicacions con Google Android | ||
| + | {{tag> | ||
| == datos curso | == datos curso | ||
| * ONLINE ([[https:// | * ONLINE ([[https:// | ||
| Línia 5: | Línia 6: | ||
| * Cristian Barrientos Beltrán ([[https:// | * Cristian Barrientos Beltrán ([[https:// | ||
| - | == Sistema operativo Android | + | == Modulo 1 |
| + | === Sistema operativo Android | ||
| * software libre: sistema operativo, middleware, aplicaciones, | * software libre: sistema operativo, middleware, aplicaciones, | ||
| * SDK completo, multiplataforma, | * SDK completo, multiplataforma, | ||
| Línia 25: | Línia 27: | ||
| * [[http:// | * [[http:// | ||
| - | == Estructura de un proyecto | + | === Estructura de un proyecto |
| * AndroidManifest.xml | * AndroidManifest.xml | ||
| * configuración | * configuración | ||
| Línia 47: | Línia 49: | ||
| * carpeta Values | * carpeta Values | ||
| - | == componentes | + | === componentes |
| * Activities | * Activities | ||
| * componente principal | * componente principal | ||
| * tiene asignada una vista (layout) | * tiene asignada una vista (layout) | ||
| * java | * java | ||
| - | * cada una tiene su ciclo de vida (pausar, destruir, etc...) | ||
| * el sistema puede cerrar nuesta activity si necesita memoria | * el sistema puede cerrar nuesta activity si necesita memoria | ||
| * Intents | * Intents | ||
| Línia 67: | Línia 68: | ||
| * UI's mostran las funcionalidades de nuestra app | * UI's mostran las funcionalidades de nuestra app | ||
| * amigables | * amigables | ||
| + | * cada una tiene su ciclo de vida (pausar, destruir, etc...) | ||
| * Content Providers | * Content Providers | ||
| * proveedores de contenido, comunicación con otras apps para hacer uso de los datos | * proveedores de contenido, comunicación con otras apps para hacer uso de los datos | ||
| Línia 74: | Línia 76: | ||
| * las modificaciones se notifican con un **intent** | * las modificaciones se notifican con un **intent** | ||
| + | == Modulo 2 | ||
| + | === Lenguajes de programación | ||
| + | * Java: | ||
| + | * sintaxis c, c++ | ||
| + | * todo son objetos | ||
| + | * declaración variables | ||
| + | * sentencias de condición | ||
| + | * sentencias de control | ||
| + | * Arrays / vectores | ||
| + | * Package: | ||
| + | * clases afines de la aplicación | ||
| + | * como una biblioteca | ||
| + | * físicamente representan una carpeta | ||
| + | * Herencia entre clases | ||
| + | * public, protected, private | ||
| + | * ejecución en máquina virtual | ||
| + | * OOP encapsula conceptos en clases | ||
| + | * una clase define: | ||
| + | * variables, atributos | ||
| + | * funciones, métodos (getters, | ||
| + | * XML | ||
| + | * extensible markup language | ||
| + | * diseñado para transportar y almacenar datos | ||
| + | * tags por definir | ||
| + | * autodescriptivo | ||
| + | * es texto, almacena | ||
| + | * estricto! | ||
| + | * estructura jerárquica (árbol) | ||
| + | |||
| + | ===Activities | ||
| + | * la mayoria están formadas por activities | ||
| + | * cada A corresponde a una vista | ||
| + | * no tienen control sobre su cierre | ||
| + | * tiene 3 estados: resumed (cima de la pila), paused (visible, sin foco, no interactuación), | ||
| + | * Heredan desde la clase Activity | ||
| + | * se han de declarar en Manifest | ||
| + | * se crea una PILA de A | ||
| + | * métodos vinculados con la Activity: | ||
| + | * onCreate | ||
| + | * onStart | ||
| + | * onResume | ||
| + | * onPause | ||
| + | * onStop | ||
| + | * onRestart | ||
| + | * onDestroy | ||
| + | * este método también es llamado con un cambio de orientación de pantalla | ||
| + | |||
| + | === Intents | ||
| + | * elementos de comunucación entre A | ||
| + | * representación de intención o solicitud de una tarea a otra App | ||
| + | * '' | ||
| + | * '' | ||
| + | * iniciar servicios, llamar a otras actividades, | ||
| + | * '' | ||
| + | * 2 tipos: | ||
| + | * implicitos | ||
| + | * se le indica la acción y de manera implicita ejecuta la aplicación relacionada | ||
| + | * explicitos | ||
| + | * indicamos que componente exacto queremos lanzar | ||
| + | * objeto Intent contiene atributos: | ||
| + | * Componente: nombre del componente, path de la clase (x.xx.xxx.xxxx), | ||
| + | * solo tiene sentido para intentslos explicitos | ||
| + | * '' | ||
| + | * Accion: | ||
| + | * solo tiene sentido para intents implícitos | ||
| + | * lista de acciones en web Google | ||
| + | * Dato: modificar los datos de un Intent | ||
| + | * '' | ||
| + | * Categoria: | ||
| + | * '' | ||
| + | * varias categorias se pueden asignar | ||
| + | * Extras: info de un componente a otro (JSON?), llaves clave, valor | ||
| + | |||
| + | == Modulo 3 | ||
| + | === Listeners | ||
| + | * Ligados a la vista | ||
| + | * 4 métodos | ||
| + | - crear un elemento listener y definir la función *onClick* (método existente no implementado, | ||
| + | - la clase de la activity ejecute el *onClick*, haciendo un '' | ||
| + | - crear nuestra propia clase Listener, heredando de Listener (para cosas muy específicas que no se puedan aprovechar de los existentes) | ||
| + | - a través del XML, definiendo el valor de la función | ||
| + | |||
| + | === Activities (II) | ||
| + | * Guardar el estado de las Activities (por cierre no controlado) | ||
| + | * métodos proporcionados por Android | ||
| + | * '' | ||
| + | * '' | ||
| + | * almacenar valores | ||
| + | * parejas clave-valores | ||
| + | * valores primitivos | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | === Notificaciones | ||
| + | * Toast | ||
| + | * notificaciones fugaces | ||
| + | * solo se muestra 1 | ||
| + | * se apilan | ||
| + | * SnackBar | ||
| + | * versión mejorada del Toast | ||
| + | * permite añadir acciones | ||
| + | * requiere de Android Design Support Library (no sirve versiones antiguas de Android) | ||
| + | * StatusBar | ||
| + | * acciones asociadas (ir a una activity de nuestra app) | ||
| + | * se puede configurar su tiempo de vida | ||
| + | * implementación | ||
| + | * Instaciar '' | ||
| + | * inicializar nuestra notificación (builder) y inicializar el Intent Explícito | ||
| + | * generar stack articial de activities y adjuntarle el Intent | ||
| + | * generar la notificación de nuestro builder y hacer que se muestre. | ||
| + | |||
| + | === Almacenaje | ||
| + | * interno: | ||
| + | * privados para la aplicación | ||
| + | * al desinstalar la app, se borran | ||
| + | * se guardan en raw.res | ||
| + | * funciones útiles: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * externo: | ||
| + | * memoria que no pertenece a nuestro dispositivo | ||
| + | * para que pueda acceder a la SD, hay que darle permisos (manifest) | ||
| + | * todos los usuarios y apps tienen acceso a estos ficheros | ||
| + | * shared preferences | ||
| + | * guarda los datos de nuestra app | ||
| + | * primitivos | ||
| + | * clave-valor | ||
| + | * se mantienen aunque se destruya la app | ||
| + | * classe SharedPreferences() | ||
| + | |||
| + | == modulo 4 | ||
| + | === SQL | ||
| + | * información guardada en tablas | ||
| + | * columnas, filas | ||
| + | * SQLite Database | ||
| + | * '' | ||
| + | * SQL | ||
| + | * CREATE TABLE... | ||
| + | * DROP TABLE... | ||
| + | * SELECT... | ||
| + | * INSERT... | ||
| + | * UPDATE... | ||
| + | * DELETE.. | ||
| + | |||
| + | === SQLite Open Helper | ||
| + | * ayuda para el SQL en Android | ||
| + | * se puede usar para instrucciones SQL | ||
| + | * o ejecutar los métodos al uso | ||
| + | * CREATE... '' | ||
| + | * SELECT... '' | ||
| + | * INSERT... '' | ||
| + | * UPDATE... '' | ||
| + | * DELETE... '' | ||
| + | === Preparación para la venta de apps i AdMob | ||
| + | * Cuenta desarrollador GooglePlay (25$) de por vida | ||
| + | * Google Wallet para vender apps (gratuita), vincular cuenta bancaria (tarda 3-4 días en validarse) | ||
| + | * AdMob, sistema anuncios, Paypal | ||
| + | * permite colocar anuncios, Google gestiona los anuncios | ||
| + | * 3000 visualizaciones, | ||
| + | * hay que llegar a 70€ para cobrar | ||
| + | * crear aplicaciones útiles | ||
| + | * entra por la vista | ||
| + | * desarrolla el programa, mejora después | ||
| + | * probar en muchos dispositivos | ||
| + | * desarrolar muchas aplicaciones para ver cual triunfa | ||
| + | * formas alternativas de financiamiento: | ||