Entradas

Mostrando entradas de julio, 2019

Fundamentos de Android: comunicación entre actividades

Imagen
Hasta ahora hemos visto aplicaciones sencillas con una sola actividad pero lo más común es que una aplicación tenga varias actividades , y además que enviemos datos desde una a otra actividad. Vamos a verlo con un ejemplo.

Fundamentos de Android: Interacción del usuario

Imagen
En esta entrada vamos a practicar agregando cierta interacción del usuario a una aplicación, y para ello vamos a retomar la aplicación About que diseñamos en la entrada Fundamentos de Android: Editor gráfico de diseño . Concretamente vamos a permitir al usuario introducir un texto y pulsar un botón para actualizar un elemento visual con ese texto.

Operaciones con colecciones VII: Ordenando los elementos

Imagen
En ciertos tipos de colecciones, el orden de sus elementos es un aspecto importante. Además, hay que tener en cuenta que dos listas con los mismos elementos no son iguales si sus elementos están ordenados de manera diferente. En Kotlin, los objetos se pueden ordenar siguiendo distintos criterios

Fundamentos de Android: Editor gráfico de diseño

Imagen
En esta entrada vamos a practicar con el editor gráfico de diseño de Android Studio . Para ello vamos a crear una aplicación con una actividad del tipo "Acerca de" ( About ) que mostrará información utilizando distintos elementos visuales ( views ), como un TextView , una ImageView y un ScrollView , cuyo diseño se organizarán en un LinearLayout

Funciones estándar (Scope Functions) III: apply y also

Imagen
Tercera entrega sobre las funciones estándar (revisar las entradas Funciones estándar I: let y Funciones estándar II: with y run ), que se centra en las funciones apply() y also()

Android útil: Cambiar icono de aplicación

Imagen
Cada nueva aplicación creada con Android Studio cuenta con un icono de lanzamiento por defecto que representa la aplicación y sirve para iniciarla. Esta entrada breve y muy gráfica, a modo de tip práctico, muestra un método rápido para cambiar el icono de lanzamiento de una aplicación en Android sustituyendo el icono por defecto por una imagen prediseñada

Operaciones con colecciones VI: Recuperar elementos

Imagen
Continuando con la serie sobre Operaciones con colecciones , en esta entrada veremos que las colecciones en Kotlin también proporcionan un conjunto de funciones para recuperar elementos individuales de las colecciones, lo que se aplica tanto a listas como a los conjuntos, utilizando para ello distintos métodos para referirse a los elementos

Funciones estándar (Scope Functions) II: with y run

Imagen
Después de presentar las funciones estándar en Kotlin, ver las principales diferencias entre ellas y detenernos en la función let (ver Funciones estándar (Scope Functions) I: let ), en esta segunda parte veremos otras dos funciones estándar: with y run

Fundamentos de Android: Plantilla de Actividad Básica

Imagen
Ya hemos visto que cuando iniciamos un nuevo proyecto, Android Studio proporciona plantillas de diseño para nuestra aplicación. Cada plantilla incorpora el esquema básico de una actividad y una interfaz de usuario, lo que nos pueden resultar útil para ahorrar tiempo y para seguir las prácticas recomendadas para el diseño, puesto que a partir de una estructura básica podemos ampliar y personalizar cada plantilla según nuestras necesidades

Funciones estándar (Scope Functions) I: let

Imagen
La biblioteca estándar de Kotlin contiene varias funciones cuyo único propósito es ejecutar un bloque de código dentro del contexto de un objeto. Cuando se llama a una función de este tipo con una expresión lambda se forma un ámbito ( scope ) temporal dentro del cual se puede acceder al objeto sin su nombre. Kotlin dispone de cinco funciones de este tipo: let, run, with, apply y also , que en conjunto reciben el nombre de Scope Functions (funciones de alcance) o funciones estándar

Ejercicio: Diccionario (Map) con valor por defecto

Imagen
En esta entrada vamos a ver cómo Kotlin maneja un valor predeterminado en un diccionario ( Map ), y vamos a practicar con soluciones alternativas que llegan al mismo resultado, intentando escribir un código cada vez más simple y conciso. Para ello supongamos que queremos escribir una función genérica que toma una colección como argumento y devuelve un diccionario que contiene los elementos de la colección (claves) asociados a su número de ocurrencias (valores): fun < T > contarFrecuencia ( valores : Collection < T >): Map < T , Int > Vamos a ver distintas maneras de hacerlo. En la primera, usamos un MutableMap y al iterar sobre cada elemento de la lista comprobamos si ese valor aparece en el diccionario: si no es así ( null ), le asignamos un conteo inicial de 1; de lo contrario incrementamos el contador: fun main () {     val letras = listOf ( "a" , "b" , "a" , "d" , "c" )     println ( contarElem

Operaciones con colecciones V: Extraer partes de una colección

Imagen
La biblioteca estándar de Kotlin contiene funciones de extensión que sirven para recuperar partes de una colección (revisa otras operaciones con colecciones ). Estas funciones utilizan varias formas, como listar sus posiciones explícitamente o especificar el tamaño del resultado, para obtener una colección resultante que selecciona y toma unos elementos de la colección. Algunas de estas funciones son slice(), take() y takeLast(), drop() y dropLast(), chunked() y windowed() . slice() devuelve una lista de elementos de la colección con unos índices determinados que se pasan como argumento, ya sea como un rango o como una colección de valores enteros: val numeros = listOf ( "uno" , "dos" , "tres" , "cuatro" , "cinco" , "seis" ) println ( numeros . slice ( 1 . .3 ))             // [dos, tres, cuatro] println ( numeros . slice ( 0 . .4 step 2 ))      // [uno, tres, cinco] println ( numeros . slice ( setOf ( 3 ,