Skip to content

Instantly share code, notes, and snippets.

@ethan605
Last active November 8, 2017 03:29
Show Gist options
  • Save ethan605/a86c04270a8fd79281851ef66acca84a to your computer and use it in GitHub Desktop.
Save ethan605/a86c04270a8fd79281851ef66acca84a to your computer and use it in GitHub Desktop.

Architectures & Patterns

  • MVVM (Model - View - View Model): to avoid Massive View Controllers, but simpler than VIPER
  • ReactiveCocoa: functional reactive programming in Swift, supports hot/cold signals, active community
  • RxSwift: functional reactive programming in Swift, backed by ReactiveX, syntax-friendly & compatible with other ReactiveX extensions (RxJS etc...)  

Layouts

  • Storyboard: for specific UI customizations (colors, images,...)
  • SnapKit: for flexible layout rendering without touching complicated AutoLayout setups

Packages manager:

  • Swift Package Manager: official package manager for Swift, still in development, lacks of popular libraries compatibility, promissing to replace others in near future.
  • CocoaPods: centralized iOS packages manager, stable, best choice atm.
  • Libhunt: for libraries searching with visual comparisions

Libraries:

 * Alamofire / AFNetworking: for networking (AFNetworking is slightly more popular, but Alamofire is more active & trending)

Further readings:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment