Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/latifatcii/DailyNews

Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding.
https://github.com/latifatcii/DailyNews

autolayout cocoapods collectionview ios ios-app ios-swift newsapi programmatic-interface rxblocking rxcocoa rxswift sdwebimage swift swift5 unit-testing

Last synced: about 1 month ago
JSON representation

Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding.

Awesome Lists containing this project

README

        

# Daily News

Hey ! Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding.

# Architecture
I preferred MVVM for this project because its more testable and maintainable than MVC. And VIPER would be an overkill for this project. I have solved binding problem with Functional Programming using RxSwift.

# Features
-Functional Programming with RxSwift

-Nested collection views.

-Custom views and layouts

-Pagination

-Programmatically UI

-Unit Tests for networking and view models.

# Todos
-Implement side Menu with screen edge pan and tap gestures.

-Add Unit tests for Search Screen

-Add refreshing to every screens.

-Subscribe to errors and show alert.

## Upcoming
-I will use Apple's Combine framework and Delegation Pattern for binding in different branches to see cons and pros of three different binding solution for MVVM.

## 3rd Party Libraries
-[SDWebImage](https://github.com/SDWebImage/SDWebImage)

-[RxSwift](https://github.com/ReactiveX/RxSwift)

-[TinyConstraints](https://github.com/roberthein/TinyConstraints)

## Usage
It is powered by NewsAPI! You should get your free developer API key from [NewsAPI](https://newsapi.org) and add it to DailyNews/Networking/APISettings.swift.

# ScreenShots

![](DailyNewsScreenShots/dailyNewsScreenshot.png)
![](DailyNewsScreenShots/news.png)
![](DailyNewsScreenShots/sideMenu.png)
![](DailyNewsScreenShots/sideMenu2.png)
![](DailyNewsScreenShots/categories.png)
![](DailyNewsScreenShots/categories2.png)
![](DailyNewsScreenShots/search.png)
![](DailyNewsScreenShots/sources.png)

## License

MIT