Smartphone mostrando una App

Desarrolladores, App que no lo son y el maltrato al cliente


Entiendo que el fin de una empresa es ganar el máximo dinero posible gastando lo mínimo necesario, nosotros queremos lo mismo así que no seamos hipócritas.

La cuestión es ¿cuánto es ese mínimo imprescindible? Porque también debemos tener en cuenta la imagen de la empresa y que si ese mínimo es muy bajo para lo grande que es la empresa eso ya no es aceptable y genera una mala publicidad innecesaria.

Smartphone mostrando una App

Esto salta a la vista en la época actual gracias a las App de grandes compañías como pueden ser bancos, empresas eléctricas… El cliente puede conectarse a su cuenta a través de una página web desde el ordenador, tablet o smartphone.

La solución es muy sencilla; crean un portal web que sea compatible con los navegadores móviles y solucionado ¿por qué? Pues porque pueden acceder desde el ordenador y desde cualquier dispositivo a través del propio navegador.

Y ya que tenemos eso creado lo más barato es encapsularlo en una App que lo único que haga sea abrir una página web y a correr. Mira que listos somos.

Sin embargo la utilización de esas mal llamadas App es insufrible, es que no merece la pena ni instalarlas porque puedes acceder a la web y creas un icono en la pantalla de tu teléfono que al pulsarlo te abra esa web, es el mismo resultado. De hecho eso es lo que hago yo con Twitter, Facebook o el DRAE, no tengo sus App en el teléfono, utilizo el propio navegador.

Tanto Apple como Google intentan acabar con este mal hábito creado y cada vez ponen más restricciones a este tipo de malas prácticas.

En una pequeña empresa se podría incluso comprender, pero cuando hablamos de bancos… ¿tanto les cuesta pagar a un equipo de desarrolladores para que les hagan una App Nativa para iOS y otra para Android? Los usuarios lo agradecerían enormemente porque cada vez es más habitual utilizar la banca online.

Pero ¿sabéis qué es realmente lo peor? Que no conozco ningún banco que haga esto, al comenzar ING si lo hacía, tenía una App nativa para iOS, pero misteriosamente en lugar de mantenerla y seguir actualizándola la eliminó y metió esas dichosas App que son una página web y a correr.

Y no solo de bancos o redes sociales hablamos; mención especial merece la infumable App de HBO para el AppleTV o SmartTV… Es una vergüenza que una empresa que su único fin es que la gente pague una suscripción para ver su contenido tenga una plataforma para hacerlo tan mala.

79 El valor de una App


Nuevo episodio del podcast, en esta ocasión vuelvo a grabar con Diego Freniche sobre cuanto cuesta crear una App.  Diego no solo es desarrollador multiplataforma, también da cursos de programación en iOS, Android… y lo que se tercie.

En este episodio del podcast hablamos sobre los distintos tipos de App que hay, que tipo de equipos se necesitan para desarrollarlas, tiempo necesario para ello y cuanto cuesta todo ello.

En el desarrollo de una App no solo intervienen programadores, también es necesario diseñadores u otros miembros mas especializados como pueden ser los expertos en accesibilidad, según el tipo de programa que estemos desarrollando.

Sin olvidar el coste que requiere luego el mantenimiento de dicha App, no solo para solucionar errores o fallos que pudiese tener sino para implementar nuevas características para adaptarlo a futuras versiones del SO, resoluciones de pantalla o aprovechar nuevas funciones que éste aporte.

También hablamos sobre las distintas formas de monetizar una App, bien sea por el cobro directo de ella, la inclusión de publicidad o los pagos dentro de las App. Algo que está muy de moda y que a mí, personalmente, no me gusta nada.

Espero que os resulte una charla entretenida y hayamos resuelto alguna duda que tuvieseis sobre este tema.  Podéis descargar el audio desde aquí mismo mismo y abajo tenéis el vídeo por si preferís verlo desde Youtube.

Ubuntu tiene buena pinta.. pero eso no paga facturas.


El tema de moda es el anuncio por parte de Canonical de lanzar Ubuntu para tables. ¿De moda? Bueno, tal vez entre los linuxeros mas soñadores.

Lo cierto es que el proyecto tiene buena pinta y me parece una gran idea, pero claro, ya me lo pareció hace más de un año cuando lo sacaron como App para Android, ha estado disponible todo este tiempo… y no he visto ningún comentario en todo este tiempo. ¿Por qué iba a cambiar con éste anuncio?

 

Como ya he dicho la idea me parece interesante, se crea un ecosistema en el que podemos tener un SO completo en nuestra tableta, con una interfaz pensada para ello, controlar nuestro ordenador… vamos, como lo que ha sacado hace poco Windows con sus tablets surface y que tampoco está consiguiendo capturar el interés de nadie… y me da la sensación de que Microsoft tiene más dinero que Canonical e ingenieros y usuarios.

De momento hay algunas tabletas en las que se puede cambiar la ROM para ponerle la de Ubuntu, esto no me parece extraño, a fin de cuentas las personas interesadas en instalarse Ubuntu seguro que saben cambiar la ROM de su tableta.

 

 

Aunque si soy tan “crítico” con éste lanzamiento es porque no le veo ningún futuro, no porque no sea una buena idea, útil o haya sitio en el mercado para todos… bueno, esto último tal vez sí.

Si algo hemos aprendido en estos años es que no importa tanto lo que aportes o lo bien que hagas sino lo buenas que sean las App que hay para tu plataforma. A mí personalmente WebOS me encantaba, me parecía algo que realmente aportaba algo nuevo, y no creo que sea necesario recordar como le fue.

Da la impresión de que Ubuntu quiere dirigirse a los propios desarrolladores de Linux y centrarse en ellos, aquí me vais a perdonar, pero si ese es su objetivo tienen un serio problema de visión de futuro.

 

Ya tienen preparado el SDK para desarrollar en HTML5, pero ellos mismos indican que eso da una experiencia menor, que recomiendan la creación de App nativas utilizando QML. Traduciendo, que la gente cree muchas App chorras en HTML5 para inflar el número de App disponibles y que creen desde 0 App buenas en QML.

Esta imposición para mí es una sentencia para la plataforma, los desarrolladores buenos que se ganen la vida con eso no van a invertir su precioso tiempo en desarrollar una App desde cero en QML para una plataforma recién nacida que no tiene tan apenas usuarios. Si van a crear una App desde cero lo harán para iOS o Android, que es donde están los usuarios y, si quieren probar algo nuevo lo harán para Windows 8 o BB10, que a pesar de tener menos usuarios tienen seguidores fieles y están creciendo, ya tienen recorrido y la gente ha oído hablar de ellos.

 

Desde luego mucha gente se emociona pensando en que tendrán grandes App como Gimp o LibreOffice, pero seamos sinceros, ¿os imagináis manejar esos programas en una tableta con el dedo? Gimp todos sabemos como va su desarrollo, es un equipo pequeño y apenas dan a basto con la versión de sobremesa como para empezar con un táctil. LibreOffice tal vez se pueda hacer algo, pero creo que sea en breve.

 

Nada mas, solo quería comentar mi opinión sobre la importancia de las aplicaciones, lo complicado que va a ser que los desarrolladores vuelquen sus esfuerzos en crear App nativas para una plataforma nueva sin usuarios ni el apoyo de fabricantes de hardware. Entiendo la emoción que tienen los linuxeros ante éstas noticias, y no es por querer aguarles la fiesta… pero me parece que os llevaréis una desilusión amigos.

Y recordar señores de Canonical, solo con amor no se pagan facturas.

Comenzando a desarrollar App con @dfreniche


Sí sois seguidores del podcast ya conoceréis al genial Diego Freniche, ha salido en bastantes episodios del podcast siempre hablando de desarrollo.  Ahora que me paso al “papel” continuamos hablando de este tema.  Comenzamos con el principio, con la base y como debemos prepararnos si realmente una persona quiere centrarse en el mundo del desarrollo de aplicaciones.

 

 

1º Están muy de moda los Smartphones y gracias a ellos las tiendas de App en las que podemos encontrar juegos y programas muy baratos o incluso gratuitos.  Algunas se convierten en grandes éxitos como el Angry Birds y hacen pensar a mucha gente que son juegos sencillos de realizar, que cualquiera se puede hacer millonario gracias a ello… ¿Hemos vuelto a la época de los 80 en que un par de personas podían hacer un gran juego?

 

Definitivamente, sí. El ambiente es el mismo que en la época dorada del software de 8 bits, cuando gente como Francisco Menéndez podían escribirse la Abadía del Crimen y maravillas similares. Un servicio como Instapaper lo mantiene una sola persona, Marco Arment. Poder, se puede.

Cosa distinta es que sea sencillo. No vale con cualquier App. Hay que hacer algo que atraiga a mucha gente, que sea realmente buena. Y no basta con que la idea sea buena. Ideas buenas tenemos todos, todos los días. La ejecución debe ser buena. Y esto requiere mucho esfuerzo y tiempo. Y claro, para poder escribir esas Apps hay que estar preparado para no ver un Euro de ingresos en un tiempo, o hacerlo como actividad paralela. Además, hay que moverse para promocionar la App, y dedicar mucho tiempo a tareas que, por ejemplo para mi, no son agradables: contar estadísticas de visitas, etc. No es sencillo.

 

 

2º Actualmente hay mucho material en Español, incluyendo muchos foros donde poder preguntar nuestras dudas mas comunes pero, ¿es importante saber o aprender inglés?

 

Es básico. El Inglés es el primer lenguaje de programación que debes dominar. Los mejores libros, vídeos, talleres, conferencias, … Son en Inglés. Te da acceso a una comunidad enorme de desarrolladores, cada uno con su propia lengua, pero que usando el Inglés como una suerte de “lingua franca” como antes era el Latin, te permite hablar con un Chino o un Ruso. Y leer su código. Por eso: nombra a las clases, variables, funciones, etc., en tu código en Inglés y te abrirás a una comunidad enorme.

Sin excusas: hay que aprender Inglés. Yo estaba en la misma situación que el resto (ni mis padres son Ingleses, ni me he criado en Londres, ni me han mandado a un colegio bilingüe, ni tengo el pincho de Matrix para aprender de golpe). Sólo hay que querer. Y hoy hay montones de recursos por Internet para aprender.

 

 

3º Si nunca hemos escrito una línea de código, ni sabemos lo que es, pero queremos aprender a hacer App para teléfonos móviles, ¿qué recomendarías?  Empezar desde cero con los lenguajes nativos de cada SO o con “LUA” y el SDK “corona” por ejemplo.

 

Nativo, sin duda. Puede parecer más lento, pero te da una base que te permitirá, si quieres seguir con esto dentro de cinco años, cambiar de lenguaje y plataforma con más facilidad porque ya dominarás todos los conceptos.

No hay que aprender a programar en un lenguaje. Hay que aprender a programar, usando ese lenguaje. Y luego buscar en otro lenguaje cómo programar, con su sintaxis, y aprendiendo de este segundo lenguaje los conceptos nuevos que no teníamos en el primero. Así, poco a poco, vas aprendiendo los distintos paradigmas del desarrollo. Dicen que aprender un lenguaje que no cambie tu forma de pensar no merece ser aprendido.

Una vez que sepamos programar podemos usar los frameworks (o no) porque entendemos lo que hay por debajo. Si no, si se “estropea” algo, no sabemos qué hacer.

 

 

4º Hay muchos cursos online para aprender a programar, ¿terminar un curso significa saber programar? Aparte de realizar un curso ¿Cuántas horas por nuestra parte deberíamos meter practicando?

 

A programar sólo se aprender programando. Un profesor en segundo de carrera decía que había que tener “vicio”. Es decir, esto es como aprender a tocar el piano: cuantas más horas le dediques, mejor.

Terminar un curso es tener la base para poder explorar el lenguaje con mayor rapidez y seguridad. Es la diferencia entre cruzar el Amazonas andando o con un todo terreno y un mapa. Tras el curso, al leer y practicar las cosas se comprenden y aprenden antes. El curso es un catalizador.

Yo recomiendo que se desarrollen aplicaciones que nos sirvan, que nos resulten divertidas, que nos llamen la atención. Es indispensable escribir código. No se puede aprender ni comprender sin practicar y equivocarse.

 

 

5º Si no queremos o podemos permitirnos el pagar un curso, ¿qué libros recomendarías para comenzar a practicar?

 

Depende del lenguaje y la plataforma, claro.  Para Android, “Pro Android 4” (si ya sabes Java). Para iOS, el libro del “Big Nerd Ranch”, sin duda. Y claro, los vídeos  qué hago junto con Víctor Baro 🙂

 

6º Una vez que ya hemos decidido la plataforma y hemos realizado un curso o nos hemos leído algún libro y realizado los ejercicios pertinentes seguramente nos sentiremos capaces de crear la App perfecta que nos hará millonarios. ¿Cómo debemos plantearnos el crear nuestra primera App?

 

La primera, segunda y tercera App van a ser una vergüenza. Esto hay que asumirlo desde primera hora. No es que no las quieras, son tus “hijos”, pero van a ser muy feas, tanto por dentro como por fuera. Si no es así, es que algo estás haciendo mal :-). La clave para hacer una buena App es que se siga actualizando, que esté viva. Y para eso lo mejor es hacer algo que nos interese a nosotros, algo que usemos a diario. Así, al solucionarnos un problema, veremos los defectos que tiene al usarla nosotros todos los días.

Y no obsesionarse con ganar millones con la primera App. Eso no pasa. Hay que hacer muchas para tener la experiencia que nos permita hacer que la siguiente sea realmente buena.

 

7º A la hora de desarrollar nuestra primera App con intención de publicarla en una store, ¿debemos tener cuidado con las normas para que no nos la rechacen? La que mas fama tiene a la hora de rechazar App´s es la de Apple, aunque en la de Android cada vez están siendo mas estrictos. ¿Hay que tener un cuidado especial? ¿Es complicado solucionar un problema si nos rechazan la App?

 

Nadie nos obliga a subir una App ni a Google Play, ni al Market de WP, ni al App Store. Y todas tienen sus reglas. Si no te gustan esas reglas, es sencillo: no subas Apps. Es igual que ir al cine, o al fútbol. Hay reglas. A mi me gustaría pagar una entrada de grada alta detrás de portería y luego sentarme en el banquillo de mi equipo. Pero hay reglas. Si no te gustan, no vayas al fútbol, ¿no?. Es decir, tener “libertad” no implica automáticamente que puedo hacer lo que me de la gana en todos los sitios. Libertad implica que nadie te obliga a entrar en ningún sitio, pero si quieres entrar, hay requisitos. Por cierto, para todos los repositorios, incluyendo los libres. Por ejemplo, para crear una aplicación en Linux y subirla a Debian, hay una serie de reglas. No puedo hacerlo “como me parece” ni los de Debian “son unos dictadores”, ni nada de eso.

En mi caso, me han rechazado varias veces varias Apps. Siempre te llega un correo escrito por una persona concreta explicándote el problema en detalle. Y puedes responder y hacer preguntas del tipo “¿si quito esto se arregla el problema?”. Y te responden. Todas las tiendas deben tener un control mínimo de calidad. Si no, nos podemos encontrar con una App contando lo maravilloso que es pegarle a una mujer u otras burradas por el estilo…

 

8º Ya tenemos nuestra primera App programada, enviada a una Store y ha sido aprobada y publicada…. Seguramente no la habrá descargado nadie. ¿Termina el trabajo de un programador cuando su App es aceptada y publicada? ¿Merece la pena promocionarla o es mejor comenzar ya con la siguiente App? ¿Es momento para pedirle a esos amigos gorrones que hemos tenido que formatearle el ordenador que nos hagan de CM?

 

El mejor Community Manager de tu App debes ser tú mismo… y tu App. Normalmente la primera no es ninguna maravilla, y suele dar hasta vergüenza pedir a los amigos que se la bajen. Pero es una manera de aprender. Hay que hacer un trabajo mucho más duro que desarrollar la App: crear un sitio web para la App, contar cómo funciona, grabar algún vídeo, promocionarla en Twitter o en FB, etc. En mi caso, soy experto en “Márketing inverso”: conozco todo lo que hay que hacer, pero me da tanta pereza que paso de hacerlo. Me gusta más desarrollar. Resultado: no vendo un pimiento 😀

Esto se debe hacer en paralelo con la siguiente App (si ya tenemos la idea) y con las mejoras y bug fixes de la anterior. Cuando tienes varias Apps hay que planificarse bien, porque tener varias en paralelo puede ser complicado.

 

 

9º Aquí también entra un tema importante, el de las actualizaciones, seguramente muchos hemos pagado por una App que nos parecía magnífica y que al cabo de un par de años o menos hemos terminado abandonando porque no ha tenido ninguna actualización y con la evolución del SO se arrastra o incluso a dejado de funcionar. ¿Cuánto debemos preocuparnos por nuestras App anteriores?  Y no solo por mantenimiento, sino por incluir nuevas funcionalidades, ¿cómo decidir en que App centrarse y cúal simplemente mantener? ¿Lo decidimos nosotros antes de enviarla o según las descargas que tengamos?

 

Esto es un tema bastante personal. Hay veces que se abandona una App porque no da ningún dinero. Otras veces, porque nos obliga el entorno (por ej., cambian las reglas del juego de Twitter y no podemos plantearnos hacer ningún cliente nuevo). Mientras nos siga interesando nuestra App (porque nos soluciona un problema) la mantendremos actualizada, eso seguro, aunque no de tanto dinero. Pero en general hay muchos factores: si disponemos de tiempo para hacerlas y mantenerlas, si nos sigue interesando la App, si hemos tenido respuesta y ventas, etc.

Hasta aquí esta primera parte sobre el maravilloso mundo de los desarrolladores de App´s. ¿Tenéis alguna pregunta? ¿En qué aspecto queréis que se centren las preguntas?  Dejad un comentario o enviarme un correo electrónico y las iremos resolviendo.