Android

RecyclerView con múltiples vistas / ViewHolders en Android

Los elementos dentro de un RecyclerView de Android son del mismo tipo y tienen la misma apariencia; pero en ocasiones vamos a necesitar mostrar distintos elementos o vistas dentro del mismo RecyclerView.

Por ejemplo, en una lista de elementos tal vez solo mostramos algunos, y al final una opción de “Ver más” o “Ver todos”.

Para lograr esto solo tenemos que modificar el adaptador

Continue reading…

4 - Visitar página web generada con ASP en Android

Programar en ASP desde Android con Termux

En otro post vimos cómo instalar PHP y Apache en Android; ahora veremos cómo programar en ASP desde Android.

Para tener disponible ASP en Android vamos a instalar el paquete llamado mono-xsp4; pero antes de ello necesitamos instalar Mono project y el compilador de C#.

4 - Visitar página web generada con ASP en Android

Componente de ASP en Android

Al final podremos iniciar un servidor ASP en Android y visitar el navegador para renderizar páginas con ASP; todo desde nuestro teléfono o tableta.

Continue reading…

5 - Compilar y ejecutar hola mundo

Instalar Java en Android para comenzar a programar

Sí, estás leyendo bien: en este post veremos cómo instalar java en Android para compilar código fuente de Java (usando javac) y ejecutar el bytecode con java usando un dispositivo Android.

Es decir, vamos a instalar los paquetes necesarios para programar en Java desde Android.

Para esto no vamos a necesitar que el dispositivo esté rooteado, simplemente que soporte la app de Termux corriendo con Ubuntu.

Requisitos previos

Continue reading…

Escritorio xfce4 en Ubuntu sobre Android - VNC Android

Interfaz gráfica en Ubuntu sobre Android con VNC y Xfce

Ya vimos cómo instalar Ubuntu sobre Android y también compilamos un programa en C# en Android.

Todo eso lo hicimos desde la terminal pero, ¿podríamos agregar una interfaz gráfica? la respuesta es que sí y eso es lo que voy a exponer hoy:

Cómo instalar el escritorio xfce4 en Android y poner un servidor VNC para conectarnos ya sea desde Android, Windows o cualquier plataforma que soporte el protocolo.

Al terminar seremos capaces de mostrar el escritorio en Ubuntu desde Android:

Escritorio xfce4 en Ubuntu sobre Android - VNC Android

Escritorio xfce4 en Ubuntu sobre Android – VNC Android

Continue reading…

Android y C# - Compilar hola mundo

Android y C#: compilar y ejecutar código de C sharp con Mono Project

Están llegando grandes cosas al mundo de Linux y sobre todo de Android. No sé la fecha exacta (seguramente han pasado años) pero C# ya está disponible para Linux con el proyecto Mono.

Ubuntu también está disponible para Android como lo vimos en otro post, así que basta con instalar los paquetes sobre Ubuntu y podremos programar en C# desde Android; sin sacrificar el rendimiento ni esas cosas.

Android y C# - Ejecutar hola mundo

Android y C# – Ejecutar hola mundo

Recuerda que si quieres instalar C# en Ubuntu (pero no en Android) puedes mirar este post.

Continue reading…

Android y SQLite - Couldnt read row 0 col -1

Android: solución a Couldn’t read row 0, col -1 from CursorWindow

Programando algunas cosas en Android con SQLite me topé con un error que dice algo así (puede variar según tu caso):

java.lang.IllegalStateException: Couldn’t read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.

Esto fue al usar el método getColumnIndex y los métodos de getXXX de la clase Cursor.

Hoy voy a explicar cómo solucionar ese error y cuáles son sus causas en Android, no importa si es en Java o en Kotlin, pues Cursor es de Java.

Continue reading…

Decompilar APK (app de Android) y obtener código fuente (casi) original

Una de las debilidades de Java (y otros lenguajes que compilan a bytecode) es que se puede decompilar o descompilar, como le quieras llamar. O decompile, si hablas inglés.

Hoy vamos a ver un decompilador de aplicaciones de android, es decir, de apps con extensiones APK.

Estuve probando el decompilador y funciona de maravilla, obtiene casi el mismo código que el original.

Para hacer esta demostración y no hacer nada ilegal, voy a usar el CRUD de SQLite con Android cuyo código fuente está aquí, y su APK está aquí.

Continue reading…

Instalar Node.js y NPM en Android con Termux

En este post vamos a ver cómo tener el entorno de Node.Js y el gestor de paquetes NPM en Android.

Al finalizar la instalación y configuración seremos capaces de ejecutar una aplicación de Node.js como si tuviéramos un servidor Linux.

También veremos cómo instalar dependencias usando el comando npm install, pues es una cosa posible en Android gracias a Termux.

Concretamente vamos a instalar la versión 6.9.0 de NPM y la versión 12.3.1 de node, aunque tal vez cuando leas este post se instale una versión más nueva.

Continue reading…

Android - RadioGroup y RadioButton con Java

RadioGroup y RadioButton en Android – Ejemplos

En una aplicación móvil para Android que estoy desarrollando me vi en la necesidad de agregar algunos widgets de tipo RadioButton. Recordemos que estos widgets van dentro de un RadioGroup para que solamente se pueda seleccionar uno.

Android - RadioGroup y RadioButton con Java

Android – RadioGroup y RadioButton con Java

Veremos entonces cómo poner los RadioButton dentro de un RadioGroup y saber cuál elemento está seleccionado.

Continue reading…

Lector de código de barras con Android

Leer código de barras con Android y ZXing (programación de app)

En este post voy a enseñarte cómo leer o escanear códigos de barras con Android usando la librería de Zebra Crossing (ZXing) con Java.

Además de que se permitirán leer códigos de barras también se podrán escanear códigos QR.

Lector de código de barras con Android

Lector de código de barras con Android

La app que vamos a programar será compatible con versiones de Android 4.4 y superiores; también vamos a manejar los permisos de acceso a la cámara en tiempo de ejecución y en el manifiesto.

Al final tendremos una app que lanza el lector de códigos de barras y devuelve el texto leído en forma de cadena.

Continue reading…