Fast Multi-store Redux-like architecture for iOS/OSX applications

Overview

Highway

Highway is implementation of Redux-like architecture pattern using Swift.

If you were looking for a something like this:

  • TEA (The Elm Architecture)
  • MVU (Model-View-Update)
  • MVI (Model-View-Intent)
  • Redux-like
  • Flux-like
  • UDF (Unidirectional Data Flow)
  • e.t.c

...but on Swift. Then you have found it!

Features

  • Multistore support (single state sharing)
  • Fast state change and sync
  • 100% business logic code coverage
  • Lightweight
  • Do not use 3rd party libraries
  • Can be used with SwiftUI
  • Support structs & classes for state (structs preferred)

Examples

  • Counter: Lighweight multi store app (Single view controller with multiple child view controller)
  • SwiftUI: SwiftUI View with updates
  • SocketPingPong: An app with stream of events (like web socket or server side events)
  • ReusableViewControllers: Reuse view controller or view which was written with imperative style
  • Animation: View animation triggered by state change
  • TableViewsSync: TableView with animations (deletions/insertions) and syncronisation (run on iPad)
  • InfiniteScroll: Enterprise solution app (with Dependency Injection, Flow Coordinator e.t.c.) (run on iPad)
preview_low.mov

Other

Requirements

  • iOS: 13.0
  • Swift: 5.4

Installation (Cocoapods / SPM)

Highway is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Highway'

Also you can integrate framework as SPM package

Alternatives

TODO:

  • Visual Scheme
  • App tests examples (E2E, Unit)
  • Update UIStack to UITableView in Animation example
  • Reusable views with ViewStore
  • UIView modules
  • Collapsable UITableView

Author

Dmitrii Cooler, [email protected]

Credits and thanks

The following people gave feedback on the library at its early stages and helped make the library what it is today:

Special thanks to:

License

Highway is available under the MIT license. See the LICENSE file for more info.

You might also like...
MyFirstIOSApp - Coding my first IOS app. Following Stanford University's course CS193p (Developing Applications for IOS using SwiftUI)

MyFirstIOSApp 📱 👨‍💻 Coding my first IOS app 📖 Following Stanford University'

Logger lets you quickly send messages to yourself as a means of fast note taking
Logger lets you quickly send messages to yourself as a means of fast note taking

Logger Logger lets you quickly send messages to yourself as a means of fast note taking. All messages you send to yourself show up chronologically. Ta

Poetic is a classic poetry reader. Recently released on the App Store.
Poetic is a classic poetry reader. Recently released on the App Store.

Poetic is a classic poetry reader. Enjoy thousands of poems from the greatest English poets.

iAppStroe is an Apple Store tool app written in SwiftUI.
iAppStroe is an Apple Store tool app written in SwiftUI.

iAppStore 简介 iAppStroe 是一款使用 SwiftUI 打造的苹果商店工具类 App。 1、提供苹果实时榜单查询,包含 iOS 和 iPad 的热门免费榜、热门付费榜、畅销榜,还有新上架榜、新上架免费榜、新上架付费榜等。 2、提供查询 app 详细页面内容、搜索 app、订阅 ap

Stanford University's course CS193p (Developing Applications for iOS using SwiftUI)
Stanford University's course CS193p (Developing Applications for iOS using SwiftUI)

Memorize Game 🎮 Stanford University's course CS193p (Developing Applications for iOS using SwiftUI) About the game You need to turn over the cards on

Stanford University's course CS193p (Developing Applications for iOS using SwiftUI)
Stanford University's course CS193p (Developing Applications for iOS using SwiftUI)

Memorize Game 🎮 Stanford University's course CS193p (Developing Applications for iOS using SwiftUI) About the game You need to turn over the cards on

Memorize Applications for iOS using SwiftUI
Memorize Applications for iOS using SwiftUI

Memorize My first application for iPhone that I wrote on Stanford University's Course CS193P (Developing Applications for iOS using SwiftUI). Below ar

Developing Applications for iOS using SwiftUI [cs193p] course
Developing Applications for iOS using SwiftUI [cs193p] course

Files for Developing Applications for iOS using SwiftUI [cs193p] course Study material for the course Developing Applications for iOS using SwiftUI gi

CS193p-2021 - Stanford University's course CS193p(Developing Applications for iOS using SwiftUI)

🏫 Stanford University's course CS193p - 2021(Developing Applications for iOS us

Releases(1.0.0)
Owner
Dmitrii Cooler
T-shaped iOS developer
Dmitrii Cooler
Best architecture for SwiftUI + CombineBest architecture for SwiftUI + Combine

Best architecture for SwiftUI + Combine The content of the presentation: First of the proposed architectures - MVP + C Second of the proposed architec

Kyrylo Triskalo 3 Sep 1, 2022
Mvi Architecture for SwiftUI Apps. MVI is a unidirectional data flow architecture.

Mvi-SwiftUI If you like to read this on Medium , you can find it here MVI Architecture for SwiftUI Apps MVI Architecture Model-View-Intent (MVI) is a

null 12 Dec 7, 2022
SwiftUI & Combine app using MovieDB API. With a custom Flux (Redux) implementation.

MovieSwiftUI MovieSwiftUI is an application that uses the MovieDB API and is built with SwiftUI. It demos some SwiftUI (& Combine) concepts. The goal

Thomas Ricouard 6.2k Jan 8, 2023
Simple Todo Application using SwiftUI / Firebase / Redux.

Simple Todo Application using SwiftUI/Firebase/Redux/Combine. Light _ _ _ _ Dark _ _ _ Feature Use SwiftUI fully. Use Firebase. Authentication Cloud F

Suguru Kishimoto 337 Dec 25, 2022
A Flutter tourism app that is backed-by Redux, shows animations, internationalization (i18n, English <=> Arabic), ClipPath, and fonts

A Flutter tourism app that is backed-by Redux, shows animations, internationalization (i18n, English <=> Arabic), ClipPath, and fonts. YouTube demo I

Abdulmomen Kadum عبدالمؤمن كاظم 277 Dec 28, 2022
Mac OSX app that displays window previews when hovering over app icon on the Dock.

Dock Window Preview Adds window preview functionality on hover for Mac Dock, an open-source alternative. This is very early in development and it will

Paul Sweeney 32 Dec 26, 2022
Fast iOS app to browse and search movies, tv, actors, credits

Fast iOS app to browse and search movies, tv, actors, credits

null 14 Dec 30, 2022
Jotify is an iOS app used for lightning fast note-taking and reminders, all written in swift.

Jotify About Jotify is an iOS app used for lightning fast note-taking and reminders, all written in swift. It uses several of Apple's newest framework

Harrison Leath 122 Jan 5, 2023
An alternative app store for non-jailbroken iOS devices

AltStore AltStore is an alternative app store for non-jailbroken iOS devices. AltStore is an iOS application that allows you to sideload other apps (.

null 1 Dec 9, 2021
AltStore is an alternative app store for non-jailbroken iOS devices.

AltStore AltStore is an alternative app store for non-jailbroken iOS devices. AltStore is an iOS application that allows you to sideload other apps (.

Riley Testut 8.3k Jan 9, 2023