Git Product home page Git Product logo

melichallenge's Introduction

MeLi Challenge

  • Aplicación desarrollada según lo solicitado aquí
  • La aplicación puede ser descargada e instalada siguiendo este link

Compilación de la aplicación

  • Este proyecto fue hecho utilizando Gradle 3.4.2, Kotlin 1.3.50 y Android Studio 3.5.2.
  • El mismo contiene una variable de entorno URL_BASE configurada en el archivo app/build.gradle.
  • El SITE_ID utlilizado fue MLA.

Arquitectura

Se aplica en la aplicación el patrón MVP, Model View Presenter, con el fin de separar la capa de negocio de la capa de presentación. La UI está implementada en cada xml layout correspondiente y su controlador (Activity o Fragment), el cual implementa una interfaz llamada BaseView para mantenerlo indiferente al Presenter asociado.

Por esta razón, una estructura típica para una pantalla sería:

  • XML Layout.
  • Activity o Fragment implementando BaseView.
  • Un Presenter.

Mnunez Core

Se utilizó en este aplicación una librería de implementación propia que contiene las clases bases para la fácil implementación del patrón MVP. Además contiene la configuración de la capa de networking utilizando Retrofit, RxJava and Gson. También brinda un conjunto de extensiones y utlidades que son y pueden ser utilizadas en diferentes aplicaciones.

Funcionalidades

  • Buscador:

    • Se brinda al usuario un campo de búsqueda para realizar consultas sobre un producto.
    • Cada búsqueda realizada es guardada localmente en el dispositvo y presentada al usuario en forma de lista como búsqueda reciente.
    • A medida que se escribe en el campo de búsqueda, de haber búsquedas recientes que coincidan con lo escrito, se filtran los resultados de dichas búsquedas recientes.
  • Listado de Resultados:

    • La aplicación revela un listado de productos que coinciden con la consulta mencionada en el punto anterior.
    • Se provee de una imagen, el nombre y precio de cada producto.
    • Al tope del listado se indica cuántos resultados fueron encontrados.
    • La aplicación inicialmente revela los primeros 20 y a medida que el usuario navega por la lista, se cargan otros 20 más y así sucesivamente.
    • En la parte baja derecha de la pantalla, se muestra un indicador flotante con la cantidad de resultados que están siendo mostrados.
  • Detalle de un producto:

    • Esta pantalla revela información más completa sobre un producto previamente seleccionado en el listado antes mencionado.
    • Al tope, se muestra un slider con las imágenes de este producto y un indicador de cuántas imágenes hay.
    • Se muestra el nombre, precio y pago por cuotas, seguido de más búsquedas de ese vendedor (presentadas de forma similar al listado de producto, las cuales son funcionales y admiten que el usuario navege al detalle de la misma) y finalmente una descripción completa del producto.

melichallenge's People

Contributors

mathiasnunez avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.