Swift Network Images

Language License

Swift Network Images is a sample iOS app developed in Swift 2.2. While primarily intended for a series of blogs, the app demonstrates best practices and latest features of iOS and Swift language.

Blogs

Features

  • Written in Swift 2.2 and Xcode 7.3

  • MVVM, with simple DIY bindings for mutable ViewModels

  • Shows and easy way to build UI in code with iOS9 NSLayoutAnchor and UILayoutGuide

  • Custom UICollectionView Layouts, efficiently built on top of UICollectionViewFlowLayout using custom invalidation context.

  • Protocol-Oriented and Value-Based Programming

  • Testable design via Dependency Injections

  • DRY BDD tests using Quick’s Shared Assertions

Docs

Initial docs, generated with jazzy and hosted by GitHub Pages.

TODOs

  • UICollectionView Custom Layout examples:
    • [x] Global section header (pinnable, stretchable)
    • [x] Sticky section headers
    • [ ] Collapsible / expandable sections
    • [ ] Drag reodering
    • [ ] Swipe to edit
  • UICollectionView transitions / animations
  • UI Tests
  • Snapshot Tests

Building the project

1) Clone the repository

$ git clone https://github.com/akpw/SwiftNetworkImages

2) Install pods

$ cd SwiftNetworkImages
$ pod install

3) Open the workspace in Xcode

$ open "SwiftNetworkImages.xcworkspace"

4) Compile and run the app in your simulator

Requirements

  • Xcode 7.3
  • iOS 9