domingo, 5 de mayo de 2013

Desarrollar en nativo o con un motor

Hay dos preguntas básicas antes de comenzar un desarrollo: para que plataforma o plataformas vamos a desarrollar y que herramienta vamos a usar en el desarrollo.

A veces nos viene dada la respuesta, es decir si nos encargan hacer una aplicación en Java para Samsung, pues no hay nada que pensar. Los clientes si que concretan en que plataformas quieren que funcione la aplicación, pero la herramienta que usemos para ello suele ser un tema técnico que se resulta indiferente "con tal de que funcione" ... elegir una u otra puede hacer viable o inviable un proyecto.

Programar en nativo (JAVA para Android o Objective-C para iOS) solamente es justificable si la aplicación debe trabajar solamente en una plataforma o si por razones técnicas se quiere tener un control total de la aplicación (rendimiento, seguridad, reaprovechamiento de experiencia o de programas, etc). Si la aplicación es sencilla y multiplataforma puede usarse un entorno de desarrollo o motor 2D como Corona y si es altamente especializada como un juego un motor 3D como Unity.

En mis muchos años de profesional puedo contar con los dedos de las manos el número de rutinas que he escrito en ensamblador (forma nativa de programar en muchos sistemas) ha sido por temas de rendimiento (rutinas que se ejecutaban millones de veces por dia) o de seguridad.

sábado, 4 de mayo de 2013

Descarga de aplicaciones en dispositivos

En una tableta o telefono con sistema operativo Android las App se pueden descargar directamente de la tienda de Google  o bajandose la APP de Amazon Appstore de la de Amazon Appstore de latienda de Amazon. Pero si disponemos del APK (Fichero binario de laaplicación) bien por que nos lo ha facilitado diretamente el desarrollador o por que hemos hecho backup del mismo en una SIM mediante, podemos hacerlo llegar a nuestro dispositivo móvil como anexo de un correo electrónico (Con Gmail) o mejor con la aplicación Dropbox que también es descargable.

Dropbox es una aplicación que almacena contenidos en la nube (es decir en uno o mas servidores externos a nosotros) por lo que podemos subir ficheros (upload) desde un dispositivo y bajarlos desde otro (download).

En una tablet Amaozn (Kindle) solamente podemos descargar desde la tienda de Amazon (La de Google no esta disponible directamente) y por otra parte la aplciación Dropbox tampoco está disponible en la tienda de Amaon, pero mediante un cable USB podemos copiar los .apk de nuestro ordenador al dispositivo de Amazon y entondes ejecutarlo con un browser de ficheros como ES Explorarod de archivos.

Claro que a estas alturas habrá pensado,si Dropbok me permite bajar el APK, como es el caso,  a mi PC me salto la limitación de la tienda de Amazon ...   pero recuerde, nunca,nunca descargue e instale un APK de webs que no sean las originales.

Pasos de una APP en iTunes

Las fases por las que pasas una APP en iTunes hasta que está disponible son:

- Waiting For Upload: Una vez se da de alta una aplicación está a la espera de que se suba el binario, tras lo cual se hace una primera evaluación rápida y pasa a la espera de revisión

- Waiting For Review: la aplicación se pasa un termino medio de una semana para pasar a revisión

- In Review:  la revisión suele durar varias horas.

- Processing for App Store: tras la finalización pasa a la App Store

- Ready for Sale:cuando finalmente es APPROVED (Aprobada)

domingo, 28 de abril de 2013

Editar LUA y algo más

El editor más sencillo para programas en LUA sobre Windows puede ser el Bloc de Notas del propio Windows o el Notepad++ (Software Libre).

Un editor sencillo,pero ya configurado para trabajar con LUA es  LUAEDIT,pero esta semana he probado Zerobrane Studio esun IDE para LUA y por eso añade funciones de depuración (debugger), etc.

Es gratuito (se merecen  la donación que solicitan y está disponible para Linux.Windows y Mac).


lunes, 25 de febrero de 2013

Desarrollos para Amazon

Las aplicaciones para Amazon no son más que un caso particular de las aplicaciones Android (Gingerbread - 2.3.4 ).


Las app pueden ser marcadas o no con DRM por parte del desarrollador al subirlas al Appstore a través de la consola de Amazon y el control de los .apk es más estricto que los realizados por Google Play.

Las aplicaciones se descargan desde Amazon Appstore.

Amazon es lider en laventa de dispositivos eBook, la tablet kindle Fire es la tableta Android másvendida en elmundo, siendo la mejor opción para quien quiera una tablet multimedia, frente a laNexis 7 de Google.

miércoles, 20 de febrero de 2013

Por qué desarrollar para dispositivos móviles

Hoy en día, puede parecer obvio el desarrollo de aplicaciones para dispositivos móviles, pero conviene recordar algunas de las razones que lo justifican:

1-EL BAJO COSTE DE LOS DISPOSITIVOS: en España la mayoría de las compañías  de telefónia móvil regala los terminales a cambio de un tipo de contrato y/o permanencia en el mismo, mientras que se pueden encontrar tabletas Android 4.0 por menos de 100 euros   (la he probado con buenos resultados).

2- EL GRAN NUMERO DE DISPOSITIVOS/USUARIOS: a finales de 2012 se estimaba que había  unos 145 millones de teléfones móviles capaces de ejecutar aplicaciones (68 % Android, 17 %  iOS, 15% resto) y unas 122 millones de tabletas (54% iOS, 43% Android y 3% resto) ... casi 300 millones de dispositivos conectados de una u otra forma a Internet y por tanto a las tiendas de aplicacioens de Google y Apple.

3- EL RÁPIDO Y ECONÓMICO DESARROLLO Y SU FÁCIL PORTABILIDAD (Hay otras entradas en el Blog que abordan este punto con mayor detalle).

Resumiendo, vale la pena desarrollar.Si usa Android tendrá menos costes pero aunque con mayor penetración en los teléfonos móviles encontrará que en muchos no funcionarápues exuste una gran numero de versiones ... desde la 2.2 a la4.1,;si lo jhace para Apple tendráunos mayores costespero no encontrará el problema de lasversiones porlo que funcionará en casi la totalidad delos dispositivos y sobre todo en las tablets donde dispone de una mayor cuota.

sábado, 26 de enero de 2013

Entornos de desarrollo o motores basados en LUA

Los programas de la vida real requieren, además del control del flujo y del proceso de los datos, el manejo de las interfaces del ordenador o dispositivo en el que queremos que sea ejecutado, con el fin de generar gráficos, mostrar imágenes, reproducir sonidos, etc.  Por ello se hace necesario, y simplemente por razones prácticas, el uso de un lo que llama  Microsoft un "Visual" o un  “Studio” o un SDK  (Software Developed Kit) o como se dice en el mundo de los videojuegos, un motor (engine) que facilite todas estas operaciones ...es impensable que un programador desarrolle en un lenguaje como C las rutinas para que un texto se deslice por la pantalla para un juego. Bien es cierto que cuanto mayor sea el nivel de abstracción  del entorno más sencillo será programaren él, pero menor flexibilidad tendremos.(Por eso leereis en los foros como desventajas para programadores avezados el no poder llamar desde un determinado entorno a rutinas en C, pero si usted es de los que no sabe ni siquiera lo que es C, no debe importarle).

Corona de Ansca http://www.coronalabs.com/products/corona-sdk/  es un SDK que, como ya hemos dicho usa como lenguaje base LUA y es capaz  de generar aplicaciones para iOS, Android y Amazon, pero tambien lo es Moai http://getmoai.com/ o Gideros http://www.giderosmobile.com/

Hay otros motores basados en LUA como el ya mencionado Moai y Löve https://love2d.org/ que permiten el desarrollo para otras plataformas como Windows y Mac.

Usar un SDK capaz de generar ejecutables para varios entornos con un único programa fuente simplifica la portabilidad de los desarrollos aunque a costa de no poder obtener las prestaciones que es posible conseguir programando en el entorno  nativo, por ejemplo con JAVA en Google SDK para Android