Mi primera aplicación para Android.

Nikoss

Buenas tardes a todos, developers y no developers que puedan entrar interesados a este thread.

Primero de todo contar un poco de que trata la aplicación que he realizado (junto con dos compañeros) como proyecto integrador en la uni.

La temática de la aplicación trataba de abarcar toda la familia de productos vinícolas de la bodega Aldonza conservando su estética.

Como la app ha estado basada en la estética que actualmente tiene esta bodega, espero que ningún moderador tenga reparo que incluya el enlace a dicha web para que quien quiera compartir la opinión sobre la aplicación pueda comparar. (Si no hay más remedio entiendo que se suprima el enlace.)

Información sobre su desarrollo:

Entorno de desarrollo utilizado:

  • Android Studio 0.4.6 & Eclipse Kepler
    API mínima necesaria: 14
    SDKTarget: 18
    Tiempo de desarrollo:
    • Tiempo fuera de clase durante los ultimos 2 meses y medio más o menos.
      Nº de devs:
    • 3

Por razones de tiempo solo se ha podido adaptar la GUI a:

  • Nexus 5 y similares (XXXHDPI)

Enlace al repositorio por si alguien quisiera trastear con ella (recomendable ejecutar en una maquina virtual gestionado por Genymotion):
Enlace Git-Hub

Diseño:

Funcionamiento de la app:

Espero que os haya gustado y me encantaría leer vuestras opiniones.

Un saludo ;)

4
B

Me gusta, sobretodo el diseño.

Me surgen dudas: Cuando se pide una cita, podriais montar un webservice que simplemente descargue en cada movil una tabla con los horarios disponibles, asi se puede concertar una cita asegurandose que en esa hora no habra nadie.

Me he dado cuenta que cualquier persona puede cancelar una cita para cualquier DNI, asi que no se respeta la privacidad, y si la bodega fuera muy famosa y hubiera mucihsima gent concertando visitas a la bodega, se podrían cancelar citas. Se que puede parecer una tonteria y es poco probable que suceda eso, pero siempre hay que contemplar esas opciones. Una forma de evitar eso sería usando DNI y fecha de nacimiento para pedir cita y pedir la fecha de nacimiento a la hora de querer cancelar una cita usando DNI.

Podríais integrar el timeline de twitter a la misma aplicacion, así evitais abrir twitter o el navegador web. Con una listview con textfields lo teneis hecho en 5 minutos. Podeis usar la API de twitter(podeis hacer lo mismo para facebook o youtube).

PD: perdonar la ortografía pero estoy des del movil

1 respuesta
Nikoss

#2 Gracias por tomarte la molestia de analizar la app ;)

El tema de la cita esta un poco con alfileres ya que nos obligaron a implementar una bbdd en la app cuando quedaba muy poco para la entrega, esto ha causado problemas a la hora del diseño ya que se metió un poco sobre la marcha. Lo que comentas es totalmente cierto, nosotros lo hemos maquillado (la parte de pedir cita) avisando que la bodega debe aceptar la petición de la cita contestando al mail. Realmente la idea final sería algo como un listview con tus citas aceptadas una vez pedidas. Es decir esa parte esta bastante floja y pensándolo bien salvo la parte del diseño de esa actividad le haría un gran cambio. Lo de borrar citas solo debería funcionar en la bbddd local enviando un mail a la bodega sobre la cancelación. El móvil solo almacena tu dni.

Lo del timeline de twitter que comentas quedaría muy chulo. Simplemente no ha habido tiempo de investigar la API de twitter.

Como pongo en el titulo jaja es nuestra primera app y hay muchas cosas que aún nos cuestan bastante implementar.

Saludos y de nuevo gracias por las molestias.

1 respuesta
B

#3 son sugerencias que se me ocurrieron viendo la app. Si os gusta el tema de desarrollo de apps, tanto para android como iOS, lo mejor es que sigáis practicando por vuestra cuenta. Cuando tengáis alguna idea, por dificil que os pueda parecer, probar a implementarlo, lo que no sale, buscarlo en stackoverflow y si no está ahi, posteais vuestro problema y en segundos os responden.

la API de twitter es muy muy sencilla de usar, y en stackoverflow o incluso videos en youtube encontrareis como implementarlo. Lo mismo para crear un webservice y poder acceder a el desde vuestra aplicación, o directamente usando la API de Parse.com.

PD: Cuando tengas tiempo libre, si tienes ganas y quieres intentar integrar el timeline de twitter por ejemplo, usando stackoverflow.com lo sacarás en 5 minutos. Y todo eso que aprendas te servirá para montar futuras apps.

Para el tema de las citas ya es algo mas complicado. Mi idea era tener un servidor, con tu base de datos alojada ahi, y mediante php por ejemplo poder acceder a esa base de datos a traves de tu movil. De esa forma, la bodega tendría todas las citas que la gente programe alojadas en una base de datos. A partir de eso, teniendo las citas alojadas en ese servidor según día y hora, podrías sacar los horarios disponibles, así que cada persona que abra tu aplicación, se le descargaría esa tabla automáticamente y se le podría mostrar las horas disponibles. Esa persona al pedir cita con una hora disponible, estará haciendo un insert a la base de datos alojada en el servidor, con la clave primaria DNI y guardando ahi el día y hora que quiere cita(como esas horas estarán disponibles, no hace falta por parte de la bodega tener que confirmarlo).

El caso es que eso ya tendrías que hablarlo con la bodega, pues tendrían que contratar un servidor para poder alojar la base de datos.

Simplemente son ideas, con las que puedes practicar tu mismo con tu maquina haciendo de server local y montando la base de datos en tu propia maquina. Con eso aprenderás muchísimo y por tu cuenta, metele el tiempo que haga falta porque podrás usar todo esto para futuras aplicaciones o ideas que se te ocurran.

1 respuesta
Nikoss

#4 si el tema de desarrollo de aplicaciones móviles me encanta de hecho me voy a UK en dos semanas a hacer las practicas allí desarrollando una app junto con un compañero.
Respecto a stackoverflow creo que esta app no habría sido posible sin esa web jaja es un canteo la de ayuda que ofrece la gente, la de preguntas que hay contestadas y sinceramente me parece alucinante esa comunidad.

Con el tema de la API de twitter me tendré que poner si o si en breves.
Tienes toda la razón del mundo al decir que cuanto más investigues mejor te irá en el futuro. Por mi parte intento hacer eso siempre que puedo.
En esta app en concreto hemos investigado sobre lo siguiente:

  • Diseño de layouts en android.
  • Usabilidad.
  • Funcionalidad.
  • API's como maps v2 de google.
  • Trabajar con un repo.
  • BBDD embebidas.
  • Intents.
  • Fragmentos.
  • Ciclo de vida de la app.
  • Dialogs.
  • Persistencia de datos.
  • Acceso a ficheros.
  • Multithreads (no esta del todo implementado).

Y muchas cosillas que se me olvidan. Ha sido todo un reto en muchos momentos se han tenido que suprimir ideas que para el día de la entrega no llegaban a estar lista ya que la hemos presentado delante de bastante gente de la uni y debía quedar lo más funcional posible.
En otras asignaturas hemos probado a implementar webservices (no se si me lio y si lo llamo servlets estaría mal), pero vamos hemos estado trasteando con ese tipo de cosas.

Lo del tema de la BBDD en un servidor todo sería que la bodega como tu dices quisiera que se terminase implementando la app (ellos saben de este desarrollo ya que es de la familia de una amiga por eso decidimos desarrollar sobre esta en concreto).

Cuantas más ideas des mejor llega un punto que hay cosas que no se te ocurren jaja.

Muchas gracias. Si tienes tiempo y te aburres podrías dar una nota a la app? Teniendo en cuenta los campos que tu consideres que deban de ser medidos en una app (diseño, funcionalidad...) obviamente sin probarla es bastante jodido pero estaría bien si puedes. Lo más sincero que puedas.

Un saludo!

1 respuesta
B

#5 yo le doy una nota muy alta, y mas siendo vuestra primera vez con android. Simplemente todo el tema de diseño a mi se me escapa, porque yo soy el peor ejemplo en cuanto a dejar las aplicaciones visiblemente bonitas, digamos que soy un mal artista xD.

Cosillas que se te olvidan, supongo que toasts, que los has usado para dar feedbacks al user, permissions(por el tema de abrir navegador, twitter etc), multimedia(por todo el tema de integrar sonido dentro de la app, supongo que usando audiomanager y soundpool).

Usais todas las herramientas basicas, no se si habéis trabajado con gestures o sensores para darle alguna utilidad adicional a la app, pero siempre son cosas a tener en cuenta, aunque por el tipo de app que habéis desarrollado no creo que se pueda implementar algo diferente usando esto.

Como ya te he dicho, por imágenes y video a mi me gusta, y me parece una app muy bonita en cuanto a diseño y mas siendo vuestra primera app

Nikoss

Pues muchas gracias por darle esa nota jeje ;)
Los toast lo debatimos mis compis y yo y pensamos que era bueno avisar al usuario, quizás se pueda hacer un toast un poco más bonito xD.
Los permisos creo que ya los tiene metidos en el manifest. No se si te refieres a eso :S.
En cuanto al sonido lo tiene pero el vídeo no lo enseña. Eso si el sonido solo pertenece al main, no dio tiempo a integrar un servicio. Los sensores no furulan ya que no tiene opción de usarse en horizontal por temas del diseño por lo menos por ahora.
Lo de los gestures no se lo que son lo intuyo pero ni idea.
Pues a seguir mejorando para próximas. En unos meses espero poder anunciar la primera que si que vaya al market.

2 respuestas
B

#7 exacto, lo de los permisos está en el manifest. Supongo que hay formas de personalizar toasts, pero a mi me gusta como queda sl predeterminado.

Con gestures me referia a los movimientos que puedes hacer con los dedos, puedes programar que la app tenga diatintas funcionalidades segun que mpvimiento hagas, pero como ya dije, en una app como la tuya, no veo que funcionalidades se podrían implementar.

1 respuesta
charl1

Está chula, básica y funcional, mostrando bastantes carácterísticas y no hace falta complicarse la vida.. Imagino que la mayoría del tiempo estaríais aprendiendo como funciona el sdk, ya que una vez claro lo que quereis montar la app mostrada se hace rapido, al ser todo estático.

Buen trabajo.

1 respuesta
Gollumiko

#7 si pensáis en añadir Toast para avisar al usuario y no os convence el estilo que tienen, hay alternativas como Crouton ( https://github.com/keyboardsurfer/Crouton/ ), que se pueden personalizar de una forma bastante sencilla.

Buen trabajo con la app, hay detalles del diseño de la app que no me acaban de convencer, como que haya un scroll dentro de otro scroll (min 3:50 del vídeo) y siendo puntilloso al máximo en el código os habéis dejado algunos trozos de código "basura" como hello worlds y algún string fuera del strings.xml. Pero para ser una primera app, está muy bien.

1 1 respuesta
Nikoss

#8 - No hemos investigado sobre eso aún, pero me lo apunto para próximas apps.
#9 - Justo hemos estado aprendiendo un poco todo mientras lo integrábamos en la app.
#10 - Toda la razón tenemos código basura de pruebas de cosillas por pulir que no ha dado tiempo, todo eso es por falta de tiempo, se ha quedado en el repositorio por ahora y no tenemos tiempo de pulir esas cosillas porque hoy justo empezamos los finales ^! Pero queda pendiente para otro momento. Gracias por avisar.
Respecto al Scroll dentro del Scroll optamos por eso para no tener que recurrir a poner el texto demasiado pequeño. No se nos ocurrió ninguna otra idea xD.
De hecho la app para ser honestos tiene un bug que podríamos calificar de "gordo" ya que en la parte La bodega cuando avanzas hasta el mapa y vuelves a la primera pagina del ViewPager e intentas volver al mapa casca y no hemos tenido tiempo de averiguar por qué ocurre esto.

La sensación de ver tu app en el móvil en tu mano es flipante jaja :3