Giter Club home page Giter Club logo

github-list's Introduction

GitHub-List

About The Project

The project provides an opportunity to get a list of repositories according to the filter: current day, last week, and last month. Repositories can be added to favorites, viewed, and removed from the favorites list. A search is implemented for each of the filters. A search is executed for each of the filters.

Project goal

  • Show skill in the use of architectural approaches.
  • Show knowledge and ability to use third-party libraries.
  • Keep the code clean SOLID, DRY, KISS.
  • Show the ability to quickly and accurately write code.

Architectural solutions

Take the patented model-view-presenter as the basis. Navigation through the application implemented with the help of the coordinator paternoster. MVP has several advantages such as fast implementation in the project, easy to read, responsibility is distributed between the model and the presenter.

Technical solutions

  • For calls to the server Alamofire is used as it is quite a popular library so stable and easy to use
  • The Realm library is used to store data, it is quick to implement and fast to work. It is also popular with developers.
  • The popular Kingfisher library is used to work with images. Allows you to cache images.

Optimization - potential improvements

  • It is better to make requests to the server asynchronous (async await)
  • When working with the Realm database, you should always keep an eye on the threads. @MainActor async functions.
  • Add check for uniqueness to favorites.

Additionally

Сan use SwiftLint to organize your code in a cleaner

github-list's People

Contributors

dubkovictor avatar

Watchers

 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.