Check the new version here

Popular channels

Hice una red antisocial 2

IMPORTANTE LEER

No existe emoji que exprese lo agradecido que estoy por las buenas criticas, los puntos, los bitcoins, etc..
Gracias a T! pude mejorar la app una barbaridad y ya tengo una base de usuarios como para ir poniendo mejoras.. así que muchas gracias a todos..
Si no sabe de lo que estoy hablando le sugiero pasar por la primera parte.. o la app en cuestión..

El primer post recibió mas puntos de los que había pronosticado por lo que me arrepentí mucho de no haberlo enlucido un poco mas.. Voy a tratar de que este sea lo mas piola posible..




ACLARACIONES

Esto no es un tutorial..
No voy a publicar códigos por motivos varios..
El post es apto para todo publico pero supongo que el va a interesar mas al que esta haciendo algo parecido..
No escribí todo de una así que me disculpo si hay alguna incoherencia..






Introducción

Este post va para los que quieren empezar a programar o ya están dando los primeros códigos..
Voy a contar como fue la experiencia de hacer una app desde cero hasta que se publica en Play Store..



Como nace la idea


Resulta que un día a una amiga le chocan el auto que estaba estacionado en una calle muy angosta, cuestión que el chocante se da a la fuga pero por suerte un peatón que estaba en el mismo espacio-tiempo ve el siniestro en cuestión y le deja en una nota a mi amiga con la patente y un breve relato de lo que paso..
Me llamo la atención ese gesto de dejar una nota en un auto pero en ese momento no lo vi como algo "appeable"..

A mediados de enero, que ya había vuelto de mis merecidas vacaciones, etc.. me agarro curiosidad por aprender algo de programación de aplicaciones y aprovechando que tenia tiempo antes de la época de mesas empecé a leer algunas cosas de android. Como lo encontré fácil de aprender me mande a ver tutoriales y baje Android Studio..

Después de algunos cuantos tutoriales de AS empece a hacer la primer app como para ver que tal. Probé de hacer un conversor de divisas tipo calculadora muy simple en la que uno pone el tipo de cambio, la moneda, etc.. y te tira la conversión mágicamente. Eso fue algo que se me ocurrió mientras veía tutoriales y para aprender me sirvio bastante.

Esa app se llamaba Compras Afuera y la anécdota de mierda, que siempre cuento en los velorios, es que yo tenia el proyecto de la app, los editables, etc. en un pendrive.. cuestión que subo la app a Play Store muy emocionado y al tiempo, una semana aprox, perdi el pendrive y todo lo que tenia en sus adentros.. Así que esa app quedo en el olvido y la tuve que sacar de Play Store porque no la iba a poder actualizar, etc..

La moraleja de esa anécdota es que siempre hay que guardar las cuestiones en lugares seguros y si se puede hacer un backup en alguna nube mejor..

Para recuperarme de la perdida de mi pendrive volví a pensar en otra app, esta vez con mas cuidado..
Anduve un tiempo pensando que podía hacer y fue manejando cuando me callo la ficha..


Ando mucho en la calle, en auto y a pie, pero no se porque en un momento fue como si todos los insultos y toques de bocina se resaltaran.

link: https://www.youtube.com/watch?v=IYazKhtzwEM

Entonces no se porque pense en twittear la situacion, pero claro, en twitter hay de todo.. Y ahi se me ocurrio algo que se enfocara en el trasito..

Hice un boceto con una tarjeta de bondi como para saber donde iba a estar cada elemento antes de ponerme a programar..




Manos al código

Primero que nada, yo no soy programador..

Me gusta programar y estudio Ing en Sistemas pero no soy programador matriculado..

Lo que les voy a contar a continuación es todo lo que use para hacer la app y como use cada cuestión..





Esta es la herramienta que te da Google para hacer apps y la mayoría por no decir todos los manuales y guías que te dan ellos sobre android están pensadas para ser aplicadas con este programa. Android Studio no es mas que una versión especial de Eclipse, muy conocido para programar en Java y otras hiervas..



Dentro de AS esta todo como para que uno saque una aplicación andando sin tener que agregar nada salvo alguna actualización de componente o si queres probar versiones anteriores de Android las tenes que bajar. Por defecto viene la ultima versión si no me equivoco..

El proceso de instalación lo pueden encontrar en cualquier lado. Yo recomiendo AS antes que Eclipse mas que nada por la documentación de Google..




Una pregunta que me hiso mucha gente es respecto a la conexión de la app a internet..
Fue bastante difícil resolver esto para mi, creo que estuve dos semanas aprox. googleando, bajando códigos y haciendo pruebas..
Hay varias formas de hacer esto, voy a nombrar las tres que use yo, con cual me quede y por que..
Usar hilos de ejecución: Esta forma es la mas compleja porque se configura toda la conexión desde los protocolos hasta los tipos de datos. No indague mucho mas porque me estaba metiendo en aguas desconocidas.. todo por no leer el libro del Jobs ese..
Usar Tareas Asíncronas(AsyncTask): Es una forma bastante robusta, que tiene sus mañas pero si se hace bien no hay con que darle. Lo bueno que tiene es que se puede definir que va a hacer cuando finalice la conexión y se puede manejar los errores si es que los hay. La versión de la app que publique acá usaba esta forma pero por cuestiones que desconozco fallo cuando empezaron a entrar algunos mensajes por lo que pase a la sgte..
Usar una libreria: Yo al principio no le tenia fe por lo simple que es pero con la falla de la anterior no me quedo otra que hacer una reingeieria del codigo y pasar a usar una librería que se llama LoopJ en honor a James Smith.. Básicamente en menos de la mitad de lineas te hace toda la conexión con el metodo que vos quieras tanto para mandar datos como para recibir de cualquier web service.. Según su pagina, es usada por Instagram, Pinterest, etc.. asi que tan mal no debe andar..


Muchas veces me estancaba en el código entonces me veía algún video del Dr. Albino para recobrar fuerzas y no mandar todo a la mierda..


Esto fue durante Google I/O..



Otro gran desafío que tube que pilotear fue la integración de Facebook para logueo. Decidí usar Facebook por una cuestión de practicidad y evitar tener que generar tokens de acceso y validaciones que es bastante jodido..
Confiado de que no iba a ser muy complejo el asunto empecé a experimentar, fue así que estuve 1 MES a prueba y error hasta que logre hacer un proceso de logueo estable.
Las razones y motivos de mi ineficacia son masomenos los mismos a todos los problemas que tuve..
Principalmente mi inexperiencia pero en el caso de Fb las guias que te dan ellos para que integres la cuestión a la app son de lo mas abstracto del mundo, ademas de estar todo en ingles..
Creo que fue justo en una actualización interna que hizo Fb que cambio la forma de integración de app's.. cuestión que hubieron días que llegaba hasta la 5ta pagina de Google buscando algún tutorial o algo que explicara como hacer.. Al final salio y el nene esta bien..


Ese es el panel de control de Facebook.. ahi se crean las configuraciones para vincular Fb a la app..



EL SERVIDOR




Para que esto ande armoniosamente en toda la patria es necesario configurar bases de datos en un servidor y lo que se llama Web Service..
El Web Service vendría a ser lo que une la app con el servidor y las bases de datos en él..



Cuando la app estaba en un 80% masomenos, empece a buscar un servicio de hosting..
No voy a dar detalles de cada uno, yo elegí DonWeb porque me pinto lo que prometían..
Tampoco voy a decir como es el servicio porque a mi nadie me paga..

Acá es donde entra en juego Sublime Text 2..


Sublime Text no es mucho muy distinto al Bloc de notas que trae Win2 pero con la particularidad de que esta echo para programar entonces reconoce lenguajes, resalta y auto completa el texto..

El Web Service se puede hacer con ASP.NET que es de Win2 y tiene su propio entorno de trabajo muy lindo, etc.. o también se puede hacer con PHP que es multiplataforma y esta muy bien explicado por toda la web..

Yo opte obviamente por PHP ya que soy un Linuxista de raza..
{Mina en pelotas}

Con PHP y Sublime Text se hace un archivo tipo "consulta.php" en que van las funciones de conexión a la base de datos y las consultas a la misma. Este archivo se guarda en el servidor y cuando uno lo accede desde el navegador devuelve un arreglo JSON


Ese arreglo es lo que mas adelante va a leer y usar la aplicación..
PHP tiene sus mañas pero es casi tan simple como Java el único detalle no menor es que si uno se equivoca no hay programa que te avise donde esta el error. Yo no sabia nada de PHP y al principio insulte a mucha gente inocente..

A su vez dentro de PHP se integra el leguaje SQL para hacer las consultas a las tablas de la DB..
Para armar las consultas SQL use un programa que se llama MySQL Workbench, es una porquería barbara porque podes graficar las tablas y ver si están bien echas.. la única contra que solo lo pude hacer andar en el servidor local..


En toda la etapa de programación fue casi como un ángel protector el sitio StackOverflow..

Yo creo que para aprender a programar la habilidad mas importante es saber usar Google como un ninja.. Creo que el 70% de todo lo que hice fue con la ayuda de Ggl y StckOflw..
Es cierto que hay que tener un buen nivel de ingles pero no es nada que no se pueda resolver con el traductor..



El DISEÑO


Resolver el diseño fue complicado, sobre todo por tener que hacerlo solo y también porque es un campo en el que hago agua..
Así que corte por lo mas rápido usando el método de producción japones..

Diseñar toda una interfaz gráfica y experiencia de usuario que la rompa y sea un exito desde cero es mucho laburo y hay que saber del tema. Para resolver esto trate de seguir los lineamientos que usan todas las aplicaciones, específicamente Facebook y Twitter.. Integrar gestos y distribuciones de los elementos parecidas te ahorra que el usuario pierda tiempo descubriendo cosas nuevas y rechace la aplicación al instante por ser poco amigable..





Nombre e Isotipo
Esto lo empecé a gestar mucho antes de ponerme a programar, creo que mientras terminaba la app anterior.. Sabia lo que quería hacer pero de ahí a darle un nombre que explique todo y ayude a vender la idea es bástate complejo, por lo menos para mi. Así que fui anotando todo lo que se me ocurría durante el día y de a poco descartaba algunos..

Un poco producto del descarte y también pensado que se me iba a ocurrir algo mejor mas adelante quedo CarLoud..



como podrán apreciar no se me ocurrió nada mas..

Encontré afinidad con este nombre porque tiene 7 letras y suponiendo que resulte la aplicación, en un futuro, la gente para hacer saber a un conductor que lo esta escrachando por CarLoud le haría la siguiente señal..


Mas importante que el nombre es el logo/isotipo..
Al principio costo bastaneete.. sobre todo porque yo no soy diseñador, pero algo aprendí en secundario sobre diseño gráfico, etc..

No se bien como paso pero esta es la comparación entre el primero y el ultimo..


Verlo en la app publicada fue como ganar un mundial..




Ahora no se porque la app no esta rankeando en la categoría de Comunicación en la Play Store..



Reflexiones finales


Porque no hay y posiblemente no haya una versión web:
Primero porque es un laburo tan o mas grande que el de la app y segundo porque no es practico.
Nadie va a llegar a su casa con una o mas patentes en la cabeza para denunciar.
La esencia de tener la aplicación en el teléfono es que podes compartir lo que queres en el instante o en su defecto guardar el borrador..


Creo que lo mas importante de todo esto, en especial para los que quieren aprender a programar, es tener una idea para hacer.. aunque sea una boludez pero así podes empezar a buscar información e interiorizarte en el tema..

Yo de programación se de estructuras básicas y algunos lenguajes muy por encima por eso al principio no lo vi como algo que pudiera hacer. Lo que anda ahora en las calles es el resultado de mucho huevo.. a veces me da bronca que en el país no se le de pelota a los productos nacionales y que no se fomenten este tipo de actividades..

A modo de catarsis me gustaría decir que me molesta que la mayoría de los ingresantes de ingeniería en sistemas no sepan por que están ahí o que hayan elegido la carrera porque les gustan los jueguitos y cueste tanto encontrar a alguien para hacer un proyecto como este..

Respecto al tema de la publicidad.. fue algo que como CEO de CarLoud costo decidir junto al resto del directorio, que también me corresponde.. La publicidad no paga un carajo y por momentos me dan ganas de sacar los anuncios.. Honestamente no se si esto me deje plata en el futuro y mucha importancia no le doy. En total debo haber puesto $1000 para contratar el servidor y pagar la licencia de desarrollador de Google que sale 25dls pero ver el laburo publicado no tiene precio..
Aunque cualquier bitcoin que tengan esta bien..




Esto ha sido todo por hoy, así fue masomenos la cosa..

Si alguien esta haciendo algo parecido o cree que le puedo ser de ayuda me manda un mp..

Agradeceria que compartieran la app y me dejen su comentario en Play Store..

CarLoud --> https://goo.gl/W9sXzF
Android Studio --> https://developer.android.com/intl/es/sdk/index.html
Sublime Text 2 --> http://www.sublimetext.com/
Stack Overflow --> http://stackoverflow.com/
MySQL Workbench --> http://www.mysql.com/downloads/



Y ya saben, sean botones y alcahuetes porque es la unica manera de que ande el transito en Argentina.. Un abrazo.!

link: https://www.youtube.com/watch?v=yBRgSpV9O9Q

0
0
0
7
0No comments yet