El gran libro de Android. Jesus Tomás Gironés
en las librerías AndroidX5, que son parte del proyecto Jetpack6. En las librerías AndroidX se incluye tanto las librerías de compatibilidad como los componentes de Jetpack.
A diferencia de la librería de compatibilidad, cada paquete de AndroidX tiene su propia versión, y se mantienen y actualizan de manera separada. Todos los paquetes están en un espacio de nombre que empieza por androidx.*.
Algunos paquetes muy usados se muestran a continuación:
• v4 Support Library: (androidx.legacy:legacy-support-v4) Esta librería permitía utilizar muchas clases introducidas en la versión 3.0 cuando trabajábamos con un API mínimo. En la actualidad ya no es necesaria utilizarla, dado que ya es recomendable utilizar como API mínimo la versión 4.0 o, superior. Puede usarse en una aplicación con nivel de API 4 (v1.6) o superior. Incorpora las clases: Fragment, NotificationCompat, LocalBroadcastManager, ViewPager, PagerTitleStrip, PagerTabStrip, DrawerLayout, SlidingPaneLayout, ExploreByTouchHelper, Loader y FileProvider.
• appcompat: (androidx.appcompat) Permite utilizar un IU basado en la Barra de Acciones siguiendo especificaciones de Material Design. Se añade por defecto cuando creamos un nuevo proyecto. Incorpora las clases: ActionBar, AppCompatActivity, AppCompatDialog y ShareActionProvider.
• recyclerview: (androidx.recyclerview) Incorpora la vista RecyclerView, una versión mejorada que reemplaza a ListView y GridView.
• constraintlayout: Da soporte al layout ConstraintLayout.
• preference: (androidx.preference) Incorpora las clases CheckBoxPreference y ListPreference usadas en preferencias.
• cardview: (androidx.cardview) Incorpora la vista CardView, una forma estándar de mostrar información especialmente útil en Android Wear y TV.
• palette: (androidx.palette) Incorpora la clase Palette, que permite extraer los colores principales de una imagen.
• mediarouter: (androidx.mediarouter) Da soporte a Google Cast.
• Design Support Library: (com.google.android.material) Librería que incorpora varios componentes de Material Design.
Si tienes dudas sobre los nuevos paquetes utilizados consulta la siguiente tabla: https://developer.android.com/jetpack/androidx/migrate
1.7. Creación de un primer proyecto
Utilizar un entorno de desarrollo nos facilita mucho la creación de aplicaciones. Esto es especialmente importante en Android dado que tendremos que utilizar una gran variedad de ficheros. Gracias a Android Studio, la creación y gestión de proyectos se realizará de forma muy rápida, acelerando los ciclos de desarrollo.
Para crear un primer proyecto Android, con Android Studio sigue los siguientes pasos:
1. Selecciona File > New > New Project...
2. En primer lugar, podrás indicar la plataforma para la que quieres desarrollar (teléfonos y tabletas, Wear OS, TV, ...) y el tipo de actividad inicial que quieres en tu aplicación:
En este curso nos centraremos en las aplicaciones para teléfonos y tabletas, por lo que has de seleccionar siempre la primera pestaña. Has de saber que la plataforma Android también permite desarrollar aplicaciones para dispositivos wearables, Google TV, Android Auto o dispositivos de internet de las cosas.
Observa cómo para este tipo de aplicación puedes elegir diferentes clases de actividades que incorporen ciertos elementos de uso habitual, como menús, botones, anuncios, etc. El concepto de actividad será explicado más adelante. Selecciona Empty Activity para añadir una actividad inicial.
3. Pulsa Next para pasar a la pantalla donde se rellenan los detalles del proyecto. Puedes dejar los valores por defecto:
A continuación, vemos una descripción para cada campo:
Name: Es el nombre de la aplicación que aparecerá en el dispositivo Android. Tanto en la barra superior, cuando esté en ejecución, como en el icono que se instalará en el menú de programas.
Package name: Indicamos el nombre de paquete de la aplicación. Las clases Java que creemos pertenecerán a este paquete. Como veremos a lo largo del curso, el nombre del paquete también es utilizado por Android para múltiples funciones. Por ejemplo, para determinar en qué directorio se instala la aplicación.
Save location: Permite configurar la carpeta donde se almacenarán todos los ficheros del proyecto.
Language: Selecciona Java o Kotlin, según el lenguaje con el que quieres programar la aplicación.
Minimum API level: Este valor especifica el mínimo nivel de la API que requiere tu aplicación. Por lo tanto, la aplicación no podrá ser instalada en dispositivos con una versión inferior. Procura escoger valores pequeños para que tu aplicación pueda instalarse en la mayoría de los dispositivos. Un valor adecuado puede ser el nivel de API 16 (v4.1), dado que cubriría prácticamente el 100% de los dispositivos. O el nivel de API 19 (v4.4), que cubriría más del 95% de los dispositivos.
Escoger valores pequeños para este parámetro tiene un inconveniente: no podremos utilizar ninguna de las mejoras que aparezcan en los siguientes niveles de API. Por ejemplo, si queremos utilizar el motor de animaciones de propiedades en nuestra aplicación, tendremos que indicar en este campo la versión 3.0, dado que esta API no aparece hasta esta versión. Pero, en este caso, nuestra aplicación no se podrá instalar en la versión 2.3.
Como se acaba de indicar escoger la versión mínima del SDK es un aspecto clave a la hora de crear un proyecto. Para ayudarnos a tomar esta decisión se indica en negrita el porcentaje de dispositivo donde se podrá instalar nuestra aplicación. En el apartado anterior se explica cómo se obtiene esta información. Pulsa en Help Me chosee para visualizar una gráfica donde se muestra los diferentes niveles de API y el porcentaje de usuarios que podrán instalarla la aplicación. Además si pulsas sobre un nivel te mostrará un resumen con las nuevas características introducidas en este nivel.
4. Deja el resto de valores por defecto y pulsa Finish para crear el proyecto. Deberías tener visible el explorador del proyecto (Project) a la izquierda. Abre el fichero MainActivity (situado en app / java / com.example.myapplication). Debe tener este aspecto: