Simpsongo2

El funcionamiento es simple, el usuario ingresa un contexto y la aplicación le retorna una frase de los Simpsons como metáfora haciendo referencia al mismo.

Quizás te interese saber SimpsonGo-v1 donde cuento cómo fue el inico de este proyecto.

Aquí puedes leer la Política de privacidad.

Al App la tienes aquí

Un poco de historia

Hace mucho he querido introducirme en el mundo de la tecnología, desde que empecé a estudiar en Platzi noté que es un mundo excesivamente grande y cambiante.

En vista que aún no me he decidido en qué especializarme, quise crear un proyecto en el que mezclara la mayoría de las tecnologías que conozco. Entonces, me faltaba la idea.

Vi a una chica en Twitter que en uno de sus Tweets dijo algo como para todo uso metáforas de los Simpsons. Me pregunté, “si alguien quisiera llamar su atención con los Simpsons ¿cómo podría hacerlo sin verse toda la serie?”

Y en un pequeño instante surgió cómo implementando una API en Golang, Machine Learning, IBM Watson y algo de Firebase llevaría posible esa idea.

No sabía cómo hacer muchas cosas, tampoco tenía muchos recusos, pero decidí empezar.

Funcionamiento

  • La App está hecha en 100% Kotlin.
  • Los datos son guardados en Firebase con la base de datos beta llamada Firestore.
  • Con Watson Assistant tengo un entrenamiento que dada ciertas expresiones me devuelve una frase clave.

Ahora ¿cómo llegan las frases a la App después de ingresar el texto? Pues la frase que ingresada se comunica con una APIRest que hice en Golang alojada en Cloudfoundry (IBM Cloud) que interactúa con la API de Watson Assistant para que según el modelo entrenado me retorne una palabra clave, esa es la respuesta que recibo de la APIRest.

Seguidamente, con esa palabra clave se conecta a Firestore directamente con el SDK en Android para obtener todas las frases que hagan match.

Habían otras dos arquitecturas que estuve pensando detenidamente:

  1. La primera era que todo estuviera en la APIRest (que se conectara a Watson y Firebase y sólo me retorne la lista). Pero esto sobrecargaría el cloudfoundry donde está corriendo Golang, ya saben, el plan gratis tiene sus limitaciones.

  2. La otra opción era que prescindiera de una API, pero esto significacaría que manejaría todo desde la App. Algo que no me gusta en absoluto es guardar API’s Keys en el código.

Dificultades para esta versión

Así como el primera versión, hubo momentos muy complicados que fueron muy frustrantes y ganas de abanadonar el proyecto. Pero algo me decía que continuara.

Aquí te indico esos momentos complicados y cómo llegué a solventarlos:

Problema Causa Solución
Sin internet por 1.5 meses Falla el un punto de conección y el servicio nada que se reparaba Busqué un internet inalamabrico mientras se reparaba el internet, era muy lento y el saldo muy caro. Lo usaba para leer artículos muy puntuales y aprender. Cero vídeos.
Android Studio 3 pide más recursos Mi PC ya se está quedando atrás en recursos Hice unas configuraciones avanzadas aquí
Sin plataforma para subir el BackEnd en Golang La mayoría de las plataformas piden un pago y en caso de tener un plan free pide que el código sea opensource Implementar IBM Cloud, tiene un plan free sin obligarte a que tu código sea opensource
Sin un tlf Android Donde hacer debug y revisar la App en el transcurso del día Uso Genymotion y pido teléfonos Android prestados jejeje
Cortes de luz constantes Imagina que estás centrado ahí codeando y de repente se va la luz Dormía o salía a conversar con la familia ¿qué más podía hacer?
Bloqueo de mi App en PlayStore En julio actualizaron las políticas y bloquearon mi App por ello. Me faltaba implementar una política de privacidad en el que indicara en qué uso los datos recolectados por la App como por ejemplo los de Firebase Analytics Usé este tutorial

Formas de apoyar el proyecto

Si te ha gustado mucho SimpsonGo, le vez futuro y una buena oportunidad puedes apoyar el proyecto de las siguientes maneras:

  • Donación
  • Compartiendo y hablando sobre la app con todos tus conocidos en redes.
  • Ayudándome a aumentar la base de datos de las frases y usos.
  • Comentando y evaluando en PlayStore.

Créditos

SimpsonGo Fue posible gracias a la ayuda de:

  • @rafaeltorrez: Es un amigo que ha sido como un padre para mi con sus valiosos consejos. Cuando le comenté mi meta de que quería ser un programador para hacer realidad muchos proyectos personales y profesionales fue el único que creyó en mi al comienzo mientras muchos otros hacían una mueca de ironía.

  • @mgutierre1: Una vez tomada la decisión de que quería convertirme en programador, me encontré con Platzi. Al ver sus precios, supe que jamás podría pagarlos. Cuando escribí por la beca que ofrecían a los venezolanos Maribel fue quien me respondió. Luego de comentarle mis metas y que una de ellas era concerlos a todos allá en Platzi su respuesta no fue algo como “dale esfuérzate”, “mucho éxito” o cosas por el estilo, sino que fue algo que sentí tan sincero que aún luego de más de un año recuerdo exactamente su respuesta “aquí te esperamos”.

  • @carlos_fpj: Un colega de profesión (Ing. Químico) en otro país amante de la programación en Android. Su apoyo fue muy significativo para que SimpsonGo esté en PlayStore. Y en el resto de proyectos que hasta este momento solo están en papel.

  • Platzi: Entrar a Platzi marcó un antes y un después en mi camino a convertir una pasión en una profesión. Aún no he llegado a lo segundo pero no me he rendido.

Y a todas aquellas otras personas y herramientas que me han ayudado de un modo u otro muchas gracias.

Recursos:

Cualquier infracción a derechos de autor favor dejar un comentario acá abajo y será removido inmediatamente.

Notas personales

La idea central es que el usuario ingresa un texto y la App sugiera una o más frases de los Simpsons haciendo referencia a los mismos.

Como todo modelo de Machine Learning, para que funcione bien se necesita una gran cantidad de datos. Apenas tengo 22 frases, por lo cual es muy difícil que se adapte a cada input del usuario. Pero en la medida que crezca la base de datos de frases esto mejorará.

Si eres fan de los Simpsons o conoces a alguien, y quieran contribuir al proyecto un buen aporte es con frases y casos de uso.

Si ingresan “all” (sin comillas) en la pantalla de inicio, podrán ver todas las frases almacenadas.

Muchas gracias por probar SimpsonGo, ¿qué te pareció?

Osmandi Written by:

Ing. Químico y Dev
Apasionado por los procesos Químicos, programación en Android, BackEnd en Go, Machine Learning, Pentesting y Linux

comments powered by Disqus