viernes, 21 de junio de 2013

Portando Aplicaciones Qt a Android.

Buenos antes de empezar les comento que me llevó explorar cerca de 150 aplicaciones libres y trastear con más de 60 para checar su factibilidad de migración, QT es casi un terreno abandonado, no por ello muy bueno. La documentación de ejemplos es pobre y vieja y Ministro (las Libs) apenas ha portado QTCore y QTui; Aún así han hecho un gran trabajo, estoy checando la interactividad por callbacks QT - Java, pero la muy poca información que existe no me ayuda... en fin... un enorme trabajo que espero que lo aprecien.

Les listaré las apps y su correspondiente código fuente, así como su vínculo en Google Play:

QMetro

QMetro is a great App ported from Symbian and Open Source project.

QMetro it's a simple subway map for searching stations and calculating route. About 230 maps of subways are available. Maps have an open format and can easily be edited or created. By default the package includes biggest subways of the World, and you can easy download other available maps into this app.

QMetro es una sencilla aplicación para estudiar las línea de Metro del Mundo calculando el Tiempo de Travesía o de Estación a estación. Cerca de 230 mapas están disponibles en http://qmetro.cosasenmetal.com para su uso gratuito.


Notas de la Migración: Fue básicamente sencillo, pues ya tenía una UI para symbian, lo más dificil fue adaptar la ui para android. También les quiero comentar que el proyecto necesita ayuda para mejorar los Mapas: http://pmetro.su (En ruso).

App Store: https://play.google.com/store/apps/details?id=org.opensource.qmetro
Source Code: https://dl.dropboxusercontent.com/u/4009065/share/qmetro.7z
Original Source:  http://qmetro.sf.net

Lights Off! 1.0

In this puzzle game you have to switch all 5x5 lights off. Touch a light to switch it on/off. Switching a light will also switch adjacent lights.
Try to complete all levels !
Clone of the famous "Lights Off" game on Linux Ubuntu, this Android version is ported from Desktop.

Notas de la Migración: No pude agregar sonidos ni vibración, sigo investigando con los callbacks.

App Store: https://play.google.com/store/apps/details?id=org.opensource.lightsof
Source Code: https://dl.dropboxusercontent.com/u/4009065/share/lightsoff.7z
Original Source:   http://sourceforge.net/projects/lightsoff/?source=directory

PEG-E.

Peg-E is a peg solitaire game in which you jump over pieces in order to remove them from the board, ultimately trying to eliminate all but one. The boards are randomly generated, with 100 levels of difficulty. The game auto-saves, and has undo-redo capability. Pieces can move horizontally, vertically, and diagonally.


App Store: https://play.google.com/store/apps/details?id=org.opensource.pege
Source Code: https://dl.dropboxusercontent.com/u/4009065/share/pege.7z
Original Source:   http://gottcode.org/peg-e/
Tengo otros proyectos que estoy portando (como un software contable), y estos son los problemas que me he encontrado.

- UI. No están diseñados para móvil, así que el trabajo  en bastante en este apartado. Incluso en la UX de Qt difiera mucho a la de Android y sus stylesheet deben ser bien trabajadas.

- Databases.- Ningún conector está compilado para Android, con excepción de SQLite, pero no funciona adecuadamente.

- C : Android no tiene un compilador implementado con ANSI, su NDK solo tiene soporte parcial. QT también tiene sus problemas con C, ya que algunas declaraciones como printf tienen que modificarse a std::printf.

Como nota les quiero comentar que en algunos Markets este tipo de apps son baneadas por no entender como funciona la licencia o por depender le librerías  externas, si no es con licencia comercial te vetan, incluso en Markets como Slideme que aceptan licencias libres, vetaron la app por SPAM FILES, así que en algunas me dispuse a subir Ministro II 9.5 para que no dependan de apps externas a la del propio market.

Esto me sirvió de experiencia y aprendizaje con QT y apps  nativas.
Se aceptan preguntas, críticas positivas y por supuesto ayuda. 

Un saludo.

@pata_de_jaguar

No hay comentarios: