Krzysztof Zabłocki - Leveraging Composable Architecture at Scale | Swift Heroes 2023 Talk

  Рет қаралды 4,023

Swift Heroes

Swift Heroes

7 ай бұрын

🎟️ 2024 ticket SPECIAL PRICE: swiftheroes.com/2024/
The Composable Architecture (TCA) is a popular framework that unifies your architecture for Swift apps.
In this talk, we’ll look at lessons learned from using it on large codebases, potential gotchas to be aware of, and improvements & dev tools you can add on top of vanilla TCA.
🎤 Krzysztof Zabłocki, Engineering, iOS Consultant
📍Swift Heroes 2023 was hosted in Turin, 4-5 May. Attended by 320 iOS developer participants and broadcast to an additional 320 Swift enthusiasts across the globe. The agenda covered a range of important iOS developer topics including SwiftUI, the composable architecture, accessibility, developer tools, testing and much more.
📌 For more engaging content and expert insights, subscribe to our channel and hit the notification bell. 🛎️
Inform: swiftheroes.com/
✅ Tweet: / swiftheroes_it
✅ Connect: / swift-heroes
✅ Read: telegram.me/swiftheroes

Пікірлер: 8
@ImTheShrey
@ImTheShrey 4 ай бұрын
We use Reactor Kit in our app with 200K daily active users. It's basically TCA philosophy with Per screen state store. And then on each view only updating if it's required slice within the state is mutated.
@otniel2663
@otniel2663 3 ай бұрын
This architecture was relevant in the React community a while ago (Redux), but the trend seems to be moving towards simpler architectures like react-query, hooks, etc. I am not sure if the iOS engineering community will follow the same path, as the problem is universal across FE development (state management is complex)
@SwiftHeroes
@SwiftHeroes 3 ай бұрын
Interesting observation, we asked Krzysztof to reply to you 😉
@rodriferretty3001
@rodriferretty3001 3 ай бұрын
Really interested about this point!
@trendz4422
@trendz4422 7 ай бұрын
Please provide links to the sample project and swiftlint config file.
@danielt63
@danielt63 5 ай бұрын
At 7:53... Sure but the problem with these sorts of architectures is that any one action could change any piece of state. So not only do you have to assert the correct state changes, but you also have to assert that no other bits of state changed. That's n*m assertions (where n is the number of actions, and m the possible states.) In other words, your assertions grow exponentially with every action or piece of state you add. Not good!
@ImTheShrey
@ImTheShrey 4 ай бұрын
We solved it by dividing app state into per screen state. And then you do diff of a state slices (properties) when your views want to use it, so they don't refresh when other non related field in state object changes. Then to top it off, you collect all mutations Done by one action in to a batch and only update state struct in one go.
@danielt63
@danielt63 4 ай бұрын
@@ImTheShrey Sure, but every reducer receives every action. Your per screen state receives actions from other screens and it is only by convention that it doesn't act on actions from other screens. Testing to ensure that convention is where the problem lies.
Marin Todorov - A 100% SwiftUI App | Swift Heroes 2023 talk
27:23
Swift Heroes
Рет қаралды 2,2 М.
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 6 МЛН
Must-have gadget for every toilet! 🤩 #gadget
00:27
GiGaZoom
Рет қаралды 11 МЛН
Cyrill Troxler - Letting Your Containers Dream of Electric Sheep
33:42
Kubernetes Community Days Zürich
Рет қаралды 18
Elevated Swift - Soroush Khanlou | Swift Heroes 2023 Talk
26:24
Swift Heroes
Рет қаралды 2,1 М.
What's a Memory Allocator Anyway? - Benjamin Feng
48:30
Zig SHOWTIME
Рет қаралды 49 М.
YOTAPHONE 2 - СПУСТЯ 10 ЛЕТ
15:13
ЗЕ МАККЕРС
Рет қаралды 103 М.
iOS 18 vs Samsung, Xiaomi,Tecno, Android
0:54
AndroHack
Рет қаралды 93 М.
Собери ПК и Получи 10,000₽
1:00
build monsters
Рет қаралды 1,6 МЛН