Mostrando entradas con la etiqueta Android. Mostrar todas las entradas
Mostrando entradas con la etiqueta Android. Mostrar todas las entradas
domingo, 23 de septiembre de 2018
Nuevo proyecto: Juego para Android
Hola. Esta entrada la escribí en mi antiguo blog de WordPress, en marzo de 2013. Tristemente a la fecha no he siquiera iniciado el proyecto, e incluso ha sido reemplazado por otros... pero quién sabe, tal vez algún día retome la idea. Por completitud, les dejo la entrada original a continuación (con algunas notas nuevas en rojo 😅):
Después de algunos sucesos, me he sentido motivado y animado a iniciar un proyecto a mediano-largo plazo, que consiste en un juego para Android. El único detalle está en que jamás en mi vida he hecho un juego, y mucho menos un programa para Android, jejeje... Lo más que hice fue una guardar una tabla de resultados para un proyecto en la materia de Gráficos por Computadora de la universidad. Pero me gusta correr antes que caminar (en este caso en particular), así que quiero hacer un juego 3D. A continuación describo mis ideas.
El juego
De momento, mi idea es que el juego sea más o menos estilo Star Fox 64, pero solamente en el espacio. ¿Por qué? Primero, porque me gustan los aviones. Segundo, porque creo que es más fácil que la nave siga una ruta predefinida, en vez de un mundo abierto. Tercero, porque creo que es difícil hacer un terreno y que el avión interactúe con él, así que mejor contar con la libertad del espacio.
![]() |
Star Fox 64 |
Por otra parte, quiero tomar las partes más adictivas que se me ocurran de juegos como Space Invaders (variedad de enemigos con dificultad variable), Asteroids (asteroides, jejeje) y Fury 3 (múltiples armas agotables), para hacerlo entretenido. Finalmente, quiero que parte o todo el juego sea de código abierto (open source), pero hasta el momento en que lo termine, o que ya esté considerablemente maduro.
![]() |
Asteroids |
![]() |
Fury 3 |
Algo importante que quiero es que las misiones no estén quemadas en el juego, sino que sea posible programarlas mediante algún metalenguaje, como YAML o XML o JSON, o bien un lenguaje de programación, pero de forma completamente externa al juego. Es decir, el kernel sería el juego, y las misiones serían como plugins. E incluso, me gustaría que los usuarios pudieran programar las misiones a su creatividad, dejando abierto todo un mundo de posibilidades. (Se me ocurrió un año antes que anunciaran Super Mario Maker 😮😮😮)
¿Por qué para Android?
Bueno, porque creo que para esta plataforma los gráficos no son lo principal, y considerando que soy un principiante (o menos que eso, jajaja...), creo que es adecuado. En segundo lugar, me llama la atención los juegos en dispositivos móviles, y creo que hay muchas posibilidades. Tercero, espero algún día poder publicar el juego en Google Play, y creo que los usuarios de Android están más abiertos a juegos pequeños.¿Cómo hacer el juego?
Bueno, usualmente me gusta reinventar la rueda, y hacer todo desde cero, pero para este caso creo que sería muy difícil, así que mejor probaré primero con algún motor de juegos ya existente. Las características que espero del motor son las siguientes:- Idealmente que sea de código abierto, y gratuito. Si no es gratuito, que al menos pueda usarlo gratis para la etapa de desarrollo, pruebas y uso personal, y que adquiera la licencia (relativamente barata) en caso de que lo quiera publicar.
- Que permita importar modelos 3D desde programas como Blender, o bien algún programa CAD gratuito.
- Que no sea muy pesado o sobrecargue la memoria RAM de los dispositivos móviles.
- Muy ideal sería que fuera multiplataforma, es decir, que no se limitara a Android, sino que también permitiera desarrollar juegos para computadoras, e incluso para consolas.
¿El plan? ¡Cuál plan!
Son bromas. Ahorita, el plan es simple: conseguir un motor de juegos para Andorid que cumpla los requisitos previos. Una vez lo encuentre, veremos que estrategia seguir...Saludos.
Publicado originalmente el 2013-03-24, en https://itsouvenirs.wordpress.com/2013/03/24/nuevo-proyecto-juego-para-android/.
viernes, 25 de agosto de 2017
Mi primera aplicación móvil
Hola a todos. Quería compartirles un vídeo que re-encontré hace poco, de mi primera aplicación móvil, que hice alrdedor del año 2013 (ya me sentí viejo). En esos tiempos tenía casi nulo conocimiento de Android, y del funcionamiento de aplicaciones móviles en general, por lo que decidí hacerla con Phonegap, ya que me permitía utilizar tecnologías que ya tenía algo de tiempo de conocer y siempre me han gustado.
La aplicación fue hecha para unos amigos que querían iniciar un negocio proporcionando un sistema en el que pequeños negocios se pudieran anunciar, publicar sus eventos, menús, etc., y que el público pudiera verlos a través de una aplicación móvil. El diseño y los íconos fueron proporcionados por ellos.
La aplicación en sí fue construida utilizando AppFramework de Intel (posiblemente la versión 1, no recuerdo), que era un framework para Javascript que utilizaba el patrón MVC, proveía una versión liviana de JQuery (jqLite), y Dot.js para la renderización de las vistas. Adicionalmente incluía componentes que emulaban los controles nativos de iOS.
La aplicación mostrada en el vídeo fue una de las versiones iniciales de la aplicación, en la que aún no había incluido el diseño elegido para la página de los negocios, y en la que el menú lateral era delgado. Este fue sustituido posteriormente por un menú más amplio, que incluía los títulos de las páginas en lugar de solo los íconos.
Fue una experiencia interesante que me permitió conocer y experimentar la creación de APIs web, y la forma en que estas interactuaban con las aplicaciones móviles. De hecho, mi primer servicio web y aplicación fue realizado para este proyecto.
Otros datos interesantes son:
- La aplicación fue desarrollada principalmente en entorno Linux, con el fin de utilizar herramientas gratuitas pero poderosas, como el lenguaje de programación PHP, el IDE Netbeans, y el gestor de bases de datos MySQL; pero también debido a que la computadora no tenía los recursos suficientes para correr el emulador de Android en Windows, y este corría de forma más eficiente en Linux. Adicionalmente, la versión de Linux que utilizaba era Manjaro (mi primera experiencia con una distro basada en Arch Linux), con el entorno OpenBox, lo que la hacía significativamente más rápida y liviana que Windows y muchas versiones de Linux.
- El vídeo fue grabado con una herramienta cuyo nombre no recuerdo, pero que irónicamente no poseía interfaz gráfica.
- La ventana del emulador fue posicionada sobre la vista previa de una imagen de un teléfono celular, ajustada al tamaño del emulador, para que pareciera que el emulador tenía un skin de teléfono celular.
lunes, 3 de noviembre de 2014
Extraer archivo de base de datos desde dispositivo Android
Para extraer los archivos de base de datos (y en realidad
cualquier otro archivo), podemos hacerlo utilizando las herramientas del SDK de
Android, ya sea desde la línea de comandos, o haciendo uso del File Manager
proporcionado por el Android Device Monitor.
Extraer base de datos desde línea de comandos
Para extraer archivos desde un dispositivo conectado a la
computadora o emulador activo, se hace uso del comando adb pull. Si hay un solo dispositivo conectado, se hace de la
siguiente manera:
adb pull /data/data/[mi.paquete.app]/databases/[mibasedatos.db] C:\ruta\destino
En donde el primer parámetro es la ruta complete del archive
a extraer del dispositivo, que en este caso es la base de datos; y el segundo
parámetro es la ruta destino dentro de la computadora. El segundo parámetro es
opcional, y si no se especifica, el archivo extraído se guarda en el directorio
actual.
Si hay varios dispositivos Android conectados a la
computadora, debe especificarse adicionalmente el serial del dispositivo, de la
siguiente manera:
adb -s [serial] pull /data/data/[mi.paquete.app]/databases/[mibasedatos.db] C:\ruta\destino
En donde [serial] corresponde al serial específico del
dispositivo. Cabe mencionar que para consultar los seriales de los dispositivos
conectados, se puede hacer ejecutando el comando:
adb devices
![]() |
El serial del dispositivo aparece en la primera columna a la izquierda, al ejecutar el comando. |
Extraer base de datos usando el Android Device Monitor
Para extraer el archivo de base de datos usando el File
Explorer del Android Device Monitor, basta con seleccionar el dispositivo en la
barra de dispositivos del monitor, ubicar y seleccionar el archivo en la ficha
del File Explorer, y presionar el botón
(Pull a file from the device), ubicado en la
parte superior derecha de la ficha.

Luego de esto se nos muestra una ventana de diálogo en la
que solamente hay que indicar el nombre del archivo y el directorio destino.
Aunque esta forma parezca la más fácil, puede resultar no
serlo, debido a que en algunos casos la carpeta data no puede ser vista desde
el File Explorer, debido a que no posee los permisos necesarios.
miércoles, 15 de octubre de 2014
Encontrar base de datos SQLite en dispositivo android
Cuando se está trabajando en una aplicación de Android que
hace uso de una base de datos SQLite, puede resultar necesario buscar el
archivo de esta dentro del sistema de archivos del dispositivo en el que se
están realizando pruebas, ya sea para verificar si esta se creó correctamente,
si los datos se están almacenando, entre otras cosas.
La base de datos de cada aplicación se ubica en la siguiente
ruta dentro del dispositivo:
/data/data/[mi.paquete.app]/databases/
¡La carpeta data está vacía!
Si estamos usando el File Explorer del Android Device
Monitor/DDMS para consultar los archivos del dispositivo Android, en
algunos casos puede resultar que el directorio /data en apariencia no posee
ningún contenido. Sin embargo, esto sucede debido a que esta carpeta no posee
los permisos necesarios para ver su contenido.
Si esto sucede, lo que hay que hacer es otorgar los permisos
necesarios para acceder a los archivos. Esto se puede hacer en dispositivos
rooted y emuladores a través del ADB Shell, para entrar en modo terminal a
nuestro dispositivo.
Para iniciar el ABD Shell, se ejecuta el siguiente comando
en la terminal:
adb shell
Si hay varios dispositivos conectados, es necesario indicar el serial del dispositivo, de la siguiente forma:
adb -s [serial] shell
En donde [serial] es el serial del dispositivo deseado.
El serial del dispositivo se puede obtener ejecutando el comando adb devices
El serial del dispositivo aparece en la primera columna a la izquierda, al ejecutar el comando.
Una vez estando en la terminal del dispositivo, se deben iniciar modo super-usuario (usuario root):
$ su
Luego, hay que ejecutar el siguiente comando, para otorgar permiso completo de acceso a la rama de carpetas y archivos para todos los usuarios:
# chmod 777 /data /data/data /data/data/[mi.paquete.app] /data/data/[mi.paquete.app]/databases /data/data/[mi.paquete.app]/databases/*
Finalmente, para salir de la terminal:
#exit $exit
Puede que no sea necesario otorgar control total sobre las carpetas,
habría que probar cuáles serían los permisos mínimos dependiendo de lo que se
necesite hacer con los archivos.
Con la tecnología de Blogger.