Commit Graph

101 Commits

Author SHA1 Message Date
유재호
6915844f76 Add final keyword to every test class by default (#1267) 2022-08-15 14:37:30 -04:00
Brandon Williams
3b96255304 Update voice memo test dependencies directly on store. (#1261) 2022-08-12 11:00:24 -04:00
mbrandonw
d827c049c4 Run swift-format 2022-08-11 19:34:59 +00:00
Brandon Williams
008af25c2a Update VoiceMemos.swift 2022-08-11 15:16:45 -04:00
Brandon Williams
29d7b9ceb7 Voice memos dependency previews (#1259)
* Improve the mock dependencies for voice memos preview.

* wip
2022-08-11 15:12:46 -04:00
Brandon Williams
253776d21a Rename audioPlayerClient to audioPlayer. 2022-08-10 13:48:46 -04:00
Brandon Williams
6f52a5bd40 Remove unneeded await. 2022-08-10 12:01:30 -04:00
mbrandonw
18d160ccb3 Run swift-format 2022-08-09 21:33:27 +00:00
Brandon Williams
407844787c Voice memo record feature (#1256)
* Refactor voice memos to have a recording domain.

* alert

* fixes

* wip

* fix tests

* clean up

* revert sendable stuff for now

Co-authored-by: Stephen Celis <stephen@stephencelis.com>
2022-08-09 17:24:23 -04:00
Stephen Celis
70e13dc4b7 Todo/VoiceMemo -> TodoState/VoiceMemoState (#1251) 2022-08-08 15:27:10 -04:00
Brandon Williams
108e3a536f Concurrency Beta (#1189)
* more main actor audit

* wip

* wip

* fix

* better task result ==

* task result tests

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* fix merge conflicts

* wip

* wip

* lots of doc fixes and modernizations

* lots more docs and better hashable conformance for TaskResult

* more docs

* clean up

* more tests and docs

* clean up

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* small clean up

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* explicit

* wip

* fix bug in TestStore.receive

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* fixes

* wip

* tools for non-deterministic TestStore.receive

* fix

* wip

* wip

* remove inAnyOrder stuff

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* convert download case study to use async/await

* animations

* fix tests

* remove executor experiment

* wip

* wip

* wip

* wip

* wip

* speech simplification

* wip

* wip

* wip

* wip

* wip

* wip

* add a few todos

* wrote some tests

* simplify speech recognizer

* fix tests

* update some docs about error throwing behavior

* wip

* wip

* fix

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Swift 5.5.2 fixes

* wip

* Bump timeout

* wip

* wip

* Finesse

* proper way to detect main queue

* extra guard

* revert main queue check

* move stuff around

* docs

* fixed a bunch of warnings

* Fix references

* clean up

* clean up

* fix a bunch of warnings

* clean up

* un-soft deprecate concatenate

* async teststore.send

* fix uikit tests

* drop sendable

* wip

* wip

* wip

* wip

* wip

* clean up

* clean up

* reorganize, remove extra task cancellation handler

* wip

* wip

* wip

* wip

* wip

* wip

* Make TestStore.send async (#1190)

* async teststore.send

* fix uikit tests

* Converted all tests to async

* clean up

* added docs

* Update Sources/ComposableArchitecture/TestStore.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* Update Sources/ComposableArchitecture/TestStore.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* docs and readme update

* Update README.md

* Update Tests/ComposableArchitectureTests/StoreTests.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* fix

* Update Sources/ComposableArchitecture/TestStore.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* Update Sources/ComposableArchitecture/TestStore.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* Update Sources/ComposableArchitecture/TestStore.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* clean up

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* wip

* wip

* wip

* make fetchNumber throwing and fix tests

* effect basics clean up

* use local state for isLoading in refreshable case study

* clean up

* fix test

* wip

* wip

* wip

* wip

* wip

* wip

* fixes

* clean up

* clean up

* Simplify

* wip

* clean up

* wip

* AsyncStream.finished()

* give Send a public initializer

* make send public

* temporarily make box public

* remove concurrency flag

* wip

* wip

* wip

* wip

* wip

* docs

* speech

* simplify

* clean up;

* unchecked sendable

* clean up

* clean up

* wip

* docs

* docs

* more docs

* lots of docs

* wip

* wip

* wip

* more docs for streamWithContinuation

* wip

* wip

* wip

* Make internal, too

* wip

* Remove sendability detection

It breaks things, like:

    let request = UncheckedSendable(
      SKProductsRequest(productIdentifiers: []
    )
    // UncheckedSendable<NSObject> // *not* _<SKProductsRequest>

* wip

* doc clean up;

* fixed some todos

* docs

* wip

* remove thread safety FAQ from readme

* fix test

* wip

* docs clean up

* docs clean up

* added a testing article and fixed some docs

* rearrange

* docs clean up

* wip

* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Effects/ConcurrencySupport.swift

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Effects/ConcurrencySupport.swift

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Effects/ConcurrencySupport.swift

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Effects/ConcurrencySupport.swift

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Articles/Testing.md

Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>

* wip

* wip

* wip

Co-authored-by: Stephen Celis <stephen@stephencelis.com>
Co-authored-by: Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>
2022-08-08 01:04:16 -04:00
Thomas Grapperon
b979b442da Modernize SwiftUI Case Studies (#1208)
* Replace `.navigationBarTitle` by `.navigationTitle`

* Remove .background from Animation

* Update 01-GettingStarted-Bindings-Basics.swift

* Update 01-GettingStarted-Bindings-Forms.swift

* Update 01-GettingStarted-Composition-TwoCounters.swift

* Update 01-GettingStarted-Counter.swift

* Update 01-GettingStarted-FocusState.swift

* Update 01-GettingStarted-OptionalState.swift

* Update 01-GettingStarted-SharedState.swift

* Update 02-Effects-Basics.swift

* Update 02-Effects-Cancellation.swift

* Update 02-Effects-LongLiving.swift

* Update 02-Effects-Refreshable.swift

* Update 02-Effects-Timers.swift

* Update 02-Effects-WebSocket.swift

* Update 02-Effects-SystemEnvironment.swift

* Update 03-Navigation-NavigateAndLoad.swift

* Update 04-HigherOrderReducers-ElmLikeSubscriptions.swift

* Update 04-HigherOrderReducers-Recursion.swift

* Update 04-HigherOrderReducers-ReusableFavoriting.swift

* Update CircularProgressView.swift

* Update DownloadComponent.swift

* Reindent `XCTestDynamicOverlay` block

* Use a dedicated shape for the clock hand

This is a little much simpler I guess.

* Go back to use a Path, much simpler to understand.

* Use more natural modifiers to apply styles

* small updates

* Center the "clocks" horizontally

Co-authored-by: Brandon Williams <mbrandonw@hey.com>
2022-07-13 10:08:09 -04:00
Stephen Celis
de2b645b66 Failing -> Unimplemented (#1168) 2022-06-28 16:28:03 -04:00
Stephen Celis
bec0128bae Clean up sample code (#1156)
We employ a few tricks that might be confusing folks that are unfamiliar
with them, so this dials some things down in the sample code and docs.
We could maybe take it further, but this is a start.
2022-06-22 13:19:55 -04:00
Stephen Celis
fb0d371e14 Use eraseToEffect mapping functions (#1102) 2022-05-27 10:41:57 -04:00
Stephen Celis
f0098d8232 Add cancel overloads that take types (#1078)
* Add cancel overloads that take types

* wip
2022-05-03 21:00:24 -04:00
Thomas Grapperon
1efde6e57a Add icons variants for required resolutions (#1017)
* Add icons variants for required resolutions

* Optimize PNG's size

Even without centralizing the resources, we can already save a few bytes.
The total size was reduced by 75%.

* Replace iTunes variants by a very compact transparent image

This will never hit the AppStore anyway.

* Replace images by lossless optimized variants

The previous optimization pass was lossy. This PR replace images with an optimized lossless variant of the original.

* Restore original iPhone icons

I don't know why images that were supposedly losslessly optimized by ImageOptim were less vibrant than the original.
I restored them by their original variants. Upscaled variants are less vibrant though, but I guess it's acceptable without access to the original vector source.

* Fix color space

ImageOptim seems to change the color space when it optimizes files losslessly.
I've created new variants with Pixelmator Pro and exported as web-compressed from there instead.
2022-03-15 16:15:19 -04:00
stephencelis
d924b9ad27 Run swift-format 2022-03-11 20:52:38 +00:00
Thomas Grapperon
85050a28a9 Fix WithViewStore issues with Views using escaping closures (#1015)
* Use a new instance of `ViewStore` in `WithViewStore`'s `body`

* Use explicit `self` for style coherence

* Remove `viewCancellable` additional reference in `newInstance()`

* Revert "Remove `viewCancellable` additional reference in `newInstance()`"

This reverts commit cb6a22ae4f.

* Change `viewCancellable` capture list

* Update `GeometryReader`'s workarounds
2022-03-11 15:23:42 -05:00
iampatbrown
e5e10d8e87 Update .cancellable implementation to fix #946 (#949)
* Subscribe to upstream publisher instead of PassthroughSubject

* Fixed operator order

* Replaced RunLoop.immediate with RunLoop.test
2022-01-07 16:10:42 -05:00
Stephen Celis
ef5201ac0a Clean up Voice Memos demo (#915)
* Clean up Voice Memos demo

* Tests
2021-12-13 11:47:15 -05:00
Stephen Celis
87f388bedb Further Modernize Demos (#914)
* Modernize Demos

* wip
2021-12-09 22:41:58 -05:00
iampatbrown
b5719bf1ca Update example app entry points and some minor changes (#859)
* TicTacToe Readme updates

* Use new .catchToEffect(_ transform:) in example

* Added Todos Readme

* Added VoiceMemos Readme wip

* Updated VoiceMomos Readme

* Updated Todos Readme

* Added value to animation modifier

* Update VoiceMemos entry point

* Update Todos entry point

* Update Search entry point

* Update SpeechRecognition entry point

* Updated SpeechRecognition models

* Revert "Updated SpeechRecognition models"

This reverts commit dc77e7a638.
2021-10-18 09:24:02 -04:00
Stephen Celis
21c8b4d8ef Update tests to use XCTAssertNoDifference (#739) 2021-08-24 14:45:23 -04:00
mbrandonw
692435d22a Run swift-format 2021-08-12 22:19:58 +00:00
Brandon Williams
a38e04da7d Modernize some things (#713)
* Modernize some things.

* clean up

* wip

* wip

* clean up

* wip

* wip
2021-08-12 18:13:40 -04:00
Stephen Celis
026482d270 tic-tac-toe package (#684)
* tic-tac-toe package

* Update Package.swift

* Tests

* wip

* wip

* wip

* Update Package.swift
2021-07-29 09:18:49 -04:00
stephencelis
74c111f224 Run swift-format 2021-07-12 21:42:53 +00:00
Stephen Celis
cd76e31ef6 Update demos to use failing environments (#650) 2021-07-12 17:36:40 -04:00
Brandon Williams
14c6b5b218 Extract number fact dependency to a FactClient. (#600)
* Extract number fact dependency to a FactClient.

* wip
2021-06-21 10:36:51 -04:00
Brandon Williams
6f1bc259e4 Modernize examples (#525)
* Refactor some of the example code.

* wip

* wip

* wip

* lots more updates

* fixes

* another fix

* todo simplification

* fix compiler issue in 11.7

* Update Examples/Todos/Todos/Todos.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

Co-authored-by: Stephen Celis <stephen@stephencelis.com>
2021-05-04 09:17:21 -05:00
stephencelis
fcb84e1d1a Run swift-format 2021-03-22 17:40:03 +00:00
Stephen Celis
f1faccc3a2 Updated TestStore DSL (#454)
* Update TestStore to support imperative DSL

This gives us better XCTIssue-based error messaging since each line is
captured in the stack.

* Update examples to new testing DSL

* Fix

* Update README.md

* 11.3

* fix

* fix
2021-03-22 13:27:51 -04:00
Stephen Celis
caebd33686 Add ViewStore.send(_:animation:). (#392) 2021-02-22 15:31:25 -05:00
Stephen Celis
ff57565322 Forms (#367)
* Forms

* wip

* wip

* Basics

* Fix

* Apply .textCase(.none) to section headeres.

* Small tweaks do docs and case study readme.

* Update Forms.swift

* Fix warnings

* Revert "Apply .textCase(.none) to section headeres."

This reverts commit f535a75eb9.

* fix

Co-authored-by: Brandon Williams <mbrandonw@hey.com>
2021-02-01 13:34:55 -05:00
Stephen Celis
4449bc2e24 Add TextState (for AlertState, ActionSheetState, etc.) (#359)
* Use SwiftUI.Text with {Alert,ActionSheet}State

Fix #293, #318.

* Use public interface

* Availability

* TextState

* Note

* Simplify

* Update LocalizedStringTests.swift

* Fix warnings

* Fix docs
2021-01-21 17:50:34 -05:00
Stephen Celis
431fd78a74 Voice Memos Fixes (#316) 2020-10-29 17:53:38 -04:00
Stephen Celis
c4f225b825 Extract supplemental libraries (#315)
* Extract supplemental libraries

* Fix
2020-10-29 16:10:02 -04:00
stephencelis
47a9d368d1 Run swift-format 2020-09-04 13:23:45 +00:00
Stephen Celis
3a63b83d30 Drive Test Store with a real Store (#278)
* Failing test

* Drive Test Store using Store

* Update TestStore.swift

* format

* Track state after send

* Use proper snapshot

* Fix?

* fix
2020-09-04 09:20:35 -04:00
mbrandonw
02e220465e Run swift-format 2020-07-07 22:35:53 +00:00
Brandon Williams
057ed2f487 Stop audio when deleting memo that is playing (#214)
* wip

* wip
2020-07-07 18:31:31 -04:00
mbrandonw
b8c67d5d4f Run swift-format 2020-06-30 14:49:39 +00:00
Brandon Williams
a905fbf5ec Generic alerts and action sheets (#201)
* alerts

* wip

* wip

* wip

* clean up

* wip

* wip

* wip

* wip

* format

* clean up

* clean up

* docs

* wip

* tests

* API tweaks

* Fix

* More API changes

* More API changes

* More

* Fix

* Fix docs

* Generic alerts optionality (#202)

* Use Optional to model generic alerts

* Xcode 12

* Refinement

* update docs

* Fix

* Fix

* doc fixes

* rename

* fixes

* fixes

Co-authored-by: Stephen Celis <stephen@stephencelis.com>
2020-06-30 09:48:36 -05:00
Brandon Williams
284e5fcedb Split voice memos and todos into separate files (#191)
* Put domain for voice memo row in a different file.

* Put domain for todo row in a different file.
2020-06-19 07:03:36 -05:00
Brandon Williams
88c8a741f3 Fix voice memos crasher (#183)
* Test case for voice memos crasher.

* fix crasher

* clean up

* rename remove to delete
2020-06-15 09:13:21 -05:00
Stephen Celis
05ed4deabc Make demos render better on iPad (#122) 2020-05-20 15:32:56 -04:00
stephencelis
0738afa903 Run swift-format 2020-05-11 22:38:18 +00:00
Stephen Celis
6f9dee713f Demos Xcode 11.3.1 support (#52)
* Demos Xcode 11.3.1 support

* Fix

* wip

* Skip test
2020-05-11 18:37:25 -04:00
Stephen Celis
a429d9d3ef Merge Test Support Module (#71)
* Merge Test Support Module

An attempt to fix #70.

* Remove import

* Update README

* Assertion failure

* Cleanup

* Add NB

* Revert format change

* Update Sources/ComposableArchitecture/TestSupport/TestStore.swift

* TicTacToe fixes

* Hide test store in debug flag

Co-authored-by: Brandon Williams <mbw234@gmail.com>
2020-05-11 17:44:52 -04:00