Git Product home page Git Product logo

nytimes's Introduction

NY Times

News app that displays the most popular articles

Language Platform

Version

1.0

Requirements

  • iOS 12.0+
  • Xcode 11+

Getting Started

  1. First download the project by cloning this repository on Xcode or by downloading the Zip file.
  2. Open shell window and navigate to the project.
  3. Run pod install.
  4. Open the corresponding .xcworkspace file.
  5. Select any iPhone Simulator to run the app on.

Pods used

pod 'RxSwift'
pod 'ReachabilitySwift'
pod 'Kingfisher'
pod 'FuntastyKit'
pod 'appstore-card-transition'

Summary

Black themed app listing the mostpopular & mostviewed news. Easy to change news data source by a simple enum switch. Offline data caching so you can read the news anytime you want.

Application Architecture

The NY Times App follows the Model-View-ViewModel-C + RXSwift (MVVM-C+RX) design pattern and uses advanced app development practices including Storyboards.

Unit Tests

NY Times has a unit test written to test the API that retrieves the news articles as well as a UI test that tests the app when clicking on the first article directs you to the details page. To run the unit tests press Command+u.

Automated Tests

NY Times is using fastlane command line for CD/CI A Jenkins server is connected to this project's remote repo. The Jenkins server will trigger a build once the source code is pushed to 'master'. The sever will prepare the app for release with app metadata within the 'fastlane' folder.

Fastlane

To run the fastlane tests, run fastlane tests. The below commands are used & deployed on Jenkins, more details in NYTimes Config [Jenkins].html & Fastfile

$ fastlane scan #To build the UnitTests & UITests 
$ fastlane fastlane-credentials ## To Add the ApplID that used with Apple Developer & iTunes Connect
$ fastlane produce #To Create the app on Apple Developer Portal if it wasn't created before
$ fastlane match development #To Create the profiles and certs on Apple Developer Portal & sync them with git
$ fastlane match appstore #Same as above
$ fastlane gym #To Build & Sign the app and export it as .ipa file

Features

  • Object oriented programming approach
  • Offline caching
  • MVVM-C+RX
  • XCTest
  • XCUITest

nytimes's People

Contributors

fouad-bakour 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.