Skip to content

djorkaeffalexandre/chuck-norris-facts

Repository files navigation

Chuck Norris Facts

Funny facts about Chuck Norris provided by https://api.chucknorris.io. Actions Status

Screenshots

Getting started

Requirements

This application was developed using these tools and no have warranty that it runs on older versions.

  • Xcode 11.7
  • Swift 5
  • Cocoapods 1.9.3

How to run

  1. You should clone the repository $ git clone git@github.com:djorkaeffalexandre/chuck-norris-facts.git
  2. Enter the project folder $ cd chuck-norris-facts
  3. Install dependencies $ pod install
  4. Open the project on Xcode $ open -a Xcode Chuck\ Norris\ Facts.xcworkspace

Architecture

This application conforms to MVVM-C (Model-View-ViewModel-Coordinators) pattern, that helps with separation of concerns and allows testing and implementation to be better than MVC. This application uses RxSwift which allows reacting to changes even with multiple threads and with lot less code, complexity and bugs. Using RxSwift and RxRealm we can listen to database changes and binding them to Views, View Models and View Controllers.

Dependencies

  • RxSwift/RxCocoa Reactive Programming in Swift.
  • RxDataSources UITableView and UICollectionView Data Sources for RxSwift.
  • RxRealm RxSwift extension for RealmSwift's types.
  • SwiftLint A tool to enforce Swift style and conventions.
  • SwiftGen The Swift code generator for Localizable.strings.
  • Lottie An iOS library to natively render After Effects vector animations.
  • RealmSwift Realm is a mobile database: a replacement for Core Data & SQLite.

Fastlane

We use Fastlane to provide CLI commands to easily build, test and deploy the application on Continuous Integration and Delivery platforms. You should install Fastlane and it's plugins using $ bundle install.

Commands

  • Run Unit and UI tests (Running on Github Actions) $ fastlane ios tests

  • Release the app to Test Flight (Beta Release) $ fastlane ios beta

Contact

Email: djorkaeff7@icloud.com