This repository is for an assignment

Related tags

Guides ArticlesTask
Overview

ArticlesTask

This repository is for an assignment

How to run the app

How to test the app

Code Walkthrough

  • Design Pattern: MVVM
  • ArticleViewController: Class contains view related code like Initialising UI and updating the UI after fetching data from API.
  • ArticleViewModel: Contains the business logic and the intermediate between View (ArticleViewController) and the Model(Article) binded by closure callbacks.
  • Article : Class that acts the model to contains the data fetched from API.
  • ArticleTableViewCell: A custom class for custom cells inheriting from UITableViewCell.
  • ArticleDetailViewController: A detail view class, which displays data of the selected article.
  • Network Layer :

    *The network layer is implemented using the Protocol Oriented Programming (POP) paradigm to make it modular,testable and mockable.

  • ProviderProtocol: A provider Protocol acts as a provider to send requests.
  • URLSessionProtocol: This protocol is used for creating stubs and mock objects to test the Network layer.
  • URLSessionProvider: URLSessionProvider conforms to ProviderProtocol. This approach is necessary to test network layer. It’s essential because in easy way you can switch session with mock file and simulate responses from API without internet connection.
  • RequestProviding: A protocol to build the URL with baseURL, apiKey and period seleced.

Class Diagram

Alt text

Code Coverage Report

alt text

Screen Shots

alt text

alt text

You might also like...
CS193p---Assignments - Assignment Solutions for Stanford CS193p - Developing Apps for iOS

Assignment Solutions for Stanford CS193p - Developing Apps for iOS Note: This is ongoing work Task done Programming Assignment 1 x Programming Assignm

CodePathPrework - The pre-work assignment for the CodePath program. Involves making a tip calculator using XCode.

Pre-work - Tip Calculator Tip Calculator is a tip calculator application for iOS. Submitted by: David Zhu Time spent: 3 hours spent in total User Stor

IOS-PokemonQuizApp - Assignment to make a responsive iOS app. App has to connect with an external API

iOS-PokemonQuizApp Assignment to make a responsive iOS app. App has to connect with an external API. The Project The idea of the project is to make a

AssignmentChalkboard - A simple assignment made in Swift
AssignmentChalkboard - A simple assignment made in Swift

AssignmentChalkboard This is a simple assignment that i made in Swift

Assignment 2 - A fully functional example in the CardinalKit-Example directory
Assignment 2 - A fully functional example in the CardinalKit-Example directory

Assignment 2 - A fully functional example in the CardinalKit-Example directory

Assignment: iOS app in VIP Clean architecture

countries_vip_clean Assignment: iOS app in VIP Clean architecture. for countries

Take home assignment for an iOS developer role interview process.

Cocktails My solution to a take home assignment I was given as a step of an interview process for an iOS developer role. The task I was asked to write

Repository for the dgca verifier iOS app.

EU Digital COVID Certificate Verifier App - iOS About • Development • Documentation • Support • Contribute • Contributors • Licensing About This repos

Repository for the dgca wallet app for iOS.

EU Digital COVID Certificate Wallet App - iOS About • Development • Documentation • Support • Contribute • Contributors • Licensing About This reposit

Repository for App IOS Reddit Top 50

iOS Reddit Top50 Repository for App IOS Reddit Top 50 App shows a list for the Top 50 posts in [Reddit] - www.reddit.com/top Requirements iOS 14.0+ Xc

Repository with base samples for playing HLS/DASH with CMAF video, across as many platforms as possible. Includes steps for encoding and packaging your own test content.

Video Everything Repository with minimal samples for playing HLS/DASH with CMAF video, across as many platforms as possible. Content and License All t

This repository accompanies Test-Driven Development in Swift: Compile Better Code with XCTest and TDD
This repository accompanies Test-Driven Development in Swift: Compile Better Code with XCTest and TDD

Apress Source Code This repository accompanies Test-Driven Development in Swift: Compile Better Code with XCTest and TDD by Gio Lodi (Apress, 2021). D

KYSelectBox Repository
KYSelectBox Repository

KYSelectBox Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements platform :ios, '12.

WordPress for iOS - Official repository

WordPress for iOS Build Instructions Please refer to the sections below for more detailed information. The instructions assume the work is performed f

Dungeon Crawl: Stone Soup official repository

Dungeon Crawl Stone Soup Dungeon Crawl Stone Soup is a game of dungeon exploration, combat and magic, involving characters of diverse skills, worshipp

This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.
This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.

iOS Viper Architecture: Sample App This repository contains a detailed sample app that implements VIPER architecture using libraries and frameworks li

APT repository app for jailbroken iOS devices
APT repository app for jailbroken iOS devices

Find Your Repos! RepoFinder is here to bring you a seamless way to add all of your favorite repositories right into the package manager of your choice

Repository to store the projects made during the 100 Days of Swift challenge by Paul Hudson of Hacking with Swift.

100DaysOfSwift 📱 Repository to store the projects made during the 100 Days of Swift challenge by Paul Hudson of Hacking with Swift. Days 1-12: Introd

Owner
Tauqeer Ahmed Khan
iOS/macOS developer
Tauqeer Ahmed Khan
An assignment for ios Dev intern position

iOS Assignment An assignment for ios Dev intern position Design Process A UI design for the project is made in FIGMA. Link here Figma Sneek Peek Descr

Divyam Solanki 11 Apr 28, 2022
Bonjourr-Safari - Safari repository for Bonjourr

Install Start Clone this repo & the original repo Open Bonjourr Startpage.xcodep

Victor Azevedo 2 Nov 29, 2022
RealmSwift, MVVM with Repository, DI, Coordinators,

Todo_App_With_RealmDB Lol, just playing around because I'm bored ?? Refreshing usage of Realm, been a while. New updates look cool though (first time

Emmanuel Omokagbo 2 Aug 4, 2022
This repository shows how handle Rest API's in SwiftUI and Combine

SwiftUI-Combine-Networking This repository shows how handle Rest API's in SwiftUI and Combine Endpoints enum includes paths which will be added the en

Abdullah Kardaş 5 Jan 1, 2023
This repository is for an assignment

ArticlesTask This repository is for an assignment How to run the app Pull the latest code from "https://github.com/ahmed23khan/ArticlesTask.git" Open

Tauqeer Ahmed Khan 0 Nov 25, 2021
An assignment for ios Dev intern position

iOS Assignment An assignment for ios Dev intern position Design Process A UI design for the project is made in FIGMA. Link here Figma Sneek Peek Descr

Divyam Solanki 11 Apr 28, 2022
Soltia Assignment with swift

#Soltia Assignment. This repository will be public for 72 hours after submitting the task by email in order to respect the effort done and to avoid ot

null 0 Oct 30, 2021
Walk! Is an application developed for FIT3178 (iOS App Development)'s Final Assignment

WalkWalkWalk- Walk, Walk, Walk! Is an application developed for FIT3178 (iOS App Development)'s Final Assignment, S1 2021 Monash University. Created b

null 0 Oct 26, 2021
Sytac iOS assignment | Movies|

Sytac iOS assignment | Movies The time has come for us to unveil the code challenge Sytac has prepared for you. The challenge involves working with th

Paulo Eduardo Correa 1 Feb 10, 2022
Assignment 9 - Weather Search iOS App

WeatherSearchiOS Assignment 9 - Weather Search iOS App This is my implementation of assignment 9 for csci 571 for fall 2021. Requirement In this exerc

Aamulya Sehgal 0 Dec 26, 2021