A simple MVC project
- Open
NYTimes.xcodeproj
in Xcode - Build and run!
No dependences required.
- MVC Design Pattern
- Class with Single Responsibility
- FolderStructure - Seperation on layers
- Asynchronous Network calls
- Caching Images
- Callbacks using Closure
- Enumeration - Extensions - Optional Binding
-
NewsListTableViewController.swift
- initial scene with NewsFeeds -
DetailNewsViewController.swift
- scene contains detailed News -
News.swift
- Data model with the information we want to show in the app. -
NYTimesAPI.swift
- Responsible for creating URL's and Validate API response data -
NewsStore.swift
- Important class acts as Interface for providing data for any viewcontroller -
NewsListTableViewCell.swift
- customcell for newsFNewsFeeds -
NetworkManager.swift
- Handles the Request for NYTimes API
NYTimesTests.swift
- Unit test class with simple DataModel initializationTest. Note - For this scope only one testcase written more Testcase can be done by mocking urlsession with protocols
Code Coverage enabled in Xcode and Investigated in report navigator Note - Third party libraries can be used to generate reports