6

GitHub - HelioMesquita/Swiftmazing: A iOS application with layout based on App S...

 4 years ago
source link: https://github.com/HelioMesquita/Swiftmazing
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

Swiftmazing Logo

Swift 5.1 Xcode 11.3 Cocoapods License codecov Build Status

A iOS application with layout based on App Store that can check the most starred and last updated Swift repository. It were developed in a modular way, with their respective tests using Quick, Nimble, Snapshots and/or KIF, the using the modern collection view and integrated with fastlane and slather generating test coverage

Features

appscreenlight.png

appscreendark.png

  • Modularization
  • CLEAN Swift Architecture (VIP)
  • Modern Collection View
  • Mock Mode
  • Pull-to-Refresh
  • Infinity Scroll using PrefetchItems
  • View Code (UIKit)
  • Preview using UIViewRepresentable
  • Dark Mode
  • Internationalization (English and PT-Br)
  • Unit tests
  • Snapshots Tests
  • Functional Tests
  • Travis CI integration
  • Codecov integration
  • Fastlane integration
  • Slather integration

Prerequisites

Installing

First of all download and install Xcode and Cocoapods, then clone the repository

https://github.com/HelioMesquita/Swiftmazing.git

Go to cloned directory and execute

pod install

Open the directory project and double tap on Swiftmazing.xcworkspace

Running the tests

For each scheme in project run some tests targets

  • The visual scheme runs the snapshots tests for all views and view controllers
  • The Infrastructure scheme runs the unit tests using Quick and Nimble for all network tests
  • The Swiftmazing scheme runs the unit tests using Quick and Nimble for all bussiness and presentation rules
  • The SwiftmazingMock scheme runs the functional tests using KIF in a mocked application
  • The SwiftmazingTests scheme runs all tests

The all tests can be run also using Fastlane just execute

bundle install
bundle exec fastlane tests

When running the tests using this command automaticaly runs Slather that generates a test relatory of code coverage in xml. The relatory can be found at

fastlane/slather

If you want to see relatory in html, modify the .slather.yml changing key coverage_service to html

Built With

  • Quick - The Swift (and Objective-C) testing framework.
  • Nimble - A Matcher Framework for Swift and Objective-C
  • Nimble-Snapshots - Nimble matchers for FBSnapshotTestCase
  • SDWebImage - Asynchronous image downloader with cache support as a UIImageView category
  • PromiseKit - Promises for Swift & ObjC.
  • KIF - Keep It Functional - An iOS Functional Testing Framework

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK