Proyecto de expresión y espacio para la tecnología, cultura, empresa, estética y humanidades en generalIntroducción a la programación para dispositivos móviles.
28 de septiembre de 2013Quien se adentre en el espacio de la programación para dispositivos móviles por primeravez se encontrará que no es tan sencillo. Por un lado la información que está dispersa porla red es inmensa, hay que navegar mucho, mucho, mucho y hay que leer mucho,mucho, mucho. Además no toda la información disponible es precisa y a menudo hay queintentar discriminar, cuando a veces no se sabe cual es la dirección correcta. La modernateconología móvil avanza tan rápidamente que lo que es una novedad, en poco tiempo puede quedar completamente obsoleto, por lo que los conocimientos habrán deactualizarse convenientemente, pero sin embargo las páginas de internet allí quedan y elriesgo de consultar información que ya no vale, o vale muy poco, existe, y para colmo,algunos artículos sin actualizar aparecen sin fecha, por lo que el nivel de confusiónaumenta. Con este artículo mostraré un tablero de juego organizado, a día de la fechaindicada en la cabecera, en el que se identifique claramente los distintos elementos queforman parte y que se podrán utilizar según convenga.Como todo en tecnología, el contenido de este mismo artículo ha de tomarse con cautelay considerar siempre el momento temporal en el que ha sido escrito, pues soyplenamente consciente que habrá de quedarse obsoleto en poco tiempo.Empecemos por la base, ¿qué podemos considerar como dispositivo móvil?. Si buscamospor internet nos encontraremos ya el primer problema. La información de la wikipedia seescribió en el año 2005, además es un artículo inacabado. Otras páginas web muestraninformación tan antigua como la wikipedia, pero con el mal gusto de no indicar la fecha enla que se ha escrito. Se puede observar también cómo unas páginas se copianinformación de otras y hacen referencias a los mismos aspectos. Se pueden encontrardefiniciones circenses como "suelen tener una pantalla y botones pequeños" o que"entran en un bolsillo".A efectos de este artículo, no entraremos en características físicas o funcionales, ya queéstas pueden cambiar de la noche a la mañana: terminales de telefonía móvil cada vezmás grandes, dispositivos híbridos entre tablets y ordenadores portátiles, móvilesacoplados a tablets, etc. A efectos de este artículoconsideraremos como dispositivo móvil lastablets PC y los teléfonos móviles inteligentes(smartphones). Los ordenadores portátiles olaptops, aunque pudieran considerarse comodispositivo móvil, se dejarán fuera de esteestudio por poseer características operativassimilares al PC.Nos centramos entonces en tablets ysmartphones.Una vez que hemos identificado el tipo dedispositivos móviles que vamos estudiar, nosinteresa saber, con el objeto de tener una visión global, qué empresas fabricantesdominan el mercado. Empecemos con los teléfonos móviles, para ello utilizaremos lainformación que Gartner, la empresa líder mundial en investigación en tecnología de lainformación, ha publicado en febrero de este año. Se puede observar que Samsung yNokia (ahora comprado por Microsoft),lideran el mercado, seguidos de lejospor Apple. El resto de fabricantestienen muy poca cuota de mercado,comparado con los tres primeros.¿Pero qué pasa con las tablets?. En elmercado de las tablets la situacióncambia drásticamente. Véase elsiguiente gráfico, cno datosprocedentes de IDG, donde Apple estodavía dueño y señor del mercado delas tablets a pesar de la drásticapérdida de cuota de mercado. Le sigueSamsung a una enorme distancia.Ya vamos perfilando el tablero de juego. Los actores principales son Samsung, Nokia yApple en el mercado de smartphones y Apple y Samsung en elmercado de tablets. Pero el dispositivo físico no sirve para nada sin el correspondientesistema operativo. Veremos aquí que las cosas están muy claras:Tanto para teléfonos móviles como para tablets, el mercado lodominan dos sistemas operativos, iOS de Apple y Android de Google,pues ambos dos juntos tienen cuota de mercado cercana al 90%. Sinembargo la cuota de mercado de ambos se invierte, ya se hable detelefonía móvil (69,7% para Android y 20,9% para iOs) o se hable detablets (63,5% para iOS y 24,4% para Android).Pues nada, ya tenemos una visión más clara de la situación, siqueremos construir una aplicación para dispositivos móviles y queésta esté disponible para el mayor número de clientes posibles, lossistemas operativos más utilizados son iOS y/o Android. La cuestión que se nos plantea ahora es el tipo de dispositivo, sielegimos Android tendríamos más visibilidad a través de los teléfonosmóviles, pero no en las tablets. Nos podría ayudar otro tipo deinformación tal como "la publicidad en tablets es tres veces másefectiva que en teléfonos", o como "la gente prefiere tablets ateléfonos a la hora de navegar". En cualquier caso este tipo deinformación hay que tomarla con cautela pues ya sabemos que losdispositivos pueden cambiar radicalmente y ya desde principios deaño la empresa española bq ha sacado al mercado una tablet de 7pulgadas con función de teléfono, por lo que si esto fuese unaincipiente tendencia, la frontera entre teléfonos y tablets empezaría a diluirse, y las reglas del juego cambiaríanrápidamente.Pero ¿por qué elegir un sistema operativo para programar?, ¿qué hay de eso de la multiplataforma?, ¿No se podría realizaruna aplicación que sirva para todos los sistemas operativos?. Y aquí es donde toca hablar de la filosofía UNCOL, algo que estudié en la universidad, a finales de los años 80, en el siglopasado.UNCOL son las siglas de Universal Computer Oriented Language. Se propuso en los años 50 del siglo pasado y era unintento de crear un lenguaje intermediouniversal que solucionara el problema de lamultiplataforma. Si suponemos la existenciade X lenguajes de programación y de Y tiposde procesadores distintos, crear uncompilador para cada lenguaje y que seejecutara en cada procesador, requería X*Ycompiladores distintos. Si el código de cadalenguaje de programación se tradujera allenguaje intermedio UNCOL y éste generaracódigo objeto para cada procesador, elesfuerzo sería de X+Y programas.Decir que UNCOL nunca se implementó, apesar de varios intentos serios. Sin embargoel problema de la multiplataforma siempre haestado ahí y aunque la tecnología ha avanzadoa ritmos frenéticos la dicotomía entre desarrollo interpretado y desarrollo nativo sigue estando presente. Y el mundo delos dispositivos móviles no es una excepción. Se han construido una serie de sistemas que pretenden dar una solución al problema de la multiplataforma en losdispositivos móviles, con mayor o menor éxito, como pueden ser PhoneGap, Appcelerator, Adobe Air mobile, AnscaCorona. Sin embargo estos sistemas adolecen de algunas limitaciones que podrían estar relacionadas con la seguridad,rendimiento, presentación, infraestructura etc.Por supuesto, la elección dependerá del tipo de aplicación a desarrollar y el objetivo que busquemos con ella. Si podemosasumir las limitaciones de los entornos de programación multiplataforma, entonces quizás sean estos una buena opción.Pero si nos jugamos dinero o prestigio o necesitamos un gran rendimiento entonces es recomendable la programaciónnativa.Respecto a Android, decir que está basado en el sistema operativo Linux y su programación se realiza, básicamente, conJava. El entorno de desarrollo estándar incluye un emulador de dispositivos, herramientas para depuración de memoria yanálisis del rendimiento del software. El entorno de desarrollo integrado es Eclipse usando el plugin de herramientas dedesarrollo de Android. El SDK (Software Developer Kit) de Android, proporciona las API's necesarias para el desarrollo deaplicaciones, las cuales cubrirán gran parte de las necesidades. También tenemos a nuestra disposición el API nativo paraAndroid o Android NDK que permite el uso nativo de la plataforma Android y programar a más bajo nivel compilando paraC/C++. Hay otras herramientas para progamarAndroid, no es objetivo de este artículorepasarlas todas, porque hay suficienteinformación en internet, pero para quienquiera acceder a más información sobreAndroid, la página de androideity me gustabastante, contiene mucha información ypienso que bastante bien estructurada.Por su parte, la programación en IOs, requierecomo infraestructura los productos de Apple,tanto software como hardware. El lenguajeutilizado es Objective-C, un lenguajeorientado a objetos, y el entorno dedesarrollo se llama Xcode que sesuministra gratuitamente con Mac OSX. Al igual que en el caso de Android,existen otras alternativas a Xcode,tales como Marmalade SDK yDragonFire SDK, que son capaces degenerar aplicaciones perfectamenteválidas, pero si se necesita perfeccióngráfica y rendimiento óptimo, lo mejores el sistema nativo.Pero en la elección de la plataforma también influye el tipo de aplicación que se desea construir. Por ejemplo, no es lomismo crear una aplicación tipo web con html que una aplicación para uso empresarial o un juego, dado que puedenvariar tanto las técnicas de programación como las exigencias de rendimiento o calidad gráfica.Bueno, ya hemos creado nuestra aplicación, ¿y ahora qué?. Pues lo lógico es publicarla en el lugar adecuado. Y ese lugares Android Market para las aplicaciones Android y Apple Store para las aplicaciones en iOS. ¿Qué hay que hacer parapublicarlas?. Dar los detalles aquí se escapa del propósito de este artículo, pero como Internet es grande, la informaciónque aparece en los enlaces siguientes me han parecido interesantes para aprendera a publicar en Android Market ypublicar en Apple Store.Espero haber dibujado un mapa sencillo que pueda servir para posicionarnos en el complejo y cada vez más ampliomundo de la programación para dispositivos móviles.ÚLTIMAS ENTRADASINFORMÁTICALas v’s de los datos (I). Volatilidad.Introducción a la programación para dispositivos móviles.La eterna presencia del fantasma del número mágico.IntroducciónVer todas las entradasBUSINESS ADMINISTRATIONLa carrera profesional también se gestiona.Orientación al servicio informático: Una relación gana-gana.Cuadrante mágico para plataformas ETL y BI.IntroducciónVer todas las entradasPSICOLOGÍAEl miembro fantasma.Criterios diagnósticos.Psicología científica, básica y aplicada.IntroducciónVer todas las entradasFOTOGRAFÍAGalería fotos de Córdoba.IntroducciónVer todas las entradasAJEDREZIX torneo media hora, ciudad Ávila.I open ciudad de Jaca.Torneos en Mislata - Valencia.IntroducciónVer todas las entradasMERCADOS BURSÁTILESElliot, Fibo y el 61,8%1 año del juego de las tres carteras.Señal TCM en Telefónica.IntroducciónVer todas las entradasMISCELÁNEORABASCO-MENDÍVIL recital piano cuatro manos.Ciclo de conferencia del CEC.Ética radical, la puerta de Texas y la tía Norica.IntroducciónVer todas las entradasInformación legal