Giter Site home page Giter Site logo

ninenewsarticles's Introduction

NineNewsArticles

Nine News Code Challenge Project

Project Architecture

for this sample project and given its small scope MVVM is the most suitable, keeping things concise, testable and maintainable.

MVVM suggests separating the data presentation logic(Views or UI) from the core business logic part of the application.

The separate code layers of MVVM are (Model-View-ViewModel) : Model: This layer is responsible for the abstraction of the data sources. Model and ViewModel work together to get and save the data. View: The purpose of this layer is to inform the ViewModel about the user’s action. This layer observes the ViewModel and does not contain any kind of application logic. ViewModel: It exposes those data streams which are relevant to the View. Moreover, it serves as a link between the Model and the View.

Dependency Manager

Swift Package Manager is used to manage dependencies. SDWebImage dependency is added to cache images.

Unit tests

The exact same folder structure has been followed for unit tests to easily find Class's corresponding tests.

the name of the test function reflects the testing purpose. In addition, expectation description is added to make it more clear.

Code Compilation

SPM takes care of managing and installing dependencies for you, so after the first launch wait for the package to be downloaded and built the run the project.

note: incase of error, in Xcode select File -> Packages -> Reset Package Caches, then try build and run again.

ninenewsarticles's People

Contributors

abdullahashi 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.