You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-11
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# A Kotlin port of The Composable Architecture (aka **TKA**)
2
2
3
-
⚠️ THERE ARE STILL SEVERAL ROUGH EDGES SO USE IT AT YOUR OWN RISK ⚠️
3
+
⚠️ ALTHOUGH IT'S BEING USED IN PRODUCTION, THERE ARE STILL SEVERAL ROUGH EDGES SO USE IT AT YOUR OWN RISK ⚠️
4
4
5
5
[Point-Free's](https://github.com/pointfreeco)[The Composable Architecture](https://github.com/pointfreeco/swift-composable-architecture) is a Swift library so this "fork" has ported the core concepts in Kotlin in order to help share domain logic amongst Android/iOS apps.
6
6
@@ -49,7 +49,6 @@ The Composable Architecture is a library for building applications in a consiste
49
49
-[FAQ](#faq)
50
50
-[Requirements](#requirements)
51
51
-[Help](#help)
52
-
-[Credits and thanks](#credits-and-thanks)
53
52
-[Other libraries](#other-libraries)
54
53
-[License](#license)
55
54
@@ -298,6 +297,7 @@ No debugging tools have been ported yet... apart from a simple `reducer.debug()`
298
297
* How does the Composable Architecture compare to Elm, Redux, and others?
299
298
<details>
300
299
<summary>Expand to see answer</summary>
300
+
301
301
The Composable Architecture (TCA) is built on a foundation of ideas popularized by Elm and Redux, but made to feel at home in the Swift language and on Apple's platforms.
302
302
303
303
In some ways TCA is a little more opinionated than the other libraries. For example, Redux is not prescriptive with how one executes side effects, but TCA requires all side effects to be modeled in the `Effect` type and returned from the reducer.
@@ -306,6 +306,7 @@ No debugging tools have been ported yet... apart from a simple `reducer.debug()`
306
306
307
307
And then there are certain things that TCA prioritizes highly that are not points of focus for Redux, Elm, or most other libraries. For example, composition is very important aspect of TCA, which is the process of breaking down large features into smaller units that can be glued together. This is accomplished with the `pullback` and `combine` operators on reducers, and it aids in handling complex features as well as modularization for a better-isolated code base and improved compile times.
308
308
</details>
309
+
</br>
309
310
310
311
* Why isn't `Store` thread-safe? <br> Why isn't `send` queued? <br> Why isn't `send` run on the main thread?
311
312
<details>
@@ -314,6 +315,18 @@ No debugging tools have been ported yet... apart from a simple `reducer.debug()`
314
315
When an action is sent to the `Store`, a reducer is run on the current state, and this process cannot be done from multiple threads. If you are using an effect that may deliver its output on a non-main thread, you must explicitly perform `.observeOn()` in order to force it back on the main thread.
315
316
316
317
This approach makes the fewest number of assumptions about how effects are created and transformed, and prevents unnecessary thread hops and re-dispatching. It also provides some testing benefits. If your effects are not responsible for their own scheduling, then in tests all of the effects would run synchronously and immediately. You would not be able to test how multiple in-flight effects interleave with each other and affect the state of your application. However, by leaving scheduling out of the `Store` we get to test these aspects of our effects if we so desire, or we can ignore if we prefer. We have that flexibility.
318
+
</details>
319
+
</br>
320
+
321
+
* How to run the tests?
322
+
<details>
323
+
<summary>Expand to see answer</summary>
324
+
325
+
Via the command line:</br>
326
+
 Run `./gradlew test`</br>
327
+
Via Android Studio:</br>
328
+
 Right-click on the `tka` module and select `Run "Tests in 'kotlin-composable-architecture.tka'"`
329
+
</details>
317
330
318
331
## Requirements
319
332
@@ -331,15 +344,7 @@ You can add ComposableArchitecture to an Xcode project by adding it as a package
331
344
332
345
## Help
333
346
334
-
If you want to discuss the Composable Architecture or have a question about how to use it to solve a particular problem, ask around on [its Swift forum](https://forums.swift.org/c/related-projects/swift-composable-architecture).
335
-
336
-
## Credits and thanks
337
-
338
-
The following people gave feedback on the library at its early stages and helped make the library what it is today:
339
-
340
-
Paul Colton, Kaan Dedeoglu, Matt Diephouse, Josef Doležal, Eimantas, Matthew Johnson, George Kaimakas, Nikita Leonov, Christopher Liscio, Jeffrey Macko, Alejandro Martinez, Shai Mishali, Willis Plummer, Simon-Pierre Roy, Justin Price, Sven A. Schmidt, Kyle Sherman, Petr Šíma, Jasdev Singh, Maxim Smirnov, Ryan Stone, Daniel Hollis Tavares, and all of the [Point-Free](https://www.pointfree.co) subscribers 😁.
341
-
342
-
Special thanks to [Chris Liscio](https://twitter.com/liscio) who helped us work through many strange SwiftUI quirks and helped refine the final API.
347
+
If you want to discuss the Composable Architecture or have a question about how to use it to solve a particular problem, ask around on [its Swift forum](https://forums.swift.org/c/related-projects/swift-composable-architecture)**or contact us**.
0 commit comments