Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
info:cursos:cibernarium:android [04/10/2017 15:32] – 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 53: | Línia 54: | ||
* 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 68: | 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 75: | ||
* receptor de difusión | * receptor de difusión | ||
* 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: |