Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

This application is an example to display News information using MVVM + RxSwift and (MVVM + RxSwift) example in Swift. It uses the News API (https://newsapi.org).

Notifications You must be signed in to change notification settings

hadanischal/NewsArticle

Repository files navigation

NewsArticle

Requirements:

  • iOS 13.0+
  • Xcode 11.6
  • Swift 5.2

Objective:

This sample app to demonstrate some aspect of clean architecture using MVVM pattern, RxSwift, dependency injection, SOLID principles , loose coupling, unit testing, Dark mode support and some of the best practices used in modern iOS programming using Swift.

App Goal:

  • This project was intended to work as a News List demo projects for iOS using Swift.
  • The demo uses the News API which returns information in a JSON format.
  • Use of UITableViewController to display News list information.
  • Implemented Unit test for business logic.
  • Use of RxSwift for Reactive programming.

Installation

  • Xcode 11.6(required)
  • Clean /DerivedData folder if any
  • Run the pod install pod install
  • Run Cuckoo script to Mock your Swift objects ./Cuckoo-GeneratedMocks.sh
  • Run SwiftGen script to generator Swift code for assets, Localizable.strings etc ./generate-swiftgen.sh
  • Then clean and build the project in Xcode

3rd Party Libraries

Technical notes:

  • MVVM - My preferred architecture.
    • MVVM stands for "Model View ViewModel"
    • It’s a software architecture often used by Apple developers to replace MVC. Model-View-ViewModel (MVVM) is a structural design pattern that separates objects into three distinct groups:
  • Models hold application data. They’re usually structs or simple classes.
  • Views display visual elements and controls on the screen. They’re typically - subclasses of UIView.
  • View models transform model information into values that can be displayed on a view. They’re usually classes, so they can be passed around as references.

Alt text

Screenshot:

Screen Shot 1

Screen Shot 2

App Demo

About

This application is an example to display News information using MVVM + RxSwift and (MVVM + RxSwift) example in Swift. It uses the News API (https://newsapi.org).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /