NewsClient

NewsClient is a simple open-source news reading app for iOS supported with News API. With this project Swift beginners are invited to learn, contribute and share. Fork this repo to get started.


Project maintained by ChihHaoChen Hosted on GitHub Pages — Theme by mattgraham

NewsClient for iOS

NewsClient - Open Source News Reader

Swift NewsAPI.org Platform: iOS License: MIT Contributors Linkedin: @C.H.Chen

NewsClient Screenshots

About the App

NewsClient is a news reader, that provides not only current top News articles in the countries of your interest, but your collection of news articles. NewsClient uses the News API to download the news data.

With NewsClient, you can:

Please note that you need to supply your News API key to run this App either on your simulator or devices. As this App is open source currently, a paid tier API key can not be included. Furthermore, even though News API does not charge developers for accessing their database, you are encouraged to cite an attribution link when you make your work public. Please refer to the webpage for more details.

Goals of this project

NewsClient should help you as a reference for your development if you are interested in programmatically auto-layout. Whether you just started iOS development or want to learn more about Swift by seeing in action, hopefully, this project could be of some help during your journey. The original purpose of this project is to extend my previous work on App Store Mockup. But sooner as I was developing this App, I could not find a good newsreader either for polyglots or for users who want to browse news articles from different countries. NewsClient covers basic principles of iOS development:

The architecture is kept simple by using Appleā€™s recommended MVC pattern. This architecture is fine for small projects like this one. As for complex Apps, there are better options, such as MVVM, etc. The chosen architecture may limit the testability of the project, but then for simplicty, there are no unit tests present at all. Additionally, the app uses singletons for all services, including network and persistence. This further hinders testing. A better approach to enable this would be dependency injection that I am currently studying, and this project will be updated as I will be gaining more skills.

Getting started

To get started, fork the project and clone it to your local machine. Then you can open the project, and to run it; you will need to have the latest Apple developer tool Xcode installed. For 3rd-party libraries, this app uses the dependency manager Cocoa Pods. Pods are not uploaded into the repository, so you will have run pod install after cloning.

Contributing

I am looking forward to receiving your contributions.

Additionally, you may also assist as a beta tester. Periodically test-builds will become available via Testflight. To take part in testing those, submit an email address used as an Apple-ID to c.h.chen.developer@gmail.com to be added to the list of testers.

Future features under development

I still have some thoughts about developing this App with the following features, including but not limited to:

If you have other good ideas, please kindly contact me via c.h.chen.developer@gmail.com.