Skip to content

gulidelias/ItunesSearch

Repository files navigation

Itunes Search Platform API LinkedIn

Es una app que permite buscar canciones por nombre,autor y album. Al seleccionar una cancion, muestra a que album pertenece y todas las canciones del mismo. Asi tambien nos permite reproducir una preview de 30 segundos de cualquier cancion

haciendo uso de iTunes Search API

Screenshots

Arquitecura

Model-View-ViewModel (MVVM): El patrón Model-View-ViewModel (MVVM) ayuda a separar limpiamente la lógica de negocios y presentación de una aplicación de su interfaz de usuario (UI). facilita los tests, el mantenimiento y la evolución de una aplicación. También puede mejorar considerablemente las oportunidades de reutilización del código.

Clean Arquitecture: Es una arquitecurta en la que todas las capas que componen el software son independientes unas de otras de manera que, a la hora de ampliar las funcionalidades de un proyecto o cambiar un componente por otro, no haya conflicto y este cambio se realice con el menor coste de tiempo posible.

En el proyecto se usaron 3 capas

  • Domain
  • Data
  • App

Estructura del Proyecto


├── app (module)                 
│      ├── application  
│      ├── di  
│      └── ui            
|          ├── activity  
|          ├── adapter
│          └── viewmodel
│
├── data (module)             
│      ├── remote      
|      │   ├── api      
|      |   └── dto    
│      │
│      ├── repository        
│      └── utils
│      └── di
|         
└── domain (module)                 
       ├── entities  
       ├── repository  
       └── usecases            

Herramientas y Librerias

  • ViewBinding.
  • Coroutines: A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
  • LiveData: Data objects that notify views when the underlying database changes.
  • ViewModel: Stores UI-related data that isn't destroyed on UI changes.
  • Paging 3: The Paging Library helps you load and display small chunks of data at a time. Loading partial data on demand reduces usage of network bandwidth and system resources.
  • Retrofit 2: A Retrofit 2 Converter.Factory for Kotlin serialization.
  • Picasso:A powerful image downloading and caching library for Android
  • Exoplayer:ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet
  • Koin: for dependenci Injection
  • Mockito:Tasty mocking framework for unit tests in Java
  • Moshi:Moshi is a modern JSON library for Android, Java and Kotlin. It makes it easy to parse JSON into Java and Kotlin classes