Anuncios

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.

Anuncios

2 comentarios para “Comenzando a desarrollar App con @dfreniche”

  1. Muy interesante, y ya que estamos, podían hacer una de mixcloud para Windows Phone.

Trackbacks/Pingbacks

  1. Cómo desarrollar Apps móviles en iOS y Android. Entrevista | freniche.com: iPhone, Java, Macs, Linux... - 12/11/2012

    […] ha tenido a bien entrevistarme vía mail para su blog El Telar del Geek. Hablamos de distintos aspectos sobre el desarrollo de […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: