Curso de Bases Técnicas de Android
Curso de Bases Técnicas de Android
Curso de Bases Técnicas de Android
Introducción a Android
Es un sistema operativo que está basado en Kernel Linux y fue diseñado por Google
ANDROID:
Es un sistema Operativo
Desarrollado por Google
Dispositivos Móviles
Kernel de Linux
Open Source
Octubre 2011
Pantalla de Inicio personalizada
Carpetas
Control de uso de datos.
Julio 2012
Google Now - (Aprender de lo que te gusta, google sabe todo en base a las cuentas)
Notificaciones
Multiusuario (Tener varias cuentas de google al mismo tiempo)
Octubre 2013
Teléfono Inteligente aprender de tus preferencias
Llamadas
Google Maps
Contactos
Octubre 2013
Teléfono Inteligente aprender de tus preferencias
Llamadas
Google Maps
Contactos
Junio 2014
Nace Material Design
Multipantalla
Notificaciones en la pantalla de bloqueo
Agosto 2015
Gestor de Permiso, Solo da permiso a los permisos básicos, ahora se solicita permiso a
todo.
Batería Mejorada
Mayo 2016
Incremento:
Lenguaje (Más soporte a lenguajes)
Notificaciones (Mejores estilos de notificaciones).
Seguridad
Iconos adaptativos.
Activación automática del Wi-Fi cuando lleguemos a casa.
Incorporación del Project Treble. (Se cambia la arquitectura de Android para separar la
capa del sistema operativo de la capa de los drivers del fabricante)
Android 10 2019
Android 11 2020
https://www.youtube.com/watch?v=kHs2jtICA44
https://developer.android.com/guide/topics/ui/look-and-feel?hl=es-419
Aspectos clave:
-**Versiona miento de sistemas operativos: **La cantidad de versiones que existen para android
-Densidad del dispositivo: Interfaz de usuario según los tamaños del dispositivo.
-Workflow y Métricas de diseño: Establecidas y muy importantes. Hay que tener claras sus
versiones, su evolución y el flujo de trabajo.
En resumen:
Para poder desarrollar en android se necesita conocer el sistema operativo en si y ciertas reglas
que google-android pone a nuestra disposición para desarrollar correctamente una app.
Disponibilidad: En cuantos dispositivos va a correr nuestra app puede ser que sobre un
smartwatch en android tv en un teléfono o tableta
El rendimiento: Se refiere a que dispositivos que tengan un mínimo de ram cpu y rom para
que pueda funcionar bien nuestra app
Conocer los diferentes tipos de versiones que hay en android
**La Regla de Android es: Que la app haga lo que dice que hace
Seguir un Workflow (flujo de trabajo)
Las métricas de diseño
1. Usuarios Activos
2. Uso de la aplicación
3. Largada de la sesión (¿Cuántos minutos tiempo utilizan la aplicación?)
4. Retención
5. Coste de adquisición del cliente (CAC)
6. Ingresos medios por cliente o average revenue per user (ARPU)
7. Vida útil o customer lifetime value (LTV)
<h4>Disponibilidad</h4>
<h4>Rendimiento</h4>
Es una parte muy importante ya que hay que evitar problemas como cierres inesperados o que la
aplicación se quede congelada.
<h4>Calidad</h4>
Se necesita ofrecer un producto de calidad que funcione de forma correcta en la mayor cantidad
de dispositivos posibles.
Lenguajes de programación
Entorno de desarrollo (IDE)
Testing
Tienda de aplicaciones
Tipos de dispositivos Android y Soporte
Existen muchos dispositivos que tiene Android como sistema operativo, como celulares, tabletas,
relojes, televisiones, etc. Todos con sus distintas posibilidades y requerimientos.
<h4>Compatibilidad</h4>
Por esta gran variedad es que siempre se debe verificar si el dispositivo cuenta con las
características necesarias para ejecutar correctamente la aplicación. Si cuenta con cámara,
almacenamiento suficiente, micrófono, GPS, etc.
Compatibilidad con la aplicación: Esto se refiere a que la aplicación sea funcional en todos
los dispositivos, donde cada uno tiene diferentes tamaños y formatos de pantalla y en
todas se debe de poder usar la aplicación.
Características del hardware: Cada aditamento de hardware tiene su
propio identificador para acceder a él.
Versión de Android
Configuración de pantalla
minSdkVersion: Versión mínima que tendrá soporte la aplicación.
targetSdkVersion: Versión a la cuál está dirigida la aplicación.
Lista de funciones de Android Enterprise:
https://developers.google.com/android/work/requirements?hl=es-419
Teléfonos
Tablets
Wear OS
Android Auto
Android TV
Chromebook
etc.
Compatibilidad con el dispositivo al ser un SO Open Source, casi cualquier hardware puede
correr android. De este modo debemos fijarnos si el dispositivo posee Play Store, siendo
esta la prueba más eficaz de que podremos correr nuestras aplicaciones;
Revisa muy bien que el dispositivo que vas a comprar posea la tienda de aplicaciones, y los
aditamentos necesarios para el buen funcionamiento de tu app.
Compatibilidad con la aplicación así como hay cosas buenas, también existe un lado
negativo de la gran cantidad de dispositivos que corren Android. Preguntas como el
tamaño de la pantalla, la resolución, características del hardware, versión, etc. Son las que
deberás hacerte para que tu aplicación pueda ejecutarse de manera óptima.
Afortunadamente Google tiene unas features que priorizan la privacidad del usuario. Por lo que
cada vez que requieras acceder a algo específico del hardware, deberás pedir un permiso al
usuario por medio de un identificador que se mostrará en un dialogo en pantalla.
Existe una documentación que te muestra cuales son los features de hardware a los que puedes
acceder:
Minsdk version y targetsdk version: desde tu app, tu decides el API mínimo para el cual le darás
soporte. Así mismo, tendrás una versión con API objetivo, para la cual estará centrada tu app.
Que se debe tener en cuenta para crear una app en Android
Características del Hardware, el hardware debe cumplir con los requisitos de la aplicación (si la
aplicación ocupara la cámara frontal, el hardware debe tener una cámara frontal).
Activity
**Archivo Java **(clase activity o alguna de sus derivados que son heredados)
Layout (interfaz gráfica).
onCreate() -> Create: Se crea la activity (No la clase), Bundle savedInstanceState guarda el
estado de la primer activity que creo la segunda activity. Se debe definir la lógica de
negocio que debe realizar la activity cuando interactue con el usuario.
onStart() -> Started: La activity está visible.
onResume() -> Resumed: La activity está (running) lista para interactuar con el usuario.
onPause() -> Paused: Parcialmente vicible, está a punto de ser enviada a segundo plano,
debido al lanzamiento de otra activity. Si se vuelve a visualizar la activity se llama a
onResume().
onStop() -> Stopped: la activity se va a ocultar (al precionar home, al superponerse otra
activity que oculte a la principal), va a ser detenida, pero sigue en la memoria RAM, se
deben guardar los estados que quieras recuperar al onRestart().
onRestart() -> Started: Se pueden recuperar los estados guardados en onStop()
onDestroy() -> Destroyed: La actividad es destruida (cuando se presiona el botón back), al
volver a lanzar la activity, reinicia por el proceso de onCreate().
Created (onCreated)
Started (onStart)
Resumed (onResume)
Paused (onPause)
Stopped (onStop)
Destroyed (onDestroy)
Fragments
Cuándo estamos desarrollando una aplicación será muy común tener un flujo de
“ventanas” es decir más de un Activity conectadas entre sí. Los Intents nos servirán para
unir componentes de una aplicación, y podemos tener dos casos específiamente:
Además hablando de Flujos en una aplicación notarás que Android tiene un botón especial.
El Botón de Back.
Este botón lo que hará será navegar en retroceso del flujo de la aplicación.
Botón up.
Este está situado en la parte superior de la aplicación donde se encuentra el Toolbar y lo que hace
es navegar en Jerarquía del flujo de la aplicación. Se llama Up porque lo que hace es regresar al
nivel superior de donde provino.
Esos flujos pueden ser controlados a tu conveniencia para unir con más Activity’s usando Intent’s.
Services
Ejemplo de servicios
“los servicios son todas esas funciones que se ejecutaran cuando tengamos el teléfono apagado,
por ejemplo, si estamos en Instagram, y el teléfono este apagado seguirá entrando las
notificaciones y cuando encademos el teléfono y entramos a la aplicación esta estará actualizada.”
Broadcast
Link: https://developer.android.com/reference/android/content/BroadcastReceiver
BroadcastReceiver
Public methods
final String getResultData()
final BroadcastReceiver.PendingResult goAsync()
IBinder peekService(Context myContext, Intent service)
Otro ejemplo
Broadcast
Los broadcast receivers son los receptores de trasmisiones, estos receptores están siempre alerta
de lo que sucede en el sistema operativo.
El archivo Manifest se encarga de tener declarado todo lo que tenga que ver con el dispositivo
móvil y se encarga de comunicar el código fuente de la aplicación con el hardware del dispositivo.
En este archivo también es donde están definidos los broadcast receivers.
Ejemplos de broadcasts: bateria baja, llamada entrante, mensaje entrante, wifi disponible, carga
conectada, etc.
Android Manifest
Se encarga de tener todo declarado todo lo que tenga que ver con el dispositivo
Esta alerta
El código fuente está conectado con el android manifest y el android manifest es la capa que tiene
contacto directo con el hardware del móvil.
Link: https://developer.android.com/reference/android/os/AsyncTask
estaba destinado a permitir un uso adecuado y fácil del subproceso de la interfaz de usuario. Sin
embargo, el caso de uso más común fue para la integración en la interfaz de usuario, y eso
causaría fugas de contexto, devoluciones de llamada perdidas o fallas en los cambios de
configuración. También tiene un comportamiento inconsistente en diferentes versiones de la
plataforma, acepta excepciones de doInBackground, y no brinda mucha utilidad en comparación
con el uso Executordirecto de s.
AsyncTask está diseñado para ser una clase auxiliar Thready Handler no constituye un marco de
trabajo genérico. Idealmente, AsyncTasks debería usarse para operaciones cortas (unos pocos
segundos como máximo). Si necesita mantener los subprocesos en ejecución durante largos
períodos de tiempo, se recomienda encarecidamente que use las diversas API proporcionadas por
el paquete, java.util.concurrentcomo Executor, ThreadPoolExecutory FutureTask.
Una tarea asincrónica se define mediante un cálculo que se ejecuta en un subproceso en segundo
plano y cuyo resultado se publica en el subproceso de la interfaz de usuario. Una tarea asíncrona
se define por 3 tipos genéricos, llamados , Paramsy Progress, Resulty 4 pasos, llamados
onPreExecute, y .doInBackgroundonProgressUpdateonPostExecute
IDE Oficial de Android
Es el IDE oficial de Android, está basado totalmente en el entorno IntelliJ IDEA, es el más
recomendado pues está diseñado totalmente para desarrollar aplicaciones móviles muy rápido.
En mi experiencia he podido observar toda la evolución que este IDE ha tenido y cada cambio ha
traído sus gratos beneficios. Desde que nació y trajo la sorpresa de tener como motor constructor
de aplicaciones a Gradle, de quien sabrás más al respecto en las próximas clases.
Como ya te conté Android Studio tiene características exclusivas para móviles que te hacen mucho
más sencillo construir y probar tus apps.
Este es una simulación de un dispositivo real de Android, los hay en muchas de sus variables,
teléfonos, tablets, smart watch, Android tv. En él podrás hacer la mayoría de las cosas que
ejecutas en un dispositivo real. Siendo de gran ayuda para testear tus aplicaciones en dispositivos
específicos.
Puedes ejecutar gestos, tomar fotografías, cambiar la dirección del teléfono, simular una llamada
entrante así como también simular geolocalizaciones etc. Es muy flexible y muy rápido de
habilitar.
Nos permite construir para todos los dispositivos
Android Studio cuenta con una distribución de archivos modular permitiéndonos construir una
aplicación compatible para cada tipo de dispositivo manteniendo los proyectos separados
haciendo personalizable el código separado para cada uno.
Instant Run hará que correr tus apps sea muy rápido
La primera vez que corras una proyecto grande de Android notarás que tomará bastante tiempo, y
esto es porque es una gran cantidad de archivos los que se necesitan para construir el ejecutable.
Uno de los horrores para los desarrolladores era que este tiempo que tenían que esperar era cada
vez que decidían correr la aplicación y esto es siempre una gran constante cuando estás
desarrollando, siempre deseas ir viendo el resultado del código que programas.
Ahora con Instant Run será mucho más sencillo, la primera vez tomará tiempo compilar la
aplicación para correrla pero después este IDE inteligente reconocerá solamente los cambios que
ocurrieron y solamente esos será los que compile, reduciendo muy notablemente el tiempo.
Github y Control de versiones integrado
Cuando trabajamos en equipo en proyectos de desarrollo usar git es obligatorio y una de las
plataformas más conocidas es Github, Android Studio tiene una herramienta integrada para el
manejo de versiones que únicamente tienes que activar.
Es un entorno gráfico sencillo y muy accesible de usar, que nos ahorrará un par de minutos en
teclear comandos. (La verdad es que amo los comandos, pero a muchos les agrada esta parte de
Android Studio).
Depuración Integrada
Android Studio tiene un sin fin de aditamentos que te ayudarán a construir aplicaciones mucho
más rápido, desde el autocompletado de código, los accesos directos, así como la depuración
integrada que vemos a continuación:
Próximamente conocido como Android Profiler Es un monitor de rendimiento de apps que nos
permite dar seguimiento del consumo de CPU, Batería y memoria de tu aplicación, nos permite
analizar solicitudes de red, etc.
Como ves es muy conveniente usar Android Studio, pues está totalmente enfocado al desarrollo
con Android, si desarrollarás apps móviles definitivamente deberás usar este IDE.
Google ha creado uno de los sistemas de compilación más avanzados del mercado para permitir a
todos los usuarios escribir sus propios scripts sin necesidad de aprender ningún nuevo lenguaje,
disminuyendo asi la curva de aprendizaje y permitiendo llegar a un mayor público la programación
en Android.
¿Qué ventajas tiene Gradle?
Como podemos ver, siempre hay mucho más detrás de un simple botón.
Otro ejemplo
Gradle, es una herramienta o un asistente que hace más rápida la construcción de proyectos de
desarrollo (Gradle suele ser más vista en java). apk
Integrar dependencias
Crear un sistema de archivos
Generar un ejecutable
Entonces, Gradle integra dependencias a nuestro código, compila el código y empaqueta nuestras
aplicaciones. Apk
Archivo principal
Son todos los servicios de aplicaciones de google para interconectarlas con nuestras apps,
Requisitos:
por ejemplo:
Para que puedan funcionar se necesita la librería del servicio que se necesite trabajando en
conjunto con el APK.
Otro ejemplo:
Google play services todo el tiempo se actualiza se encarga de los cambios en el sistema como
logotipos y performance en apps
Lo que verás a continuación es una relación de todos los servicios de Google que tienes disponible
para integrar a tus proyectos Android como librerías:
Hay varios lenguajes que podemos usar para el desarrollo de app en android uno de ellos y el mas
antiguo es Java, también existe otro lenguaje que trabaja de forma nativa y es Kotlin en este
resuelve muchos problemas que java aun no puede resolver, también tenemos JS que se trabajan
en muchos Frameworks como Reactive Native, Ionic que se ocupan para sustituir el Xml que
ocupamos en Java y Kotlin para esquematizar la interfaz Gráfica.
Tenemos otro entorno de desarrollo que es Xamarin que se basa en el Lenguaje C sharp que lo que
intenta hacer es hacer app totalmente nativas tanto para ios como para android, web y de
escritorio.
Y por ultimo tenemos NativeScript que es parecido a Ionic pero presume ser un poco mas rápido y
eficiente.
react native - en android utiliza html y css para las interfaces (Java - kotlin)
especifico
<h4>Java</h4>
Es un lenguaje con mucha comunidad y soporte, así como librerías de terceros. Es el lenguaje que
más tiempo se lleva usando en Android. Se desarrollan las interfaces con XML…
<h4>Kotlin</h4>
Resuelve muchos problemas que tiene Java, como excesivas líneas de código y punteros nulos. Es
fácil de aprender e interoperable con Java. Las interfaces también funcionan con XML.
<h4>React Native</h4>
Permite ahorrarnos el código XML y desarrolla las interfaces con tecnologías web por lo que son
muchos más portables a otros ambientes, pero igual el control de esta es mediante Java o Kotlin.
<h4>Ionic</h4>
Es recomendable para proyectos pequeños, trabaja enteramente con lenguajes web, nada de Java
o Kotlin. Es básicamente una aplicación web incrustada en una aplicación nativa.
<h4>Xamarin</h4>
Funciona con C# y es sencillo de aprender, presume de entregar aplicaciones nativas tanto para
Android como para iOS.
JAVA KOTLIN JAVA SCRIPT REACT IONIC XAMARIN
NATIVE
Material Design son las métricas de diseño de aplicaciones fueron construidas por Google y traídas
a Android a partir de la versión 5.0 Lollipop.
Tarjetas
Listas de Tarjetas
Una nueva Toolbar
Bottom Bar
Nuevos botones de acción
Editores de texto con efectos
Etc.
Material Design está basado en el manejo real y físico de materiales, como son especialmente
hojas de papel, además que este, permite jugar con las sombras para crear efectos
tridimensionales, la integración de animaciones es tan realista que se comportarán de acuerdo a
las leyes de la física, por lo tanto para general esto último tenemos API’s de desarrollo que se
integraron para trabajar con efectos y animaciones que hagan más interactivo el diseño.
Materiales:
Link:
https://m3.material.io/
https://dribbble.com/
Flutter es el nuevo SDK de Google creado para diseñar interfaces nativas iOS y Android. Utiliza el
lenguaje de programación Dart y fue creado para programadores de interfaces móviles. Esto es el
comienzo de lo porvenir en lo que será el frontend mobile.
Puedes trabajar con Flutter usando un editor de código y la línea de comandos, así como también
en múltiples editores como IntelliJ IDEA, Visual Studio Code, etc… Mi recomendación es que
utilices Android Studio funciona desde la versión 3.0.
Lo siguiente que tienes que hacer es instalar en Android Studio el plugin de Flutter y Dart puedes
hacerlo yendo a Preferences > Plugins en mac o en Windows/Linux File > Settings > Plugins
Selecciona que deseas instalar el plugin de Dart y después te pedirá reiniciar el IDE.
Flutter nos da la posibilidad de reutilizar el código de una interfaz y usarlo en iOS, para esto
deberás tener Xcode 9 o superior instalado y configurado.
Para abrir el emulador de Android puedes hacerlo desde el IDE Android Studio Android Studio >
Tools > Android > AVD Manager. Si no tienes un device, créalo y si ya lo tienes solamente
arráncalo.
Una vez que ya tienes los dos plugins: Flutter y Dart estarás listo para crear un nuevo proyecto de
Flutter, ve a File > New Flutter Project
Escribe el nombre de la aplicación, en mi caso usé: flutter_app.
En la parte superior izquierda deberás ver encendidos los emuladores iOS y Android que iniciamos
en pasos anteriores.
Arranca el proyecto dando play y seleccionando el emulador de tu preferencia, y verás corriendo
una aplicación que te muestra el número de veces que pulsas el Floating Action Button.
NOTAS:
El hardware en android es uno de sus fuertes y ésto es porque android nos permite tener acceso a
todo el hardware del dispositivo, podemos tener acceso a la camará, cualquier dispositivo físico
que se conecte por usb, el micrófono, bocina, botones físicos.
Android nos provee de clases especiales desde la parte nativa para poder acceder a ellos, entonces
consumirlos y utilizarlos y construir nuestras propias aplicaciones que manipulen el hardware de
diferente tipo de teléfonos android.
A partir de android marshmallow siempre tenemos que solicitar permisos de forma dinámica, en
android ya se solicitaban permisos, pero ahora lo hacemos cada vez que el usuario va a utilizar esa
especificación de hardware desde la aplicación.
Podemos hacer aplicaciones que se sincronicen con otros dispositivos, pero generalmente siempre
tendremos que instalar en el desarrollo de la aplicación, tendremos que instalar la librería que nos
permite tener la comunicación con ese hardware, por sí solo el proyecto no funcionará.
OTRO EJEMPLO:
En Android es posible acceder a todo el hardware del dispositivo (botones, cámara, micrófono,
etc.) mediante clases especiales nativas respectivas para nuestras aplicaciones.
A partir de Android 5.0 se solicitan permisos de manera dinámica, pidiendo permiso cuando se van
a usar por primera vez.
Para el hardware adicional que se conecte al dispositivo se necesita usar la librería o SDK para
poder comunicarte con el dispositivo externo y usarlo en tu aplicación.
RESUMEN
Podemos agregar nuevo hardware como por ejemplo proyectos de arduino, nvidia jet o raspberry
pie, pero necesitamos las librerías para que se integren a nuestro proyecto.
OTRO RESUMEN
Se puede acceder y utilizar al hardware del dispositivo, considerando que desde la versión Android
6 Marshmallow, se solicitará permiso para manipular el hardware del dispositivo Android.
Es posible acceder a un hardware externo conectado al dispositivo, pero el proveedor tendrá que
proporcionar el SDK para instalar la librería y poder establecer la comunicación de la aplicación
con ese hardware.
SDK: es el acrónimo de “Software Development Kit” (Kit de desarrollo de software). El SDK reúne
un grupo de herramientas que permiten la programación de aplicaciones móviles.
1.- File (clase de java): Incluir y dejar disponible en el celular, txt, png, etc etc, puede vivir en la
memoria interna o externa.
2.- SharedPreference: Se compone a partir de datos primitivos del tipo clave-calor, vivira en el
dispositivo y dentro del paquete de la aplicacion.
3.- Bases de datos (SQLite): tipos de datos complejos, trabaja la información en relaciones de
datos, dentro del paquete de la aplicacion, encriptar en la SD Card,
4.- Web service: Persistencia traspasa la aplicacion por medio de internet, base de datos interna
y/o externa en otro servidor, el dispositivo requiere tener conexion a internet.
File y SharedPreferences
1re ejemplo:
1er Nivel “Files”: Crea un archivo de cualquier tipo. Se puede trabajar de forma nativa con la clase
“file” en Java/Kotlin.
2do Nivel “Shared Preference:” Son mas complejos y ocupa una estructura Xml File y trabaja de
modo clave/valor.
2do ejemplo
File permite crear archivos de cualquier tipo con capacidad de guardar información con nuestro
propio formato.
Aquí se debe guardar los datos
Se instala
Se ingresa el modo
Base de Datos: Para trabajar con datos estructurados, complejos y relacionales. Se almacenan
dentro del dispositivo, pero se puede almacenar externamente. Aunque, puede que la información
se vea vulnerable. Por lo que, los datos se deben encriptar para proteger la información.
SQLite es un motor de base de datos que emplea Android. En la cual, las aplicaciones pueden
guardar su información con las preferencias de los usuarios con data más extensa, a comparación
de Shared Preferences.
Los datos viven, mientras la aplicación viva. En caso, se desinstale la app, lo datos se perderán.
Content Provider (Proveedor de Contenido): Permite acceder a las bases de datos de otras
aplicaciones que estén proveendo contenido. Ej. Consumir datos de los contactos del teléfono.
No requieren de conexión a internet.
Web Service: Los datos se pueden almacenar también en una base de datos que se encuentra en
alguna parte de internet. Antes, es necesario identificar si el dispositivo puede acceder a internet.
Además, podemos crear validaciones para limitar la cantidad de datos a consumir. Permite,
trabajar con aplicaciones off-line.
Los servidores deben estar siempre online para que los datos estén disponibles. Para ello, se
puede usar plataformas Cloud. Por ej. Azure, Amazon Web Service, Firebase, etc.
Otro ejemplo
Los Content Providers (proveedor de contenido para otras aplicaciones) nos ayudan a definir datos
más complejos que estén disponibles a otras aplicaciones, como por ejemplo:
Tenemos dos aplicaciones y necesiten tener comunicación de datos una con la otra, esto es muy
beneficioso ya que no utilizan la Red de Internet, son datos en modo Offline.
Entonces para que las dos apps compartan datos no necesitan estar conectadas a internet, pueden
usar un content providers como intermediario para acceder a la base de datos local que vive en el
teléfono.
Desafortunadamente al desinstalar la aplicación estos datos se borran y cuando la instales otra vez
estos datos empiezan desde cero.
En cuanto a Network podemos usar un servidor, dará una persistencia mayor a los datos, será una
forma de backup.
Como funciona el network, la Aplicación móvil se conectará al servidor a través de una URL que se
conoce como un endpoint que accederá al webservice, envía la solicitud al servidor si quiere
enviar datos y el servidor la almacena y le regresa una respuesta a la app móvil. Si la app móvil
está solicitando un conjunto de registros de clientes, el servidor hace su consulta a su base de
datos interna y le devuelve una cantidad de registros de clientes, y la app lo único que hará será
mostrar datos.
El servidor necesitará estar siempre Online, de lo contrario la aplicación ya no tendrá acceso a esos
datos.
Podemos contratar intermediarios que nos ayuden a mantener online nuestra aplicación
funcionando, podemos usar:
Otra explicación
<h4>Bases de datos</h4>
La forma de trabajar con bases de datos es con SQLite, está diseñado para dispositivos con
hardware limitado y es muy flexible. El almacenamiento es solo accesible durante el ciclo de vida
de la aplicación, cuando se desinstale la aplicación los datos se perderán. Se recomienda para
datos complejos y relacionados entre sí.
<h4>Content Providers</h4>
Sirven para proveer datos accesibles para diferentes aplicaciones, lo que hace este método es
tener una conexión a una base de datos del sistema operativo y el content provider ofrece
métodos a las aplicaciones para crear, eliminar, consultar o actualizar la base de datos.
<h4>Network</h4>
Este método va más allá del ciclo de vida de la aplicación, ya que los datos son almacenados en un
servidor que de una persistencia a los datos. La aplicación, mediante internet, realizará peticiones
al servidor a través de un WebService y el servidor le devolverá la información que solicitó. El
servidor siempre debe estar en línea para que no se pierda la persistencia.
Tipos de Testing en Android y UI Test
Existen algunos tipos de pruebas que podemos ir ejecutando progresivamente a nuestras apps.
Éstas se pueden ver ubicadas en la siguiente pirámide desde la base hasta la punta:
Las pruebas de unidad local son test pequeños que a medida que vas generando código lo vas
probando rápidamente en tu computadora. También puedes programar código automatizado que
ejecute una prueba.
Las pruebas de interfaz de usuario son totalmente enfocadas en el flujo de la interfaz de usuario,
con esto nos aseguramos que las tareas que debe realizar el usuario en la aplicación funcionen
como se espera.
Android Studio te ayudará a llevar los procesos de Testing que requieren tus apps, posee
herramientas que nos ayudan a lograr esto. Investiga productos, frameworks, etc. que te ayudan a
ejecutar cualquiera de los tipos de pruebas que vimos hace un momento, compartelos en la
sección de comentarios.
TIPOS DE TESTING EN ANDROID
Es un paso que NO SE PUEDE OMITIR ya que este garantiza la calidad de nuestra app en los
diferentes tipos de dispositivos, los tipos de prueba son:
Locales: Son pequeños test que a medida que se va generando código se va probando.
Google Play Store es la tienda oficial de aplicaciones android, en ella encontrarás todo el catálogo
de aplicaciones que puedes instalar en tu dispositivo.
Como desarrollador móvil te interesará entrar y dejar disponibles tus aplicaciones para que todo el
mundo pueda conocer tu trabajo. El único requisito para lograr esto es obtener una cuenta de
desarrollador de Google Play. Para ello deberás:
En la Google Play Console podrás administrar todas las fases de publicación de tu app, además de
probar y recopilar datos antes de lanzar o incluso una vez que ya lo hiciste, puedes asignar precios
y manejar informes de ventas, ver y administrar comentarios de tus usuarios, tener estadísticos y
datos para entender y mejorar la estabilidad de tu producto. Todo esto ofrece la consola de
Google Play entre muchas otras cosas más.