Skip to content

Encuentra fácilmente dónde ver tus películas y series.

License

Notifications You must be signed in to change notification settings

bitasuperactive/CanIWatchIt

Repository files navigation

GitHub ReleaseGitHub DownloadsMin Android SDK


Logo

Can-I-Watch-It

Proyecto escolar (CFGS) de desarrollo de aplicaciones móviles.

Ver Demo · Reportar Bug · Sugerir Característica

Índice
  1. Sobre el proyecto
  2. Uso
  3. Objetivos
  4. Contribuir
  5. Licencia
  6. Reconocimientos

Sobre el proyecto

Busca cualquier película o serie para ver si está disponible en tus plataformas contratadas.





Requisitos de desarrollo

  1. Primera evaluación:
    • ViewBinding
    • ConstraintLayout
    • RecyclerView
    • Navigation Component y el plugin Safe Args con al menos 3 pantallas.
  2. Segunda evaluación:
    • ViewModel, LiveData y/o Flow. (2 puntos)
    • Arquitectura MVVM (2 puntos) con Patrón repositorio (2 puntos) con al menos una fuente de datos de las siguientes:
      • Base de datos local con Room
      • API Remota con Retrofit.
    • El proyecto debe ir acompañado de un documento con una breve explicación del mismo, las herramientas usadas y su cometido. Con una carilla de un Word se pueden explicar los aspectos fundamentales, pero no os pongo extensión máxima.

Con los puntos anteriores será suficiente para aprobar, y dependiendo de la complejidad del proyecto o de las fuentes de datos usadas, incluso para obtener una nota de partida destacada. Es decir, puntuará mejor si usáis Room + Retrofit que si sólo usáis una de las dos.

Valoraciones adicionales

  • Cualquier otra funcionalidad será valorada positivamente (uso de menús para facilitar la navegación, inclusión de contenido multimedia como audio o vídeo, fuentes de datos adicionales, servicios,… ), etc…
  • Se tendrá en cuenta la originalidad del proyecto. Es decir, si hacéis un proyecto que sea un calco de las funcionalidades y pantallas vistas en proyectos hechos en clase, se valorará menos.
  • También se valorarán aspectos como la usablidad, el uso de componentes modernos Material3, la robustez (control de errores y excepciones, validación de entradas de datos, etc…)
  • No se espera algo profesional, o que realmente sea útil y monetizable, pero sí algo que ponga en práctica lo visto en clase, y cualquier cosa que queráis añadir.

(volver al inicio)

Herramientas utilizadas

  • ViewBinding
  • ConstraintLayout
  • RecyclerView
  • Navigation Component y Safe Args
  • ViewModel y LiveData.
  • Arquitectura MVVM con Patrón repositorio.
  • Base de datos local con Room
  • Retrofit.
  • Navigation menu.
  • Otros Plugins: Json to Kotlin data class.
  • Watchmode
  • Pantry

Note

Los Endpoints utilizados son de acceso gratuito y su uso está limitado.

(volver al inicio)

Uso

1️⃣ Al iniciar la aplicación por primera vez deberás seleccionar las plataformas de streaming que tengas contratadas; podrás cambiar tu elección desde esa misma pestaña de "Plataformas".


Note

  • Suscribirse a plataformas de streaming no tiene mayor utilidad que mostrarlas a color en los resultados de búsqueda.

2️⃣ Desde la pestaña principal "Buscar", que a partir de ahora te aparecerá directamente, podrás buscar los títulos que quieras ver. Si el contenido resultante está disponible en cualquiera de tus plataformas, el logo de esta aparecerá a color, de lo contrario estará teñido de gris.

Important

Recuerda buscar el nombre original o americano de la producción, la api no contempla los títulos traducidos.


3️⃣ Interactúa con los títulos resultantes:

  • Pincha en la caratula para abrir la web de IMDb con toda la información del título, trailers disponibles y contenidos similares.
  • Pincha en cualquiera de las plataformas disponibles para abrir la aplicación correspondiente si la tienes instalada o, tu navegador por defecto, con la página del título.

(volver al inicio)

Permisos requeridos

  • INTERNET

Los siguientes permisos permiten actualizar automáticamente la aplicación:

  • READ_EXTERNAL_STORAGE
  • WRITE_EXTERNAL_STORAGE
  • REQUEST_INSTALL_PACKAGES

Vease releases para una versión más restrictiva.

(volver al inicio)

🚀 Objetivos

Camino principal:

  • Cumplir los requisitos para el desarrollo
  • Implementar actualizaciones automáticas a través de este repositorio
    • Recuperar la última versión disponible
    • Diseñar una interfaz básica para la carga del proceso
    • Gestionar la instalación automáticamente
  • Dar funcionalidad a los iconos de las plataformas para que abran la aplicación correspondiente con la página del título

Implementaciones adicionales:

  • Cambiar la api a la de JustWatch
  • Implementar cámbio de región dinámico

Vease open issues para una lista completa de las características propuestas y bugs conocidos.

(volver al inicio)

📌 Contribuir

Las contribuciones son lo que hace que la comunidad de código abierto sea un lugar increíble para aprender, inspirarse y crear. Cualquier contribución que hagas será muy apreciada.

Si tienes una sugerencia que pueda mejorar este proyecto, por favor haz un fork del repositorio y crea un pull request. También puedes abrir un issue con la etiqueta "enhancement". ¡No olvides darle una estrella al proyecto! ¡Gracias de nuevo!

  1. Haz un fork del proyecto
  2. Crea tu rama de funcionalidades (git checkout -b feature/AmazingFeature)
  3. Haz commit de tus cambios (git commit -m 'Añadir AmazingFeature')
  4. Haz push a la rama (git push origin feature/AmazingFeature)
  5. Abre un pull request

(volver al inicio)

📜 Licencia

Distribuido bajo la licencia MIT. Vease LICENSE para más información.

(volver al inicio)

🤝 Reconocimientos

(volver al inicio)