Giter Site home page Giter Site logo

coinbonle's Introduction

CoinbonLe

Ce Projet a été build sur une machine sur Windows.

Pour ce test j'ai utilisé les librairies suivante:

  • Uniflow - C'est la librarie d'architecture de présentation que j'ai utilisée dans ma dernière mission pour mettre en place du MVI, ça m'a facilité la mise en place de celle-ci étant donné que je connais comment fonctionnent les cas spéciaux comme la gestion des erreurs mais on peut très bien utiliser une implémentation faite main pour ce genre de petit projet ou plus lourd comme Mavericks.
  • Epoxy - Idem que Uniflow, j'ai utilisé cette librairie récemment et elle était très utile lors de la composition de liste de composants dans un écran. C'est limite overkill de l'utiliser pour ce projet mais elle m'évite de devoir faire la configuration du recyclerview (clipping/optimisation en fonctionne de la taille des items), de créer un adapter avec un viewholder pour l'item d'album en combinant le tout avec une gestion de diffing.
  • Store - En lisant le sujet j'ai vu 2 options pour permettre à l'application de garder en cache les albums et répondre à la problématique de performance. Store que j'ai souvent utilisé et qui m'évite de devoir gérer le fonctionnement d'un cache mémoire et d'orchestrer son invalidation, la récupération des nouvelles données depuis le server et son stockage dans la base de données. Paging 3 de de Jetpack que je n'avais jamais utilisé mais semble répondre à la même problématique, cependant j'avais déjà travaillé avec Paging 2 et j'avais rencontré des problèmes lorsque j'avais tenté d'écrire des tests avec donc je suis partie avec Store. Store a rencontré clairemnt sa limite lorsque j'ai dû ajouter de la pagination dans l'application devant la masse d'albums à afficher ce qui fait que mon implémentation dans ce projet n'est pas fonctionelle et si je devais recommencer je partirais directement avec Paging 3 surtout avec l'intégration dont celle-ci bénéficie avec d'autres librairie comme Epoxy et Room.
  • Room J'ai l'habitude de travailler aussi avec Room mais j'aurai très bien utilisé Realm ou SqlDelight mais les problèmes de threading de Realm me bloquent un peu et je n'ai jamais utilisé SqlDelight.
  • Retrofit Une implementation avec uniquement du Okhttp aurait très bien pu être faite mais l'intégration avec Moshi pour parser le Json facilite grandement la tâche.
  • Moshi J'ai l'habitude de l'utiliser avec sa bonne intégration avec Kotlin, surtout en complément avec MoshiX pour obtenir des sealed class depuis du Json.

coinbonle's People

Contributors

soulcramer avatar

Watchers

James Cloos avatar  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.