Giter VIP home page Giter VIP logo

swiftmazing's Introduction

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

  • 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

swiftmazing's People

Contributors

heliomesquita avatar

Watchers

James Cloos 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.