sxcore / el-debate-ios

EL Debate iOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status codecov codebeat badge

EL Debate

EL Debate is a platform by @elpassion to run an anonymous poll featuring yes-no-undecided question. This repository contains source code powering the iOS client.

Best practices

The project showcases a couple of good engineering practices:

  • Continuous Deployment to TestFlight,
  • Continuous Integration with Travis,
  • Dependency Injection,
  • Code quality measurements:
    • Code coverage,
    • Code quality by CODEBEAT.
  • Mock auto-generation with Sourcery,
  • Playground-driven view development (original idea),
  • Routing pattern (extended coordinator pattern),
  • UI interaction/snapshot testing.

ELDebate as a framework

Installation

🔥 This is only accessible to EL Passion organization members. 🔥

EL Debate can be installed as a framework with Cocoapods. Add following contents to Podfile:

source 'git@github.com:elpassion/podspecs.git'
source 'https://github.com/CocoaPods/Specs.git'

target 'ApplicationTargetToIntegrateELDebate' do
  pod 'ELDebate', '~> 1.0'
end

and run pod install command.

Running

To run EL Debate within your application use following code:

let navigationController = UINavigationController()
let debateRunner: DebateRunning = DebateRunner()

debateRunner.start(in: navigationController, applyingDebateStyle: true)

Keep in mind that:

  1. If debateRunner gets deallocated during runtime, the application will crash. Retain it as a field in your controller / coordinator.
  2. EL Debate uses custom navigation bar styling. The flag applyingDebateStyle: true is responsible for setting custom styling properties in navigation controller's bar.
  3. The navigationController has to be in your root view controller's hierarchy (obviously).

About

EL Debate iOS

License:GNU General Public License v3.0


Languages

Language:Swift 94.1%Language:Ruby 5.8%Language:Objective-C 0.2%