Displays list of Marvel Characters for iOS

Related tags

Testing Marvel
Overview

Marvel

Features:

  • Displays list of Marvel Characters
  • Displays detail of selected Marvel Character.

Screenshots of application:

Installation:

Dependecies in the project are provided through Tuist which can be modified using project.swift file. To install the dependencies commands we have a build script build.sh which has tuist generate command which generate the project and workspace from project.swift file. You need to run ./build.sh command on the terminal at project path. It will generate .xcodeproj file. We need to open project file and wait till following dependencies are loaded, then you can build the app and the run it on simulator.

Dependencies:

  • Moya: For creating Network call.
  • Kingfisher: For loading remote images.

Architecture: MVVM + Clean

In this architecture we have code grouped in 3 layers

  • Presentation Layer
  • Domain Layer
  • Data Layer

Presentation Layer:

Presentation Layer contains UI which are ViewControllers. ViewControllers are coordinated by ViewModels which execute one or many Use Cases. The Presentation Layer depends only on the Domain Layer. The primary responsibility of the presentation layer is how the application would be presented to the end user.

Domain Layer:

Domain layer is the independent layer which includes the business logic of the app . It Contains domain models, Use cases and repository protocol. Each use case executes a single business unit. It is totally independent and can be reused by other projects. It Fetches data from Repository through repository protocol. Domain layer doesn’t know any thing about outer layers i.e presentation layer, Data layer.

Data Layer:

Data Layer contains Repository Implementations and one or many Data Sources. Repositories are responsible for coordinating data from different Data Sources. Data Source can be Remote or Local. The Data Layer depends only on the Domain Layer. As This layer exposes a data source API to outside classes.

Unit Test:

For Unit Test we have used XCTTest framework.

  • In Presentation layer, unit test is covered for View Models.
  • In Domain layer, unit test is covered for UseCases.
  • In Data layer, unit test is covered for Entities.
You might also like...
Library for unifying the approach to network mocking in iOS unit- & UI-tests.

TinkoffMockStrapping Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements Installati

test ios UnitTest and UITest

github_actions Bundlerの導入 fastlaneやiOSパッケージマネージャであるCocoaPodsはRubyのライブラリ 開発チームで使用するバージョンを揃えるためにBundlerを導入する bundlerのインストール gem install bundler Gemfile

Fizz Buzz stub for interviewing iOS candidates

FizzBuzz Write a program that accepts an integer =1 and returns a list of strings For numbers divisible by 3, return “Fizz” For numbers divisible by

iOS Test Hasitha

Welcome to the Bidone iOS Coding Test! iOS Create a simple application with the list of orders from viewModel and display them in a list. When a user

iOS Test for Openbank by David Moreno Lora
iOS Test for Openbank by David Moreno Lora

MarvelMobileTest-iOS iOS Test for Openbank by David Moreno Lora Installation Clone the project and install the dependencies using pod install Once th

Simple BDD for iOS

Kiwi: Simple BDD for iOS Kiwi is a Behavior Driven Development library for iOS development. The goal is to provide a BDD library that is exquisitely s

A Mac and iOS Playgrounds Unit Testing library based on Nimble.
A Mac and iOS Playgrounds Unit Testing library based on Nimble.

Spry Spry is a Swift Playgrounds Unit Testing library based on Nimble. The best thing about Spry is that the API matches Nimble perfectly. Which means

Multivariate & A/B Testing for iOS and Mac

This library is no longer being maintained. You can continue to use SkyLab in your projects, but we recommend switching another solution whenever you

Remote configuration and A/B Testing framework for iOS

MSActiveConfig v1.0.1 Remote configuration and A/B Testing framework for iOS. Documentation available online. MSActiveConfig at a glance One of the bi

Owner
null
Marvel-heroes - Marvel Heroes App Built with Swift

Marvel Heroes Marvel Heroes repository based on Marvel API https://developer.mar

null 0 Jan 5, 2022
The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.

The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data. I have put together

Romain Pouclet 589 Sep 7, 2022
Test-To-Do-List - Test To Do List with core data

test-To-Do-List This is my first pet project with core data Launch screen Main s

Artem 0 Feb 26, 2022
Bank-Test - MVVM List-Details App using combine

Bank-Test MVVM List-Details App using combine Pods used in this Task Moya with A

Ahmed Allam 0 Jan 1, 2022
Kfm-ios-test - Test online for iOS Developer position in Kimia Farma or PT. Buana Varia Komputama

kfm-ios-test Kimia Farma Mobile iOS Test Test online for iOS Developer position

Erwindo Sianipar 3 Feb 23, 2022
PinpointKit is an open-source iOS library in Swift that lets your testers and users send feedback with annotated screenshots using a simple gesture.

PinpointKit is an open-source iOS library in Swift that lets your testers and users send feedback with annotated screenshots using a simple gesture. F

Lickability 1.1k Jan 6, 2023
Snapshot testing tool for iOS and tvOS

SnapshotTest is a simple view testing tool written completely in Swift to aid with development for Apple platforms. It's like unit testing for views.

Pär Strindevall 44 Sep 29, 2022
ShortWebCore - This iOS library lets you run automations on Web Views.

This iOS library lets you run automations on Web Views. Example (Optional) Declare class conforming to AutomationRunnerDelegate: import S

Emma Cold 19 Dec 26, 2022
Implementing and testing In-App Purchases with StoreKit2 in Xcode 13, Swift 5.5 and iOS 15.

StoreHelper Demo Implementing and testing In-App Purchases with StoreKit2 in Xcode 13, Swift 5.5, iOS 15. See also In-App Purchases with Xcode 12 and

Russell Archer 192 Dec 17, 2022
Swift Package with examples of how to tests iOS apps

GimmeTheCodeTDD A swift package with examples of unit tests in iOS development. Requirements Xcode 13 Content Dependency Injection Constructor Injecti

Dominik Hauser 8 Oct 11, 2021