Skip to content

Commit 457930e

Browse files
committed
[Dependencies] Update to ReSwift 0.2.4
1 parent a5b66f8 commit 457930e

28 files changed

+555
-443
lines changed

.DS_Store

0 Bytes
Binary file not shown.

Cartfile.resolved

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
github "Quick/Nimble" "v3.1.0"
22
github "Quick/Quick" "v0.8.0"
3-
github "ReSwift/ReSwift" "0.2.3"
3+
github "ReSwift/ReSwift" "0.2.4"

Carthage/Checkouts/Nimble/Nimble/Utils/Poll.swift

Lines changed: 0 additions & 86 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
github "Quick/Nimble" "v3.0.0"
1+
github "Quick/Nimble" "v3.1.0"
22
github "Quick/Quick" "v0.8.0"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#Upcoming Release
2+
3+
#0.2.4
4+
5+
*Released: 01/23/2015*
6+
7+
**API Changes:**
8+
9+
- Pass typed store reference into `ActionCreator`. `ActionCreator` can now access `Store`s state without the need for typecasts - @Ben-G
10+
- `Store` can now be initialized with an empty state, allowing reducers to hydrate the store - @Ben-G
11+
12+
**Bugfixes**
13+
14+
- Break retain cycle when using middelware - @sendyhalim
15+
16+
**Other:**
17+
18+
- Update Documentation to reflect renaming to ReSwift - @agentk
19+
- Documentation fixes - @orta and @sendyhalim
20+
- Refactoring - @dcvz and @sendyhalim

Carthage/Checkouts/ReSwift/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ import PackageDescription
22

33
let package = Package(
44
name: "ReSwift"
5-
)
5+
)

Carthage/Checkouts/ReSwift/README.md

Lines changed: 44 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
1-
[![Build Status](https://img.shields.io/travis/ReSwift/ReSwift.svg?style=flat-square)](https://travis-ci.org/ReSwift/ReSwift) [![Code coverage status](https://img.shields.io/codecov/c/github/ReSwift/ReSwift.svg?style=flat-square)](http://codecov.io/github/ReSwift/ReSwift) [![Carthage semver](https://img.shields.io/github/tag/ReSwift/ReSwift.svg?label=carthage&style=flat-square)](https://github.com/Carthage/Carthage) [![Platform support](https://img.shields.io/badge/platform-ios%20%7C%20osx%20%7C%20tvos%20%7C%20watchos-lightgrey.svg?style=flat-square)](https://github.com/ReSwift/ReSwift/blob/master/LICENSE.md) [![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/ReSwift/ReSwift/blob/master/LICENSE.md)
1+
# ReSwift
22

3-
#Related Projects
3+
[![Build Status](https://img.shields.io/travis/ReSwift/ReSwift/master.svg?style=flat-square)](https://travis-ci.org/ReSwift/ReSwift) [![Code coverage status](https://img.shields.io/codecov/c/github/ReSwift/ReSwift.svg?style=flat-square)](http://codecov.io/github/ReSwift/ReSwift) [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/ReSwift.svg?style=flat-square)](https://cocoapods.org/pods/ReSwift) [![Platform support](https://img.shields.io/badge/platform-ios%20%7C%20osx%20%7C%20tvos%20%7C%20watchos-lightgrey.svg?style=flat-square)](https://github.com/ReSwift/ReSwift/blob/master/LICENSE.md) [![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/ReSwift/ReSwift/blob/master/LICENSE.md)
44

5-
If you landed here, you should also check out the great work over at [ReduxKit](https://github.com/ReduxKit/ReduxKit), which brings the original Redux API to Swift. We all agree that collaboration and sharing of idea's will be beneficial to both projects. Go check it out. Feedback on both projects would be appreciated.
5+
**This library is a pre-release. Expect missing docs and breaking API changes.**
6+
7+
ReSwift is a [Redux](https://github.com/rackt/redux)-like implementation of the unidirectional data flow architecture in Swift. It embraces a unidirectional data flow that only allows state mutations through declarative actions.
8+
9+
### Merge announcement:
10+
11+
**ReduxKit** and **Swift-Flow** have joined forces! The result is **ReSwift**.
12+
13+
_The nitty gritty_: We decided to deprecate [ReduxKit](https://github.com/ReduxKit/ReduxKit) and keep it as a reference implementation of how an almost exact Redux implementation in Swift can be accomplished. It will no longer be actively maintained, but PRs are still welcome.
614

7-
#Table of Contents
15+
Swift-Flow has adopted the name **ReSwift** and moved to it's new home as a nod to it's Redux roots that remain at it's core. Going forward, our combined efforts will be focused on ReSwift and surrounding tooling.
816

9-
- [About Swift Flow](#about-reswift)
10-
- [Why Swift Flow?](#why-reswift)
17+
# Table of Contents
18+
19+
- [About ReSwift](#about-reswift)
20+
- [Why ReSwift?](#why-reswift)
1121
- [Getting Started Guide](#getting-started-guide)
1222
- [Installation](#installation)
1323
- [Testing](#testing)
@@ -17,19 +27,14 @@ If you landed here, you should also check out the great work over at [ReduxKit](
1727
- [Credits](#credits)
1828
- [Get in touch](#get-in-touch)
1929

30+
# About ReSwift
2031

21-
#About Swift Flow
22-
23-
**This library is a pre-release. Expect missing docs and breaking API changes.**
24-
25-
Swift Flow is a [Redux](https://github.com/rackt/redux)-like implementation of the unidirectional data flow architecture in Swift. It embraces a unidirectional data flow that only allows state mutations through declarative actions.
26-
27-
It relies on a few principles:
32+
ReSwift relies on a few principles:
2833
- **The Store** stores your entire app state in the form of a single data structure. This state can only be modified by dispatching Actions to the store. Whenever the state in the store changes, the store will notify all observers.
2934
- **Actions** are a declarative way of describing a state change. Actions don't contain any code, they are consumed by the store and forwarded to reducers. Reducers will handle the actions by implementing a different state change for each action.
3035
- **Reducers** provide pure functions, that based on the current action and the current app state, create a new app state
3136

32-
![](Readme/Assets/swift_flow_concept.png)
37+
![](Readme/Assets/reswift_concept.png)
3338

3439
For a very simple app, that maintains a counter that can be increased and decreased, you can define the app state as following:
3540

@@ -106,11 +111,11 @@ The `newState` method will be called by the `Store` whenever a new app state is
106111

107112
Button taps result in dispatched actions that will be handled by the store and its reducers, resulting in a new app state.
108113

109-
This is a very basic example that only shows a subset of Swift Flow's features, read the Getting Started Guide to see how you can build entire apps with this architecture.
114+
This is a very basic example that only shows a subset of ReSwift's features, read the Getting Started Guide to see how you can build entire apps with this architecture.
110115

111-
[You can also watch this talk on the motivation behind Swift Flow](https://realm.io/news/benji-encz-unidirectional-data-flow-swift/).
116+
[You can also watch this talk on the motivation behind ReSwift](https://realm.io/news/benji-encz-unidirectional-data-flow-swift/).
112117

113-
#Why Swift Flow?
118+
# Why ReSwift?
114119

115120
Model-View-Controller (MVC) is not a holistic application architecture. Typical Cocoa apps defer a lot of complexity to controllers since MVC doesn't offer other solutions for state management, one of the most complex issues in app development.
116121

@@ -120,25 +125,25 @@ This approach involves a lot of manual steps and is thus error prone and doesn't
120125

121126
It also leads to code that is difficult to understand at a glance, since dependencies can be hidden deep inside of view controllers. Lastly, you mostly end up with inconsistent code, where each developer uses the state propagation procedure they personally prefer. You can circumvent this issue by style guides and code reviews but you cannot automatically verify the adherence to these guidelines.
122127

123-
Swift Flow attempts to solve these problem by placing strong constraints on the way applications can be written. This reduces the room for programmer error and leads to applications that can be easily understood - by inspecting the application state data structure, the actions and the reducers.
128+
ReSwift attempts to solve these problem by placing strong constraints on the way applications can be written. This reduces the room for programmer error and leads to applications that can be easily understood - by inspecting the application state data structure, the actions and the reducers.
124129

125130
This architecture provides further benefits beyond improving your code base:
126131

127-
- Stores, Reducers, Actions and extensions such as Swift Flow Router are entirely platform independent - you can easily use the same business logic and share it between apps for multiple platforms (iOS, tvOS, etc.)
128-
- Want to collaborate with a co-worker on fixing an app crash? Use [Swift Flow Recorder](https://github.com/ReSwift/ReSwift-Recorder) to record the actions that lead up to the crash and send them the JSON file so that they can replay the actions and reproduce the issue right away.
132+
- Stores, Reducers, Actions and extensions such as ReSwift Router are entirely platform independent - you can easily use the same business logic and share it between apps for multiple platforms (iOS, tvOS, etc.)
133+
- Want to collaborate with a co-worker on fixing an app crash? Use [ReSwift Recorder](https://github.com/ReSwift/ReSwift-Recorder) to record the actions that lead up to the crash and send them the JSON file so that they can replay the actions and reproduce the issue right away.
129134
- Maybe recorded actions can be used to build UI and integration tests?
130135

131-
The Swift Flow tooling is still in a very early stage, but aforementioned prospects excite me and hopefully others in the community as well!
136+
The ReSwift tooling is still in a very early stage, but aforementioned prospects excite me and hopefully others in the community as well!
132137

133-
#Getting Started Guide
138+
# Getting Started Guide
134139

135-
[A Getting Started Guide that describes the core components of apps built with Swift Flow lives here](Readme/GettingStarted.md). It will be expanded in the next few weeks. To get an understanding of the core principles I recommend reading the brilliant [redux documentation](http://rackt.org/redux/).
140+
[A Getting Started Guide that describes the core components of apps built with ReSwift lives here](Readme/GettingStarted.md). It will be expanded in the next few weeks. To get an understanding of the core principles I recommend reading the brilliant [redux documentation](http://rackt.org/redux/).
136141

137-
#Installation
142+
# Installation
138143

139-
##Cocoapods
144+
## CocoaPods
140145

141-
You can install Swift Flow via CocoaPods by adding it to your `Podfile`:
146+
You can install ReSwift via CocoaPods by adding it to your `Podfile`:
142147

143148
use_frameworks!
144149

@@ -149,48 +154,48 @@ You can install Swift Flow via CocoaPods by adding it to your `Podfile`:
149154

150155
And run `pod install`.
151156

152-
##Carthage
157+
## Carthage
153158

154-
You can install Swift Flow via [Carthage]() by adding the following line to your Cartfile:
159+
You can install ReSwift via [Carthage]() by adding the following line to your Cartfile:
155160

156161
github "ReSwift/ReSwift"
157162

158-
#Checking out Source Code and Running Tests
163+
# Checking out Source Code and Running Tests
159164

160165
Due to an [issue in Nimble](https://github.com/Quick/Nimble/issues/213) at the moment, tvOS tests will fail if building Nimble / Quick from source. You can however install Nimble & Quick from binaries then rebuild OSX & iOS only. After checkout, run the following from the terminal:
161166

162167
```bash
163168
carthage bootstrap && carthage bootstrap --no-use-binaries --platform ios,osx
164169
```
165170

166-
#Demo
171+
# Demo
167172

168173
Using this library you can implement apps that have an explicit, reproducible state, allowing you, among many other things, to replay and rewind the app state, as shown below:
169174

170175
![](Readme/Assets/timetravel.gif)
171176

172-
#Extensions
177+
# Extensions
173178

174-
This repository contains the core component for Swift Flow, the following extensions are available:
179+
This repository contains the core component for ReSwift, the following extensions are available:
175180

176181
- [ReSwift-Router](https://github.com/ReSwift/ReSwift-Router): Provides a ReSwift compatible Router that allows declarative routing in iOS applications
177182
- [ReSwift-Recorder](https://github.com/ReSwift/ReSwift-Recorder): Provides a `Store` implementation that records all `Action`s and allows for hot-reloading and time travel
178183

179-
#Example Projects
184+
# Example Projects
180185

181-
- [CounterExample](https://github.com/ReSwift/CounterExample): A very simple counter app implemented with Swift Flow. This app also demonstrates the basics of routing with ReSwiftRouter.
182-
- [Meet](https://github.com/Ben-G/Meet): A real world application being built with Swift Flow - currently still very early on.
186+
- [CounterExample](https://github.com/ReSwift/CounterExample-Navigation-TimeTravel): A very simple counter app implemented with ReSwift. This app also demonstrates the basics of routing with ReSwiftRouter.
187+
- [Meet](https://github.com/Ben-G/Meet): A real world application being built with ReSwift - currently still very early on.
183188

184-
#Contributing
189+
# Contributing
185190

186-
There's still a lot of work to do here! I would love to see you involved! Some design decisions for the core of Swift Flow are still up in the air (see issues), there's lots of useful documentation that can be written and a ton of extensions and tools are waiting to be built on top of Swift Flow.
191+
There's still a lot of work to do here! I would love to see you involved! Some design decisions for the core of ReSwift are still up in the air (see issues), there's lots of useful documentation that can be written and a ton of extensions and tools are waiting to be built on top of ReSwift.
187192

188193
I personally think the best way to get started contributing to this library is by using it in one of your projects!
189194

190-
#Credits
195+
# Credits
191196

192197
- Thanks a lot to [Dan Abramov](https://github.com/gaearon) for building [Redux](https://github.com/rackt/redux) - all ideas in here and many implementation details were provided by his library.
193198

194-
#Get in touch
199+
# Get in touch
195200

196201
If you have any questions, you can find me on twitter [@benjaminencz](https://twitter.com/benjaminencz).

Carthage/Checkouts/ReSwift/ReSwift.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Pod::Spec.new do |s|
22
s.name = "ReSwift"
3-
s.version = "0.2.3"
3+
s.version = "0.2.4"
44
s.summary = "Unidirectional Data Flow in Swift"
55
s.description = <<-DESC
6-
Swift Flow is a Redux-like implementation of the unidirectional data flow architecture in Swift.
6+
ReSwift is a Redux-like implementation of the unidirectional data flow architecture in Swift.
77
It embraces a unidirectional data flow that only allows state mutations through declarative actions.
88
DESC
99
s.homepage = "https://github.com/ReSwift/ReSwift"

0 commit comments

Comments
 (0)