Skip to content

Latest commit

 

History

History

README.md

LeetCode

Build Environment

  1. Xcode 10.1 + Carthage.

npm and Carthage are dependency managment tools for javascript and iOS respectively. Check their project website for installation guide.

Build

After checking out project, build dependencies from carthage.

$ Resources/scripts/build-dependency.sh --carthage

--carthage:for building carthage dependency

PS: Script will build carthage in debug mode. If you prefer release mode, add --release in addition.

Dependencies

Client Infra managed dependencies

  • Quicksilver. Our Network library, handling HTTPDNS & Certificate Verification and so on.
  • Rainbow. Our project module management framework & protocol.

Third Party Dependencies

  • PureLayout. An autoLayout helper. You can still use iOS layout anchor or other machanism if you wish.
  • SVProgressHUD. Our Heads up display (HUD).
  • R.swift. Get strong typed, autocompleted resources like images, fonts and segues in Swift projects.
  • FLEX. A set of in-app debugging and exploration tools for iOS development. Only copy when DEBUG or QA_BUILD
  • RxSwift. Rx is a generic abstraction of computation expressed through Observable interface.
  • CocoaLumberjackCocoaLumberjack is a fast & simple, yet powerful & flexible logging framework for Mac and iOS.
  • KeychainSwift. Helper functions for storing text in Keychain.

Project Architecture

Read our module management protocol Rainbow carefully before trying to have a comprehension over this project.

Application, Modules and Frameworks

Here are some import files / directories you need to known.

LeetCode

Main application

  • Rainbow Project module management configuration

LeetCodeService

  • Configuration Every constant info like server base url, app key and so on should be managed in Configuration not Service
  • UserService User model & Login/Logout.

LeetCodeUI

UI dependency (Layout and etc.)

  • Style LeetCode UI styleguide. Look into this when you need named Font / Color