Los estudios de los que hablamos en la primera parte de este informe sobre desarrollo de aplicaciones móviles dejaron conclusiones interesantes. Aun cuando iOS y Android son lógicamente las plataformas prioritarias para los desarrolladores, existen muchos parámetros que aportan una nueva perspectiva en este mercado.
Es lo que nos confirman las entrevistas que hemos mantenido con varios desarrolladores españoles dedicados a la implementación de aplicaciones móviles en diversas plataformas. Si hay alguien que conoce la realidad del mercado, son ellos.
El duopolio se confirma
Jorge Barroso (@flipper83), se encarga del área de desarrollo y consultoría Android en el estudio de desarrollo Karumi, y nos explicaba cómo en su empresa trabajan con diversas plataformas: Android, iOS, Windows Phone e incluso proyectos para la web móvil.
Esa amplitud, afirmaba Jorge, es importante para "cubrir las necesidades de todos nuestros clientes", y nos explicaba a grandes rasgos su opinión sobre el estado de las plataformas móviles:
Creo que cada plataforma tiene sus cosas buenas y malas. Android está ya muy maduro y hay un montón de gente desarrollando librerías Open Source para poder hacer una gran cantidad de funcionalidades de una forma fácil y rápida. En iOS el codebase está muy estable y con cada versión sacan cosas nuevas. Windows Phone está empezando pero tiene un gran entorno de desarrollo y el uso de C# hace que escribir código sea una delicia. Y un buen código de Web Mobile bien optimizado puede ser una muy buena solución para muchos casos.
Marcos Trujillo (@Aracem, también en Google+) es Lead Android Developer en TAPTAP Networks, una empresa especializada en publicidad premium que entre otras cosas trabaja para los grandes grupos editoriales en España, además del desarrollo de aplicaciones diversas. Marcos nos explicaba cómo el foco de su compañía es total hacia iOS y Android:
Ahora mismo no compensa trabajar para otras plataformas que no sean éstas dos porque no hay mercado suficiente para rentar los desarrollos. Luego cada plataforma tiene sus ventajas e inconvenientes pero al final el esfuerzo es más o menos el mismo.
Marcos comentaba además que en su caso los lenguajes de programación más utilizados son Java y Objective C, "aunque es bastante habitual que las aplicaciones requieran de backend para completar su funcionalidad". El uso del IDE Android Studio de Google también es una de las bases de ese trabajo.
El tercero de nuestros protagonistas es Julio Rivas (@juliorimo), que de hecho es ocmpañero de Marcos en TAPTAP Networks, aunque en este caso su trabajo como Lead iOS Developer está totalmente centrado en la plataforma móvil de Apple. Julio confirmaba las razones de elección de esas dos plataformas, indicando que "la principal razón es intentar abarcar el mayor número de usuarios posible. Además tenemos un gran equipo con mucha experiencia en desarrollos nativos lo cual ayuda". Las herramientas de programación utilizadas en sus desarrollos iOS también fueron descritas por este programador:
Las aplicaciones iOS se desarrollan de manera nativa en Objective-C usando todas las herramientas propias que proporciona Apple (Xcode, Cocoa, Interface Builder..) junto con terminales reales para pruebas, además usamos una serie de frameworks de terceros para diferentes funcionalidades como estadísticas, notificaciones push, control de errores…
Por su parte, Jorge del Casar (@JorgeCasar) es consultor y desarrollador HTML5, y trabaja en la empresa Seis Cocos, donde se dedica tanto al desarrollo web como a la formación en desarrollo de aplicaciones móviles. En su empresa, nos dice "Desarrollamos principalmente para Android e iOS, pero no dejamos de lado ninguna plataforma. Nuestro propósito es desarrollar juegos para dispositivos móviles".
Jorge nos comenta que en la actualidad utilizan Unity3D para los juegos y HTML5 para las aplicaciones, "aunque también hacemos desarrollos nativos". El no renunciar a ninguna plataforma no significa que hagan siempre todas las versiones de un mismo proyecto, y todo depende del tipo de prestaciones que ofrecerá ese desarrollo:
Nuestra intención no es desarrollar el mismo juego para todas las plataformas, si no hacer juegos que usen tecnologías y por tanto estarán disponibles en aquellas plataformas que las implementen. Por ejemplo si un juego usa NFC, Miracast, iBeacons, gamepads, el implementarlo en plataformas que no disponen de esas tecnologías haría que perderían jugabilidad
Por último, también contamos con José María Cáceres, socio director de Lacq, una empresa especializada en movilización de contenidos. Además es socio de Intelify, empresa centrada en la Internet de las Cosas, y dirige el máster de programación de aplicaciones para smartphones y tablets de U-tad, donde colabora como profesor asociado.
José María nos explicaba cómo en estos años ha ido migrando el interés de los clientes: "Durante estos años hemos desarrollado para todas las plataformas utilizadas en España, que son iOS, Android, Blackberry, y Windows, pero desde hace un par de años los clientes solicitan básicamente iOS y Android, junto con desarrollos web con diseño adaptativo mediante HTML5." Los argumentos de esa tendencia son claros:
La razón principal es la base instalada, si juntamos usuarios de iOS y Android, estamos cubriendo el 95% de la base instalada de nuestro país. Técnicamente, es posible que sea la plataforma de Apple sea más compleja, pero no es un motivo suficientemente importante como para descartarla.
Proceso de desarrollo e interfaz de usuario
Una de las primeras cuestiones adicionales que abordamos fue el proceso de desarrollo que siguen estos expertos. Jorge Barroso explicaba que lo que tienen claro en todo caso es el uso de "metodologías ágiles de desarrollo", una filosofía en el que el desarrollo es iterativo e incremental. "Nuestra forma de trabajar y estructurar el código nos hace muy fácil adecuarnos a cambios, o decidir en mitad de un proyecto si damos soporte a tablets o no", destacaba Jorge.
Marcos Trujillo, de TAPTAP, nos explicaba cómo hay una importante definición de requisitos --en la que se decide por ejemplo si se va a desarrollar también para tablets--, a partir de lo cual "se realizan unos mockups o el diseño de la aplicación 'a lápiz' hasta que todas las partes estén de acuerdo en el diseño preliminar". A partir de ese momento entra en escena el diseñador y experto en usabilidad, que crea unos PSDs con el diseño real, tras lo cual se realiza el desarrollo. Cuando éste está listo se realizan fases de testing con herramientas que "comprueban que el código funciona como debe y la interfaz cumple con su función".
Julio Rivas también hacía hincapié en el uso de metodologías ágiles, y destacaba que "en nuestros proyectos internos intentamos usar Kanban o scrum, realizar sprints semanales junto con entregas parciales. Es interesante comprobar cómo éste desarrollador destacaba el soporte de versiones de iOS en su caso:
En la parte de iOS consideramos que no merece la pena hacer proyectos nuevos para una versión de iOS inferior a la 7.0 ya que con esto alcanzamos más de un 80% del mercado. En el caso de las librerías publicitarias si es algo distinto ya abarcamos desde iOS 5.0 para tener casi el 100% del mercado soportado.
En su caso, Jorge del Casar confirmaba su puntualización anterior, y al planificar un desarrollo destacaba que "podemos encontrar juegos que desarrollemos solo en una plataforma o que la jugabilidad y controles varíen según la plataforma aunque desarrollemos para varias de ellas".
José María Cáceres nos explicaba lo importante que es "determinar el target de usuarios al que quieres dirigirte, y en función del presupuesto a invertir, decantarse, primero por en qué plataformas desarrollar, y segundo, para qué tipos de dispositivos, si smartphones, tablets, desktop, incluso ya dispositivos conectados denominados “wearables” como relojes, pulseras, etc".
Muy relacionado con ese proceso de desarrollo tenemos otro apartado crucial: el diseño de la interfaz de usuario y la evaluación e implementación de la usabilidad en aplicaciones móviles. ¿Cómo abordan este problema los desarrolladores, y qué porcentaje de importancia tienen esos apartados sobre el desarrollo total?
Jorge Barroso nos confirmaba que efectivamente es una parte muy importante de la aplicación, aunque no se atrevía a poner porcentajes "porque al final si tu app es muy bonita, pero se rompe cada 2 por 3 o va lenta al final es también parte de la experiencia de usuario. Personalmente para mi todo es igual de importante, tanto que funcione perfectamente como que sea usable." También daba un dato interesante sobre las herramientas que tanto iOS como Android ofrecen en este sentido:
Creo que es muy importante también que cada plataforma "mame" de su patrones, pero sobre todo que usuario de la plataforma se sienta a gusto, aunque a veces te saltes lo que recomienda la plataforma. Me explico: no vale copiar la UI de iOS y ponerla en Android, porque no funciona. Pero también tienes que pensar en la funcionalidad, por ejemplo, Swype no era un patrón standard en Android, pero poco a poco se ha ido introduciendo como normal y hasta la propia aplicación de Gmail lo utiliza. Por otro lado, el clic largo ha ido desapareciendo, con lo que al final hay que ajustarse a lo que sea más usable en cada plataforma.
Por su parte, Marcos Trujillo hacía un reparto equitativo en el que también reconocía la gran importancia de este aspecto: "La fase de diseño de la aplicación es una de las más importantes en el ciclo de vida del proyecto. En mi opinión entre el diseño de la aplicación y la suerte se llevan un 70% del porcenjate de éxito. El resto se reparten entre las funcionalidades de la aplicación y el marketing".
Su compañero Julio parecía aún más convencido de ese aspecto visual, y aunque tampoco se aventuraba a dar cifras concretas de valoración sí que por ejemplo apuntaba a la relevancia que cobra el trabajo de los diseñadores y expertos en UI/UX:
Evidentemente la interfaz de usuario es casi la parte más importante de una aplicación ya que como solemos decir, el producto tiene que entrar por los ojos. Aquí es donde nuestros compañeros de UI/UX, son ellos los que más capacitados están para ello, aunque siempre los desarrolladores intentamos aportar nuestro granito de arena estando al día de las últimas tendencias y de las apps del momento.
Jorge del Casar también destacaba ese argumento, e incluso tienen en cuenta temas como las guías previas para aprender a jugar a sus juegos o la certificación de esos desarrollos por parte de las marcas:
Creemos que son 2 valores muy importantes para el éxito de una app o juego. En nuestros juegos creamos niveles de aprendizaje para evitar grandes cantidades de texto y que la experiencia de usuario sea la mejor desde el segundo cero. Además pasamos por diversas auditorías para conseguir certificaciones de marcas importantes.
En ese mismo sentido José María Cáceres también expresaba esa importancia de la interfaz de usuario y de la usabilidad, en un apartado que consideraba como "fundamental":
Para tener cierta garantía de éxito, hay que comenzar las tareas de programación de cualquier aplicación habiendo realizado previamente un análisis de usabilidad y teniendo claro el look & feel que va a tener en toda la profundidad de navegación esa aplicación. Quizás diría que esta en 50% - 50%.
Los tablets suelen ser un problema
El mercado de los tablets es uno de los más extendidos, pero aún así los desarrolladores consultados dejaron claro que hay problemas en el caso de Android.
Nos lo comentaba Jorge Barroso, que explicaba que:
Es el problema de siempre en Android, la fragmentación de dispositivos. El parque de tablets es enorme, con muchos tipos de pantallas, velocidad, e incluso cada una tiene su propio diseño de interfaz. Poco a poco creo que se irá normalizando e iremos viendo más apps de calidad en tablets. Otro mal endémico en Android es el forma de desarrollar, mucha gente no piensa o prepara el código para soportar desarrollo específico para tablets y cuando quieren abordarlo tienen su código demasiado acoplado al desarrollo de sus pantallas de móvil y modificarlo para hacerlo bien les cuesta mucho esfuerzo, y al final salen ports cutres de las apps
Marcos Trujillo estaba de acuerdo, y confirmaba que Android en tablets "se toma un poco como plataforma secundaria, por lo que se suele obviar el desarrollo de una versión específica para tablets". El hecho de que el desarrollo de la interfaz sea sencillo y que ésta se vea "decente en tablets" hace que los desarrolladores no se esfuercen mucho más para adaptar dichas aplicaciones de forma específica.
Por supuesto la cosa cambia para iOS, y lo dejaba claro Julio Rivas, que indicaba que "en esto los desarrolladores iOS somos afortunados ya que sólo tenemos que prácticamente con terminal, aunque sí que en algunos casos tenemos en cuenta las distintas versiones de sistema operativo."
Jorge del Casar confesó no saber que decirnos en este apartado debido a su implicación en desarrollos HTML5, aunque sí aportaba su visión externa e indicaba que imaginaba que la razón de esos problemas en Android era "la inmensa fragmentación que existe".
A la misma conclusión llegaba José María Cáceres, que explicaba precisamente los factores que están haciendo que el catálogo de aplicaciones y juegos para tablets Android e iOS sea tan distinto: ¿Por qué en Android el mercado de apps para tablets está tan diluido?
Diría que es por la segmentación tan brutal que tiene Android en cuanto a diferentes dispositivos con diferentes tamaños de pantalla, ya que a veces no sabemos si un dispositivo es un teléfono, es un tablet, o es un híbrido entre ambos. En el caso de Apple, está muy claro, en el market sabes muy intuitivamente qué aplicaciones son para teléfono, y que aplicaciones son para tablets.
Ventajas y desventajas de las plataformas de desarrollo móviles
Continuando con este análisis de las claves de las plataformas móviles que cada uno de los entrevistados utilizaba, pasamos a preguntarles por las ventajas y desventajas de cada una. Además también queríamos saber su opinión sobre ciertos apartados destacados de cada una de ellas (quizá filosofía o herramientas) y, por último una pregunta que probablemente está en la mente de muchos futuros programadores: Si es posible trasladar de forma sencilla un desarrollo de una plataforma a otra.
Jorge Barroso comenzaba destacando que es especialmente molesto "no poder compartir código entre esas plataformas y terminas programando varias veces el core de tu aplicación". De hecho, aclaraba al responder a esa pregunta sobre el traslado de desarrollos, esta operación no es sencilla: "incluso usando desarrollos cross platform como Xamarin o Córdova es fácil encontrase problemas cuando quiere realizar algo específico para una de las plataformas". Eso suele solucionarse usando un lenguaje no estandar en la plataforma (como C), para luego añadir "cosas específicas de cada plataforma en el lenguaje que toque, pero aún así no es sencillo". Este desarrollador seguía manteniendo su apuesta por Android e iOS, pero también abría las puertas a otras soluciones:
Creo que no hay q olvidarse Windows phone que tiene detrás a Microsoft apostando muy fuerte y con un lenguaje tan potente como c#, además creo Firefox OS puede hacerse un hueco en países emergentes aunque creo que le queda todavía unos pasos para consolidarse, porque tienes que saber claramente que haces un tu desarrollo web mobile para sacar el máximo partido del dispositivo.
Marcos Trujillo no hizo comentarios en ese apartado, pero sí destacó que en plataformas a medio plazo "Las aplicaciones hechas con HTML5 pueden ser el futuro aunque aún tiene sus peros. La ventaja de “desarrolla una vez y funciona en todos los sitios” es tremendamente atractiva aunque la tecnología, en mi opinión, aún no está lista"
Por su parte, Julio Rivas, también de TAPTAP, señalaba de nuevo la fragmentación de Android como desventaja frente a iOS (versiones del SO, tamaños de pantalla), algo que calificaba como "un lastre" para esa plataforma. Y como Jorge Barroso, daba cierta cancha tanto a Windows Phone "está ganando terreno pero todavía está en pañales y creo que llegan demasiado tarde" como a Phonegap Firefox OS, de las cuales indicaba que "gran proyección pero ahora mismo están muy verdes y de momento se nota un gran salto cualitativo entre un desarrollo nativo y un desarrollo web". Este desarrollador nos confirmaba además el difícil paso entre plataformas para una misma aplicación, salvo en el caso de las aplicaciones híbridas desarrolladas en HTML5.
Precisamente nuestro experto en HTML5, Jorge del Casar, destacaba como ventaja fundamental de iOS "el número reducido de resoluciones y densidades de pixel que ayudan a optimizar los desarrollos", mientras que afirmaba que en Android el proceso es "sin duda mucho más rápido y automático, lo que al final se traduce en un menor coste de desarrollo". Este programador mencionaba la buena implementación que por ejemplo existe de Miracast en Android y BlackBerry, y cómo la tendencia al wearable computing "nos ha abierto muchas puertas para realizar aplicaciones y juegos que dependan de estos dispositivos e incorporarlos al juego nos permite crear guiones de juego a una nueva dimensión", una cuestión que efectivamente podría dar pie a desarrollos muy interesantes combinando ambos tipos de dispositivo. La disponibilidad de versiones para distintos SSOO es mucho más sencilla para Jorge del Casar, que confirmaba lo que ya adelantaban nuestros protagonistas: "Al utilizar Unity3D y HTML5 tenemos solventado el problema de la multiplataforma".
Por su parte José María Cáceres nos hablaba de las principales ventajas de iOS y Android, las plataformas más de moda actualmente, en varios puntos que dejaban clara su experiencia en ambos casos:
iOS:
Ventajas: robustez de sistema operativo, calidad de los contenidos del app store(las apps pasan un filtro exhaustivo antes de ser publicadas), y relevancia en marketing
Desventajas: perfiles de programadores más específicos, plataforma cerrada y dependiente de Apple siempre
Android:
Más sencillez a la hora de programar, publicación instantánea, y penetración aumentando exponencialmente.
Segmentación de dispositivos, y plataforma menos robusta
Respecto a otras plataformas móviles con oportunidades, este experto nos comentaba que "sigo con interés Firefox OS, pero considero que tendrá éxito en países emergentes, y no en países como España". Y como el resto de nuestros entrevistados, dejaba claras las dificultades a la hora de programar para varias plataformas a la hora de trasladar un mismo desarrollo de una a otra. No es sencillo, afirmaba, indicando que "son trabajos independientes. Existe alguna herramienta multi-plataforma, pero no tengo muy buena experiencia con ellas".
Las comunidades de desarrolladores, a examen
Un apartado también crucial a la hora de desarrollar en una u otra plataforma es contar con el apoyo de una nutrida comunidad de personas que puedan ayudarnos en todo tipo de situaciones. Les preguntamos a nuestros expertos dos cuestiones al respecto: ¿hay mucho movimiento entre la comunidad y se comparte conocimiento? y ¿Hay sensación de que Apple/Google/Microsoft traten mejor a la comunidad de desarrolladores unas que otras?
Jorge Barroso, programador de Android, cree que "vivimos un gran momento, hay un montón de gente haciendo librerías Open Source, escribiendo en blogs, respondiendo en StarkOverflow o dando charlas. Quien programe mal en Android es porque quiere, porque el conocimiento que hay a día de hoy sobre el tema es abismal. Además con empresas como Square abanderando todo este desarrollo libre". También destacaba el papel de Google, "que trata muy bien a sus desarrolladores, aunque para mi gusto aun les queda mucho que mejorar en herramientas de desarrollo, pero cada día son mejores". Aunque en el caso de iOS no tenía conocimientos profundos, confesaba que "siempre me han parecido los más cerrados sobre información o eventos de desarrollo".
Muy de acuerdo se mostraba Marcos Trujillo, desarrollador Android en TAPTAP, que dejaba claro la gran cantidad de recursos que la comunidad de desarrolladores de esta plataforma móvil pone al alcance de los usuarios y de otros desarrolladores:
Hay muchísimo movimiento y lo mejor de todo es que desde el principio se ha promovido la fislosofía del Open Source y el compartir. El caso claro lo tenemos en Square que ha hecho una grandísima labor liberando multitud de librerías de las cuales nos aprovechamos todos los desarrolladores, como por ejemplo ActionBarSherlock, Retrofit o ViewPagerIndicator. En el caso concreto de Android es muy interesante la comunidad que ha surgido en Google+ (sí, esa red social que está desierta) en la que es habitual charlar no sólo con desarrolladores de todo el mundo sino estar en contacto directo con los propios desarrolladores de Google que nos mantienen al día con las últimas novedades o nos ayudan con estupendos manuales. Si eres desarrollador Android hay que estar en google+ y seguir a Roman Nurik, Rich Hyndman, Chet Haase, Matias Duarte, Juhani Lehtimäki, Fernando Cejas ... Aquí puedes agregar mi círculo sobre Android y movilidad
Julio Rivas nos daba también su visión, pero en este caso desde la perspectiva de un desarrollador iOS. Julio afirmaba que "las redes sociales y las distintas comunidades de desarrollo son una fuente de conocimiento interminable", aunque sí reconocía que "en Apple se echa de menos un canal de información único como hace la comunidad Android con Google+". Este desarrollador también se confesaba "muy fan de foros, blogs y sobre todo stackoverflow, donde puedes encontrar información de todo", destacando de nuevo el papel de este servicio de preguntas y respuestas en el que los programadores tienen una especial relevancia --aunque la red Stack Exchange ofrece sitios web de preguntas y respuestas para un enorme número de nichos tecnológicos--.
Otro punto de vista interesante lo teníamos en el caso de Jorge del Casar y su experiencia con HTML5: "tanto en Unity3D como HTML5 hay mucha documentación. Alguna vez se nos ha atragantado algo pero al final hemos conseguido encontrar la solución a partir del conocimiento compartido", y en su opinión las plataformas nuevas y con menor cuota de mercado --Windows Phone, Blackberry, Firefox OS-- "se vuelcan para ayudar a la comunidad. Google se está subiendo al carro, pero Apple sigue en sus trece de ponerlo difícil". Las razones según este experto eran lógicas:
Las empresas con menos cuota de mercado tiene que cuidar más a sus desarrolladores, sin embargo las mayoritarias se aprovechando la supremacía no dedican esfuerzo a la comunidad porque los desarrolladores quieren desarrollar para ellos. Pero sinceramente creo que es un error, ya que si pierden cuota de mercado los desarrolladores migrarán a otras
José María Cáceres también destacaba el papel de esas comunidades en las que se comparte información: "es una industria muy de moda, y se genera mucho movimiento. Y existen muchos eventos de desarrolladores en los que se ponen en común ideas, proyectos, etc", pero en su opinión no existía la sensación de que unas empresas trataran peor (o mejor) que otras a sus comunidades de desarrolladores.
HTML5, ¿el gigante dormido?
Dedicamos un apartado específico de nuestro bloque de preguntas a tratar cuestiones relacionadas con el estándar HTML5, que aun estando aún muy por debajo de la cuota de mercado de Android e iOS parece una de las grandes promesas a medio plazo. Así, comenzábamos preguntándoles a nuestros protagonistas eso mismo: ¿Es HTML5 el futuro?
Jorge Barroso, experto en Android en Karumi, afirmaba que "es una opción de futuro, aunque creo que está lejos", y recordaba cómo una buena aplicación HTML5 cuesta, citando el caso de aquella aplicación de Facebook: "fíjate lo mal que iba y lo que luego hicieron un grupo de gente haciendo una app de facebook html5 que iba muy fina". Jorge añadía un apartado importante:
Para mi el mayor problema a día de hoy no es tanto conseguir una app en html que vaya bien, porque mis propios compañeros de empresa lo consiguen, es hacer una experiencia que sea similar a la que tienes en nativo en tu Android o en tu iPhone, y al final tienes el problema de lo que hablamos siempre, los patrones de usabilidad no son los mismos, y hacerse un port directo para todo no suele ser una gran solución.
Marcos Trujillo también creía en el futuro de esta plataforma, "pero lo que sí que estoy totalmente seguro es de que ahora mismo no es el presente. HTML5 aún no está refinado del todo y aún no es todo lo estándar que debiera ser", y añadía que "Además a día de hoy la diferencia de rendimiento entre nativa/HTML5 es muy alto. ¡Que se lo digan a Facebook!", citando de nuevo el célebre caso de esa aplicación.
Por su parte, Julio Rivas afirmaba que HTML5 tiene "unas buenas bases para tener éxito en el futuro", pero también compartía la misma opinión que sus compañeros de entrevista: "creo que todavía están muy lejos de los desarrollos nativos y que, al menos de momento, hay mucha diferencia en la calidad de las apps desarrolladas en HTML5 y de manera nativa (iOS/Andorid)."
En este ámbito era especialmente interesante la opinión de alguien totalmente involucrado en este segmento como Jorge del Casar, quien indicaba que HTML5 "Es una tecnología muy prometedora. Con tanta plataforma en el mercado se precisa de un lenguaje que los unifique todos y ahí Qt y HTML5 están haciendo un buen trabajo".
Mientras que José María Cáceres compartía opinión con el resto de desarrolladores Android e iOS, consultados, y nos explicaba su visión respecto a si HTML5 es el futuro o no:
Puede ser que si, cada vez ofrece mejores funcionalidades de integración con el hardware, y de cara a la realización de proyectos, te permite alcanzar a todos los usuarios, con un solo desarrollo. Aunque añado, que a día de hoy, la experiencia de usuario es inferior que en las apps de código nativo
Sobre el soporte HTML5 en iOS y Android
También comentábamos con nuestros entrevistados esa apuesta casi total de iOS y Android por sus entornos de desarrollo nativos, y qué implicaciones podría tener el éxito gradual de HTML5. Teniendo en cuenta que otras plataformas alternativas como Firefox OS, Tizen, Ubuntu o Sailfish OS tienen a este estándar como pilar fundamental para su catálogo software, ¿veis a iOS y Android adoptando este tipo de soluciones a gran escala?
En general, la respuesta de nuestros protagonistas fue la misma. Jorge Barroso, indicaba que "No creo que ellos a corto plazo tengan eso en mente, al final ellos ganan dinero de vender apps, y quieren que la experiencia sea la más cercana a su SO", mientras que Marcos Trujillo revelaba también que "no creo que ni siquiera ellas sepan la respuesta", añadiendo, eso sí, un dato interesante: "De momento Google en su última versión, Android 4.4 KitKat, ha modificado la WebView, el elemento nativo capaz de cargar páginas web, para que tengan el mismo motor y funcionamiento que Chrome".
Julio Rivas estaba de acuerdo en las apreciaciones anteriores pero apuntaba a un posible cambio de estrategia en el futuro: "al final las cifras son las que mandan y si HTML5 gana cuota de mercado iOS y Android tendrán que reaccionar". José María Cáceres también coincidía e indicaba que "A Apple no les veo, a Google si, porque es una plataforma mucho más abierta, y sí que es posible que tomen ese camino". Jorge del Casar, por su parte, trataba de diferenciar las aplicaciones HTML5 de las webs HTML5:
Ambos apuestan por el HTML5, sobre todo Google, pero sí es cierto que hay una fiebre por hacer apps que podían ser perfectamente webs. Pero el desconocimiento de la gente por anclar webs a la pantalla de inicio fomenta esa fiebre. Hay que educar a la gente y hacer apps que realmente usen contenido nativo y no pueda hacerse con HTML5 y todo lo demás hacerlo en web
HTML5 frente a desarrollos nativos
La última de las preguntas en este bloque estaba dirigida a que nuestros expertos valorasen si era posible desarrollar aplicaciones HTML5 comparables en rendimiento y prestaciones a las nativas, y, en caso contrario, qué le falta a este estándar para lograrlo.
Jorge Barroso creía que al menos en parte esto es posible: "Claramente en aplicaciones si, y lo que no puedas hacerlo, lo puedes resolver con soluciones mixtas, el problema suele venir cuando necesitas un rendimiento muy alto que las soluciones webs no suelen ir igual que las nativas". Entre los problemas que resolver, este programador explicaba que "Por un lado hace falta conocimiento de la plataforma", mientras que por otro era necesario "dar acceso desde html5 a partes nativas de la app".
Marcos Trujillo se mostraba más escéptico, y comentaba que "A día de hoy la diferencia aún es muy alta y es bastante sencillo diferenciar la app que está hecha de forma nativa y la que no", indicando las carencias de este estándar tan prometedor:
Le falta estandarización y rendimiento. Sin un rendimiento similar nunca conquistará ambas plataformas y el ahorro en costes no compensará la pérdida de calidad de las aplicaciones.
Julio Rivas compartía opinión con su compañero, e indicaba que en su opinión ambas filosofías de desarrollo no son comparables. "si preguntas a los desarrolladores de HTML5 te dirán lo contrario, pero la experiencia de usuario no es la misma y al final eso es lo que marca el éxito de un producto", recordando, como otros entrevistados, el caso de la aplicación en versión HTML5 que desarrolló Facebook y que no logró el rendimiento esperado. En su opinión, añadía Rivas, "la sensación de fluidez no es comparable a los desarrollos nativos".
En el caso de Jorge del Casar, que sobre todo se centraba en juegos, la opinión dejaba clara la ausencia de algunos elementos que ayudarían mucho a HTML5, como más APIs "que no pueden ser estandarizadas porque son específicas de la plataforma". A la pregunta de si era posible comparar desarrollos nativos con HTML5, ésta era su respuesta:
En algunas plataformas mejor que en otras y depende del juego. En nuestro caso que desarrollamos juegos en 3D tendríamos que usar herramientas como Cocoon para para poder implementar WebGL, ya que sólo BlackBerry 10 ofrece ese soporte. Todavía queda mucho trabajo por parte las empresas para que podamos acercarnos al desarrollo nativo, aunque nunca llegaremos a alcanzarlo puesto que Javascript es interpretado y el nativo es compilado.
Desde el punto de vista de José María Cáceres, "a día de hoy la experiencia de usuario es inferior en HTML5 que en las aplicaciones desarrolladas bajo código nativo, que aprovechan mejor las especificaciones del hardware y el sistema operativo", y como en el caso de Julio Rivas, "le sigue faltando fluidez en según qué acciones dentro de una aplicación".
La monetización, clave
El penúltimo bloque de preguntas iba dirigido a otro aspecto fundamental en este segmento: cómo lograr monetizar estos esfuerzos de desarrollo. La primera pregunta era clara: ¿Cómo monetizan las aplicaciones y juegos y qué modelos consideran que son más rentables?
Jorge Barroso nos explicaba que "en nuestro caso como lo que hacemos son desarrollos para terceros pues es lo que nos pidan, pero para los proyectos propios creo que depende de la naturaleza de tu proyecto", y añadía que el modelo debe buscarse con cuidado y buscar el equilibrio entre el precio y las descargas: "a veces te merece la pena vender menos y cobrar más por la app".
Tanto Marcos Trujillo como Julio Rivas nos explicaban que en el caso de TAPTAP la monetización es algo distinta, ya que ocmo indicaba Marcos, "en cierta medida trabajo para que otros moneticen sus aplicaciones mediante publicidad. No sólo mediante el banner de toda la vida, también hemos desarrollado otras soluciones como NativeAds o contenido patrocinado en las aplicaciones", pero este desarrollador también prestaba atención a un modelo como el de las compras in-app:
La moda ahora son los pagos in-app. Aplicaciones gratuitas que se pueden mejorar o expandir mediante micropagos. Es un sistema que funciona muy bien puesto que es más fácil convencer a los usuarios para que paguen por algún contenido adicional cuando ya conocen tu app, la usan e incluso puede que la consideren imprescindible que simplemente viéndola en la tienda de aplicaciones. En ese momento es difícil convencer que esa app que tienen ahí les va a ser lo suficientemente útil como para pagar 1 euro.
Su compañero coincidía y en ese punto explicaba que "Desde mi punto de vista el mejor modelo para monetizar apps es distribuirlas de manera gratuita incluyendo publicidad y dependiendo del tipo de desarrollo incluir pagos In-App" Por su parte, Jorge del Casar también abría posibilidades a varios modelos: "Al tener varios enfoques lo cierto es que tocamos todo tipo de monetizaciones distintas, desde el pago in app al desarrollo directo para terceros".
Esa monetización vía contrato --como ya destacábamos en la primera parte de este reportaje-- demuestra ser más importante de lo que a priori podría parecer, algo que también confirmaba José María Cáceres, que nos explicaba su experiencia:
Principalmente monetizamos vía proyecto cerrado, o vía publicidad, en el caso de medios de comunicación. Pienso que el modelo más rentable es el modelo freemium, que te permite monetización a largo plazo, aunque a cambio requiere que tu producto se mantenga actualizado constantemente, y aportes al usuario cosas nuevas a cambio de su dinero.
La moda in-app
Mantuvimos esa conversación sobre los modelos de monetización prestando especial atención al modelo de las compras dentro de la aplicación que tan de moda está actualmente y que ha hecho que empresas como King o Supercell logren ingresos millonarios con sus juegos.
Jorge Barroso cree que este es "un modelo de negocio válido, que en algún momento explotará pero no para desaparecer sino para coexistir con los ya existentes", añadiendo algo importante respecto al "peligroso" futuro de dicho modelo:
Creo que el problema va a ser el coste por usuario, para que la gente entre en tu juego tienes que dejarte una pasta en publicidad que luego tienes que recuperar, cuanta mayor competencia exista, este coste por usuario crecerá y habrá un momento que sea insostenible para las medianas y pequeñas empresas de desarrollo.
Marcos Trujillo también veía este modelo como uno de los más interesantes en la actualidad, y que ha demostrado ser "mucho más fructífero" para muchos desarrolladores. No obstante "hay que recordar que no va a funcionar en todas las apps. Hay que estudiar bien si en tu app tiene sentido porque las cosas a la fuerza no funciona".
Julio Rivas también creía en la validez del modelo, aunque destacaba que "La única pega que encuentro son los porcentajes que se quedan tanto Apple como Google al utilizar sus sistemas nativos", lo mismo que Jorge del Casar, que revelaba que "Satisface a diferentes tipos de perfiles de usuarios y, si se realiza de manera inteligente y no intrusiva, desde luego le pronosticamos larga vida". José María Cáceres también veía recorrido en este modelo: "Entiendo que si que se mantendrá un tiempo, ya que es un modelo “pago por uso”, que me parece lo más razonable en cualquier tipo de proyecto, ya sea tecnológico o no".
Otros modelos de monetización
Está claro que ese modelo de compras in-app está dando muchas alegrías a quienes logran convencer a los usuarios, pero ¿qué ocurre si ese no es el modelo adecuado? Les preguntamos a nuestros protagonistas qué otros modelos de monetización pueden considerarse aquellos desarrolladores y empresas que trabajan en este campo.
Jorge Barroso nos explicaba que "todos los modelos acabarán en mayor o menos medida coexistiendo", y nos hablaba de juegos basados en publicidad, modelo premium, o las citadas compras in-app. Eso sí: ese modelo no debe condicionar el desarrollo:
Creo que debes elegir tu modelo negocio en relación con tu juego, o al revés, si eliges que quieres hacer un juego con in-app piensalo como tal y no lo metas con calzador al final.
Igualmente interesante era la opinión de Marcos Trujillo, que además de las anteriores apuntaba a un modelo de monetización que de momento no hemos visto demasiado en el segmento de las aplicaciones y los juegos móviles: el del pago por suscripción:
Es probable que empiecen a aparecer más apps orientadas a ofrecer un servicio continuo igual que ya pasa en la web. Modelos como spotify, en el que se paga una suscripción mensual por el servicio de música, pero aplicado a otros campos como herramientas o soluciones para la empresa.
Julio Rivas, desarrollador en iOS, nos sorprendía hablando de tecnologías de pago como NFC --que Apple nunca ha integrado, y que no es factible que integre en el futuro--, y afirmaba que le parecía "un sistema de pago super cómodo que en países como Japón ya es una realidad y la gente lo utiliza de manera continua", algo que ponía otra perspectiva a la pregunta sobre monetización no solo los modelos, sino las formas de pago.
Jorge del Casar coincidía con Marcos Trujillo en esa posibilidad de pago por suscripción: "Las suscripciones a servicios con app libre parecen ser otro tipo de monetización que estará presente en el futuro, sobre todo en wereables, ya veremos qué tal funciona", mientras que José María Cáceres incidía sobre la relevancia de un modelo más tradicional: "La explotación publicitaria está creciendo a pasos agigantados, por tanto es la otra opción que veo más interesante a día de hoy".
Cómo ganar dinero con aplicaciones móviles
Los modelos de monetización pueden ofrecer rentabilidad a los desarrolladores, pero en realidad, nos confesaban todos nuestros expertos, las claves del éxito varían mucho.
Así, Jorge Barroso indicaba que hay que tener un buen proyecto y llegar en el momento adecuado, pero sobre todo "hay que planificar bien antes de empezar, no te puedes tirar 2 años con un juego que vas a vender 99 céntimos".
Marcos Trujillo daba un apunte que otros compartían: "Hay un componente de suerte muy muy alto. Un día tu app no la usa nadie y al día siguiente tienes que quitarla de los markets porque el éxito te ha superado, como ha pasado con Flappy Bird". Este desarrollador también prestaba atención a otro apartado fundamental:
El otro aspecto importante es el marketing. Tener la suerte de que blogs como Xataka Móvil hablen de ti es importantísimo no sólo por las descargas que genera en el momento, también por el boca a boca que va a generar. Como ejemplo tengo una de las primeras apps que lancé hace años. Gracias a salir en uno de los blogs más importantes sobre Android a nivel nacional un bloguero importante de Tailanda debió ver el artículo e hizo otro en tailandés. De repente vi que tenía miles de descargas desde Tailandia, ¡cosa que nunca hubiera imaginado! La preocupación luego, a ver cómo traducía mi app al tailandés!
Precisamente en ese apartado también incidía Julio Rivas: "el éxito de un proyecto, más allá de su contenido, su interfaz o incluso su fiabilidad, es una buena campaña de marketing. Muchos desarrolladores no tienen en cuenta este aspecto, pero es casi tan importante como el propio producto". Sin este componente, confirmaba Julio, es difícil poder anunciar el producto en distintos medios y "llegar a un número amplio de usuarios potenciales".
Jorge del Casar también revelaba la importancia de la campaña de marketing: "Existen numerosos puntos a destacar y cada app es un mundo, pero si presuponemos un producto bien acabado y estudiado, desde luego la campaña de marketing y comunicación es vital".
Por su parte, José María Cáceres también hacía referencia el factor suerte, pero también, como en el resto de los casos, destacaba esa labor de comunicación y marketing que es necesario hacer para poder promocionar la aplicación o el juego:
Creo que ahora mismo hay una gran componente de suerte, a la hora de tener éxito, ya que existen cientos de miles de aplicaciones, y probablemente exista algo similar a lo que tu estás haciendo. La clave es mejorar lo que ya hay, que aporte valor a los usuarios, que tenga un gran diseño, que permita crear comunidad, y que hagas un esfuerzo importante en la promoción y marketing.
Consejos para quien se lanza al desarrollo de aplicaciones móviles
Por último preguntamos a todos los participantes en este reportaje por sus consejos para todos los que deciden dar el salto a este mercado profesional tan competitivo. ¿Qué consejos a nivel técnico y práctico tienen nuestros entrevistados para los futuros desarrolladores?
En el caso de Jorge Barroso, las ideas eran claras y, sobre todo, coherentes: "Que se preocupen por lo que hacen, que lean, se interesen y le pongan pasión. La información está ahí, lo más normal es que esté en inglés, pero está esperando a que llegue a quien se interese, y que se pregunten por qué y cómo son las cosas, no las repitan como papagayos". A nivel práctico, nos decía, el consejo era "Currar, currar y currar, me da igual que sea en tu casa, o en una empresa o donde sea, pero si te pones a hacer cosas y le echas ganas y escuchas y aprendes, al final salen las cosas."
El desarrollador Android Marcos Trujillo también coincidía en ese aspecto, indicando que la gente debería "leer, estudiar, investigar, probar", y añadía algo importante: "no busques “la idea del millón de dólares” porque seguramente no la vas a encontrar. Si tienes una idea, aunque parezca tonta, desarróllala y publica tu trabajo", y explicaba que "Conozco un montón de desarrolladores muy buenos que no publican apps porque afirman aquello de “es que no tengo ideas” y lo que no tienen son ideas del millón aunque sí muchas ideas modestas." En el apartado práctico añadía algo igualmente crucial: "Internet es tu amigo", y por ejemplo recomendaba Google+ si desarrollas para Android, además de hacer hincapié en otros aspectos:
Aprende diseño y usabilidad porque es probable que no tengas un diseñador a tu lado experto en movilidad. No te digo que aprendas a usar photoshop pero tienes que saber los fundamentos básicos de usabilidad y cómo lo hacen los mejores. Si a ellos les funciona no reinventes la rueda. Y ya que estás, intenta ser un buen desarrollador y no dejes de lado el Clean Code, el testing y las buenas prácticas. Cada día tienes más y mejores herramientas para que esto no sea un problema... ¡que nunca debería serlo!
Julio Rivas también incidía en la importancia de la "constancia y la pasión, que son claves", y añadía que es importante formarse y "estudiar las bases y la arquitectura de una tecnología antes de ponerse a desarrollar. Una vez que ya conozcan las bases, recomiendo que empiecen a desarrollar y se metan en las distintas comunidades y foros de desarrollo". En cuanto a consejos prácticos, una nota destacada: "También es muy importante el contacto personal así que recomiendo asistir a conferencias y eventos, ya que conoceréis a mucha gente y podréis aprender mucho".
Para Jorge del Casar en el aspecto técnico es necesario "estudiar mucho la magnitud del proyecto, ya que un error en la elección de la tecnología puede limitar desarrollos futuros", mientras que a nivel práctico "hay que invertir mucho tiempo y dinero en promocionar tu producto y posicionarlo en el mercado".
En el caso José María Cáceres, que tiene ya mucha experiencia tanto en el desarrollo como en la formación, esta pregunta tenía una respuesta aún más clara: "Formarse en algún centro profesional es fundamental, les evitará muchos quebraderos de cabeza y estarán mejor preparados para encarar proyectos reales", mientras que en el aspecto práctico también apuntaba a esa faceta de no encerrarse en casa o en la oficina: "no hay que olvidar el networking, es bueno asistir a eventos del sector".
Conclusiones
En estas últimas líneas de este larguísimo --lo sentimos, considerábamos todo importante-- reportaje queríamos dar las gracias a todos nuestros participantes por su tiempo y por la claridad y dedicación que han mostrado en sus respuestas.
El panorama del desarrollo móvil queda, esperamos, algo más claro tras esta serie de dos artículos en la que, como era de esperar, las conclusiones de los estudios que se han realizado en el mercado, y de las que hablábamos en la primera parte, coinciden con las impresiones de desarrolladores que trabajan día a día en un mercado ultracompetitivo pero, eso sí, apasionante.
Así, el duopolio Android/iOS es claro, pero eso no quita para que otras plataformas tengas sus opciones en el futuro, y aquí HTML5 parece hoy por hoy la apuesta más relevante. Será interesante ver cómo se mueve el mercado en los próximos años, pero si queréis comenzar a dar vuestros primeros pasos en este campo, ya sabéis: ponedle pasión y dedicación, porque los recursos para aprender y lograr cierto éxito están disponibles.
En Xataka Móvil | Desarrollo de aplicaciones móviles (I): así está el mercado
Ver 15 comentarios