Navigation is a framework that provides an another look on iOS app screens navigation.
The idea behind this project is that average iOS-app navigation can be represented as a finite-state-machine, where state is a particular screen (
UIViewController class), input is an
arbitrary user data.
In Navigation we use terms below:
- Gate: a submodule router. Contains transfer table and trigger that transfers.
- Tranfser: represents the transfer between screens itself. Contains information about conditions of transfer (input and state) and destination state.
- Input: user-defined enum values that trigger transfers and pass data between screens using swift patterns.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
- iOS 9.0+
- Xcode 9.0+
- Swift 4
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate Navigation into your Xcode project using CocoaPods, specify it in your
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '9.0' use_frameworks! target '<Your Target Name>' do pod 'Navigation', '~> 1.0' end
Then, run the following command:
$ pod install
Swift Package Manager
Note: At this time there is no official support for iOS targets or the related system libraries in SPM. So read this before processing.
All you need is to define Navigation dependency in your package manifest file:
import PackageDescription let package = Package( name: "YourPackageName", products: [ .library(name: "YourPackageName", targets: ["YourPackageName"]), ], dependencies: [ .package(url: "https://github.com/gitvalue/Navigation.git", from: "1.0.0"), ], targets: [ .target( name: "YourPackageName", dependencies: ["Navigation"]), .testTarget( name: "YourPackageNameTests", dependencies: ["Navigation"]), ] )
and then run
$ swift fetch
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update $ brew install carthage
To integrate Navigation into your Xcode project using Carthage, specify it in your
github "https://github.com/gitvalue/Navigation" ~> 1.0.0
carthage update --platform iOS to build the framework and drag the built
Navigation into your Xcode project.
For more information read this
If you prefer not to use either of the aforementioned dependency managers, you can integrate Navigation into your project manually by copying files from Source directory to your project.
- Dmitry Volosach - Initial work - @vlk1994
This project is licensed under the MIT License - see the LICENSE file for details