Entradas

Mostrando entradas de junio, 2019

Fundamentos de Android: Niveles API

Imagen
A la hora de desarrollar aplicaciones para Android, una de las cosas que hay que tener en cuenta es la gran cantidad de dispositivos distintos en los que potencialmente se podría ejecutar, no solo smartphones, con distintas características de hardware y distintas versiones de sistema operativo, sino otros dispositivos como tablets, entre otros. Por eso se deben considerar ciertas restricciones y estrategias de compatibilidad cuando se escriben apps para Android. Para hacer esto dos buenos métodos son, por un lado, orientar la aplicación a un nivel específico de la API de Android (versión) y, por otro, usar las bibliotecas de Android Jetpack para admitir dispositivos más antiguos, puesto que cada versión del sistema operativo viene con nuevas características y funcionalidades. Vamos a analizar ambas técnicas. Recuerda que cuando se crea un proyecto con Android Studio , en la ventana ' Configure your project ', en ' Minimun API level ' se indica un nivel mínimo e

Fundamentos de Android: Recursos de imagen

Imagen
Después de examinar la estructura básica de una aplicación para Android con Kotlin, en esta y posteriores entradas vamos a seguir explorando los fundamentos y componentes de cualquier aplicación , y ahora vamos a tratar concretamente sobre los recursos de imagen . Para ello vamos a continuar trabajando con el proyecto ' TirarDados ' y le vamos a agregar imágenes a esa aplicación (repasa la entrada Anatomía básica de una app para continuar el proyecto donde se dejó). Recuerda que dejamos esa aplicación con un botón que simulaba el lanzamiento de un dado y cada vez que se pulsaba aparecía en pantalla el valor del dado (un número de 1 a 6). Nuestro objetivo ahora será cambiar ese número por una imagen de un dado que muestre la puntuación obtenida al lanzarlo. ¡Empezamos! Abrimos el proyecto y con la vista Android activada, desplegamos la carpeta res . En la carpeta res se archivan los recursos que incluye cualquier aplicación, como imágenes e iconos, diseños asociados a l

Clases anidadas y clases internas

Imagen
Dentro de una clase se puede definir otra clase que se conoce como clase anidada ( Nested Class ), y como esta clase anidada es miembro de la clase exterior, se puede usar la notación del punto para acceder a la clase anidada y a sus miembros:

Operaciones con colecciones IV: Operaciones de agrupamiento

Imagen
Retomando la serie dedicada a las funciones para realizar operaciones con las colecciones , en esta entrada nos centramos en las operaciones de agrupamiento ( Grouping ). La biblioteca estándar de Kotlin proporciona funciones de extensión para agrupar los elementos de una colección, siendo la función básica groupBy() . Esta función toma como argumento una función lambda y devuelve un diccionario ( Map ). En este diccionario cada clave es el resultado de la función lambda y cada valor correspondiente es una lista de los elementos de ese resultado. Esta función se puede utilizar, por ejemplo, para agrupar una lista de elementos tipo String por su primera letra. val lista = 1 . rangeTo ( 10 ). toList () val paresImpares = lista . groupBy { it % 2 } println ( paresImpares ) // {1=[1, 3, 5, 7, 9], 0=[2, 4, 6, 8, 10]} groupBy() también se puede utilizar con un segundo argumento lambda, una función de transformación del valor, y en este caso las claves producidas por la f

Juego del Ahorcado para consola

Imagen
En esta entrada publicamos una versión muy básica pero funcional del clásico juego de lápiz y papel El Ahorcado para consola. Este código fue escrito hace unos cuantos meses como mero entretenimiento y para familiarizarnos con Kotlin, y quizá este pequeño programa fue el germen de la app para Android que recientemente hemos publicado en F-Droid , aunque más que otra cosa sirvió como idea de proyecto. Posiblemente el código es muy mejorable, pero quiero igualmente compartir aquí esta versión comentada por si a alguien que está empezando con Kotlin le parece de interés. Además puede servir para repasar conceptos vistos en entradas anteriores. La dinámica del juego consiste en que un jugador escribe la palabra secreta y otro jugador intenta descubrirla antes de morir en la horca (al tercer error). Para que la palabra secreta no se visualice en pantalla cuando se escribe se utiliza System.console().readPassword("Introduce la palabra secreta: ") lo que obliga a ejecutar e

Kotlin en internet

Imagen
ÚLTIMA ACTUALIZACIÓN: 25 de junio de 2019 A continuación se publica un listado de referencias de sitios webs y blogs , preferiblemente en español (dentro de lo posible), cuya temática principal es Kotlin . Se trata de sitios activos, esto es, que se actualizan con cierta regularidad, y que no se limitan a recursos de formación como tutoriales, libros y cursos que ya están incluidos en la entrada Recursos gratis para aprender Kotlin . Estos sitios aportan información de actualidad, eventos y artículos sobre conceptos y ejemplos de Kotlin y Android: Kotlin Blog . Kotlin Official Blog  Kotlin.es . La primera comunidad de Kotlin en español  Kotlin para Android . Aprende a desarrollar apps para android con Kotlin  Kotlin Expertise Blog . Professional Kotlin Development  Kt. Academy . Site with mission to simplify Kotlin learning  Antonio Leiva . Kotlin for Android development made easy DevExperto Blog Karumi Blog   SuperKotlin Blog (un poco abandonado) Y por supuesto, Kotli

Juego de Las Siete y media en consola

Imagen
En esta entrada se publica una versión simple pero funcional del juego de cartas Las Siete y media para jugar en consola (es posible que más adelante publiquemos la versión gráfica y más completa para Android). El usuario juega contra el ordenador, que siempre es la banca, con una baraja española de 40 cartas. Primero el jugador va pidiendo carta hasta que se planta con la puntuación al descubierto (o se pasa y entonces pierde); después la banca empezará a sacar cartas intentando mejorar o igualar la puntuación del jugador (se ha establecido un modo agresivo de juego para que la banca siempre intente igualar o superar la puntuación del jugador). Este ejemplo sirve para ilustrar y repasar varios conceptos vistos en entradas previas relativos, entre otros, a las estructuras condicionales y de repetición , las clases , las funciones , las colecciones y la entrada y salida de datos en consola. Además, como veremos más adelante cuando hablemos de las corrutinas en Kotlin ( kotlin

Anatomía de una app básica

Imagen
Después de una aproximación inicial a Android Studio y crear y ejecutar nuestra primera app de Android con Kotlin ( Hola Mundo con Android Studio ), en esta entrada vamos a repasar algunos de los componentes principales de una aplicación de Android y añadiremos un botón para agregar cierta interactividad a nuestra aplicación. ¡Manos a la obra! Abrimos Android Studio y creamos un nuevo proyecto a partir de una actividad vacía ( Empty Activity ) que llamaremos TirarDados (recuerda señalar Kotlin como lenguaje y seleccionar los Artefactos AndroidX): Ahora nos aparecerán abiertos dos archivos fundamentales: MainActivity.kt y activity_main.xml . El primero es un ejemplo de una actividad . Una Activity es una clase básica de Android con una interfaz de usuario (UI) de la aplicación y que puede recibir eventos de entrada para que los usuarios puedan interactuar y realizar acciones. Las actividades están conformadas por dos partes: la parte lógica del código en el archivo MainA