Jump to content

Programar para iOS, Android y WP8. Una reflexión


Guest Darkness

Recommended Posts

Guest Darkness

Hola hamijos.

 

Ainssss... Las plataformas móviles... Esos tablets asesinos que no sirven para nada pero se venden por millones... Esos móviles fashion que cada día sorprenden más... Y un mercado enorme y abierto al valiente programador de aplicaciones.... ¿Tienes lo que hay que tener para entrar en la selva hamijo? :xd:

 

 

Introducción.


Voy a ir escribiendo de vez en cuando artículos técnicos sobre programación. Como sabréis estamos metidos hasta el gorro en un proyecto de software, el AWACS Tactical Simulator, y estos artículos pretenden dar a conocer qué hacemos, qué problemas se encuentran normalmente, y cómo solucionarlos de formas más o menos aceptables.

Serán artículos cortos, no esos rollos de quince páginas que suelo escribir, porque no tengo tiempo, porque la gente no los lee, y porque quiero ser conciso, algo que me cuesta porque me despisto enseguida y me voy por las ramas, pero haré el esfuerzo.

Dicho esto, quiero centrarme en este punto en la programación para iOS, Android, y WP8. ¿Cuál es mejor y por qué?



Mejor plataforma para desarrollar a nivel comercial:

Windows Phone 8: va creciendo poco a poco, pero sigue siendo un producto muy minoritario (sin embargo otros comentan que es la tercera opción ya en por ejemplo USA). La ventaja es que como hay poca cosa, poco software quiero decir, puedes tener oportunidades y un campo abonado para estrenar, tanto en videojuegos como en programas de gestión.

Programar en WP8 cuesta unos 80 euros al año una licencia personal. Es decir, si quieres tener programas en la tienda de WP8, te toca pagar al año 80 euros.

Android: es la plataforma líder de ventas con diferencia. Hasta los preservativos funcionan ya con Android. Pero tiene un inconveniente: la piratería es muy alta. Eso más o menos se esquiva con la gran cantidad de productos (teléfonos, tablets) activados. Pero dispone de otro problema: la fragmentación. Si haces un programa, no te digo ya si es concretamente un videojuego, vas a sudar para que funcione en todos o casi todos los dispositivos. Tiene una miriada de versiones y subversiones, tipos de pantalla, de procesadores, memoria, etc. Es un caos.

Hay empresas que por un módico precio cogen tu programa y lo pasan por un montón de dispositivos, informándote de si funciona o no. En todo caso, si tienes éxito con tu programa, las ventas pueden ser relativamente buenas.

Programar en plataforma Android es gratuito. Ninguna tasa por ser programador.

iOS: los dispositivos iOS tienen la ventaja de ser una plataforma única. Aunque comienza una leve fragmentación, todavía es aceptable, y además Apple está integrando herramientas para compatibilizar este problema. La ventaja de iOS a nivel comercial es que la gente tiende más a comprar que a piratear, y no es que no se pueda piratear, sí que se puede, pero hay menos gente que lo hace. Resultado: ventas mejores.

El problema de iOS es que hay bastantes menos dispositivos que en Android, aunque muchos más que en WP8. Así que queda en un término medio. Estudios demuestran que es la plataforma económicamente más viable para un programador, pero esto es como la feria, cada uno lo cuenta como le ha ido. La gente tiende, y eso es cierto, a pagar más en iOS que en Android.

Para programar en iOS te toca pagar 80 euros al año. Además, tal como ocurre en WP8, en Apple son muy exigentes con lo que se sube a la tienda online. A veces te pueden rechazar una aplicación por cosas esotéricas (esto ocurre en WP8 también). Entonces has de arreglar eso que no les gusta y volverlo a subir. En Android los controles son casi nulos, lo cual facilita subir programas, aunque también software con contenido dañino (troyanos, etc).

 


Mejor plataforma para desarrollar a nivel técnico:

WP8: se programa con la excelente herramienta Visual Studio, o al menos a mí me parece excelente. Normalmente vas a programar con C++ o C# dependiendo un poco de lo que quieres hacer y de tus gustos. Yo recomiendo C++ para videojuegos y C# para programas de gestión, pero es una idea solamente. C# es un grandísimo lenguaje, lástima que Microsoft no lo potencie como debiera, y ahora se haya cargado las librerías XNA, obligando a usar las bibliotecas de W8/WP8.

La versión de Visual Studio Express es gratuita y puedes empezar a hacer tus pinitos con dicha herramienta.

Más información: http://developer.windowsphone.com/en-us

Android: en Android pasa algo similar, tenemos el C++ y sobre todo el Java sobre el entorno Eclipse, muy popular hoy en día. En general se programa en Java tanto juegos como aplicaciones. Yo sin embargo prefiero C++ por dos razones: porque existen librerías gráficas escritas en C++ (Cocos2d-x) y porque C++ es infinitamente más rápido que Java.

El problema de C++ es que es más exigente que Java para programar, pero ese es el precio que hay que pagar para hacer cosas eficientes. ¿Por qué Windows, o Unix, o Linux, o los juegos comerciales, o bases de datos, NO están escritos en Java? Porque saben que este lenguaje simplemente no da la talla. Están escritos en C/C++ que es lo que se llama un lenguaje eficiente. Si tienes problemas para programar en este lenguaje o te da miedo eso es normal, a mí también me pasa, pero el esfuerzo merece la pena.

Más información: https://developers.google.com/

iOS: Apple, al tener el control de todo lo que hace dispone de unas herramientas y lenguajes muy definidos. El entorno de trabajo se llama Xcode, y el lenguaje de desarrollo Objective C, que es un derivado del C orientado a objetos (como ocurre con el C++, pero ojo son distintos). Es gratuito y puedes bajártelo y empezar a hacer tus pinitos enseguida con el emulador de iOS (iPhone, iPad). Para ejecutar directamente en un teléfono o tablet necesitas la licencia de programador y en consecuencia apoquinar 80 euros al año. Antes de poner el grito en el cielo recordad que Microsoft hace lo mismo. Y antes de decidiros por Android, pensad bien si el tema económico es suficiente para decantaros por una plataforma u otra.

Y otra cosa: recuerda que necesitas un Mac para programar. O un hackintosh, que es un PC con sistema operativo OS X, pero no recomiendo esta opción para un programador. Un Mac Mini por 650 euros te sirve perfectamente.

Más información:

https://developer.apple.com/

 


Conclusiones.

Como se puede ver, cada plataforma tiene sus ventajas e inconvenientes, como casi todo en la vida. WP8 es una plataforma que no termina de despegar (recordemos que Microsoft ha dejado tirados a los usuarios de WP7 que no pueden migrar a WP8 con teléfonos de seis meses a la venta). Sin embargo Microsoft es muy fuerte e incluso con alguien como Steve Ballmer puede dar un golpe de efecto en el futuro.

Android ha invadido todo, y eso es fantástico para Google y sus programadores de Android, pero no olvidemos los problemas, especialmente para desarrolladores: mucha piratería, y fragmentación alta. A cambio, muchas posibilidades de tener un mercado enorme.

Y finalmente iOS, el patito feo y denostado de las plataformas móviles, la plataforma más odiada de la historia de la informática, tiene la ventaja de que el férreo control de Apple permite garantizar una plataforma estable desde el principio, algo que sin embargo para otros es su mayor punto débil. Tú decides.

Link to comment
Share on other sites

  • 2 months later...

Muy buen artículo Darkness, claro y conciso, como pretendías. Te felicito.

 

Creo que según evolucione la aceptación de windows 8, irá creciendo el mercado de dispositivos con WP8, y por consiguiente los desarrollos para este.

 

Para el desarrollo de juegos existe el entorno de desarrollo Unity, que es multiplataforma, incluso para consolas.

 

Hace poco, cayó en mis manos un iphone4 (mi primer dispositivo Apple), y pensé que después de pagar una pasta, además de juguetear con él, podría aprender a programarlo.

Como se necesita un mac para poder desarrollar aplicaciones con el xcode, y como todavía estoy empezando, y no tengo intención de publicar mis aplicaciones, pensé en buscar otras opciones.

Otra posible, aparte de hacerte un hackintosh, es virtualizar un OSX sobre windows con el virtualbox por ejemplo. Y si tienes bastante memoria ram, el rendimiento es bastante aceptable. El emulador de IOS está bien para empezar, pero hay muchas cosas que no funcionan en él, y se necesitan ejecutar sobre el dispositivo directamente. Es una pena que Apple no facilite más las cosas a los que empezamos, haciendo compiladores para otras plataformas, o permitiendo probar "mis" aplicaciones en "mi" dispositivo sin tener que pagar. Otra tema, sería que tú quieras lucrarte con tú aplicación, pero para un uso personal no le encuentro justificación.

 

saludos,

Edited by koala
Link to comment
Share on other sites

Guest Darkness

Es cierto que Apple no saca compiladores para Windows, pero Microsoft tampoco saca para Mac. Y para Android es mejor usar Windows. Cada uno tira para lo suyo. Yo gracias a esa restricción de Apple ahora trabajo con Mac y he dejado definitivamente Windows. Trabajo con muchos menos problemas y con mayor seguridad y fiabilidad en un entorno tipo Unix que conozco bien por haber trabajado con Unix muchos años. No es 100% seguro pero el OS X Mountain Lion con los controles activados es muy seguro, algo para mi trabajo fundamental. El disco se puede encriptar con AES-256 con la utilidad Filevault que viene incorporada por defecto y que hace imposible que en el caso de robo del ordenador te puedan sacar las cosas, yo voy mucho con el Mac Book Air por la calle y es fundamental. Aparte que si me lo roban lo puedo borrar a distancia también con el software de fábrica de Apple. Y el sistema de copias integrado incremental que incorpora es muy bueno.

 

En cuanto a Windows 8 ahora con el 8.1 parece que han aprendido la lección y han dejado que la gente use el sistema de tiles o el de toda la vida. Y en cuanto a Windows Phone 8 está muy bien y sin duda lo prefiero a Android sin dudarlo. Con un poco de suerte irá subiendo en uso, considero que el sistema merece una oportunidad.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Some pretty cookies are used in this website