Stephen Celis

9.7K posts

Stephen Celis

Stephen Celis

@stephencelis

Working on @pointfreeco and @isowords. 🦋 @stephencelis.com 🐘 @[email protected]

California Katılım Haziran 2007
340 Takip Edilen5.4K Takipçiler
Stephen Celis retweetledi
Point-Free
Point-Free@pointfreeco·
A novel use of SwiftPM traits can strike a nice balance between soft and hard deprecations, giving users a friendly migration path towards major breaking changes. We explore this concept in the context of our upcoming Composable Architecture 2.0 release. pointfree.co/blog/posts/203…
English
0
5
24
2.3K
Stephen Celis retweetledi
Point-Free
Point-Free@pointfreeco·
We have a data race on our hands, which is exactly what Swift concurrency is supposed to solve for. Let’s figure out how we managed to get into this mess, and then we will get our feet wet with an isolation tool that predates Swift concurrency: locking. pointfree.co/episodes/ep358…
English
0
2
22
3.8K
Axel Le Pennec
Axel Le Pennec@alpennec·
@stephencelis @bobek_balinek @SebJVidal Sure but in my mind, if Apple uses the framework internally for its own apps, it’s a strong signal that it’s here to stay and will be updated, stay up to date and be maintained in the future.
English
4
0
2
462
Stephen Celis
Stephen Celis@stephencelis·
@alpennec @bobek_balinek @SebJVidal We’re biased, but we think the Apple dev community’s default aversion to third party dependencies should be carefully reevaluated. There’s really no inherent benefit to Apple’s “first party” dependencies over third party. Each has its set of trade-offs and benefits!
English
1
0
6
464
Axel Le Pennec
Axel Le Pennec@alpennec·
@bobek_balinek @SebJVidal If only Apple has shipped that instead of relying too much on Core Data to build SwiftData… SQLiteData seems to be very powerful but I prefer to avoid using external dependencies for my apps.
English
3
0
3
992
Stephen Celis retweetledi
Stephen Celis retweetledi
Point-Free
Point-Free@pointfreeco·
The Swift proposal for actors uses a 'BankAccount' type to explore how actors work. We think it's a bit too simplistic to really understand how actors compare to older styles of isolation, and so this week we explore a more complex example. 👉 pointfree.co/episodes/ep357…
Point-Free tweet media
English
0
3
29
2.2K
Stephen Celis retweetledi
Point-Free
Point-Free@pointfreeco·
What is “isolation” in Swift? And why does understanding it matter? It turns out many frustrations developers encounter in Swift concurrency evaporate when they internalize the concept. These videos are going to go beyond basics, so let’s get into it: pointfree.co/episodes/ep357…
English
2
5
48
11.3K
Stephen Celis
Stephen Celis@stephencelis·
@adincebic @CarlosBBuild An empty string is enough to crash: URL(string: "")! For constant values you know are safe it’s fine, but for dynamic input that comes from the user or an API, it’s enough to take your app down.
English
0
0
3
74
Carlos Valentin
Carlos Valentin@CarlosBBuild·
Would you force unwrap here?
Carlos Valentin tweet media
English
9
0
22
6.8K
Stephen Celis retweetledi
Brandon Williams
Brandon Williams@mbrandonw·
We are bringing exhaustive testing to SQLiteData apps, and it forces you to assert on how each bit of state in your features changes, even when that state resides in a SQLite database! It's honestly magical to use.
Point-Free@pointfreeco

And all of TCA’s powerful testing tools just work! You play a script of user actions to your feature and get to exhaustively test how your feature changes over time by describing it in simple mutations:

English
0
2
9
2.3K
Stephen Celis retweetledi
Point-Free
Point-Free@pointfreeco·
Swift’s ownership tools don't just help our users. They also help us as library authors to keep us honest. When we lend a precious resource to a user’s closure, we wrap it in ~Escapable so it can’t outlive that closure. Learn more: pointfree.co/episodes/ep356…
Point-Free tweet media
English
1
5
35
2.1K
Stephen Celis retweetledi
Point-Free
Point-Free@pointfreeco·
Swift's ownership tools allow us to restrict how users of our libraries interact with dangerous objects, such as a raw database pointers. They should never escape from a database transaction, and now this is enforced by the compiler. Learn more: pointfree.co/episodes/ep356…
Point-Free tweet media
English
1
4
31
2.3K
Stephen Celis
Stephen Celis@stephencelis·
@jacobtechtavern SwiftUI: The report of my death was an exaggeration. (Why can’t we have both?)
English
3
0
13
1.2K
Stephen Celis retweetledi
Point-Free
Point-Free@pointfreeco·
You may have heard that actors cause you to make everything async, but that's not true! In this week’s episode, we show how to support an async database read (using a database pool without blocking) while still keeping a synchronous read option.
Point-Free tweet media
English
1
1
23
2K
Stephen Celis retweetledi
Point-Free
Point-Free@pointfreeco·
By embracing ~Copyable/~Escapable and controlling isolation we can add incredible safety and performance to a legacy C API! We also preview how these tools make testing a Composable Architecture 2.0 + SQLiteData app feel like magic.
English
1
4
34
4.7K
Stephen Celis
Stephen Celis@stephencelis·
@jtaby @freak4pc @jacobtechtavern You can isolate code in an actor (by holding onto a class in that actor) or a global actor (by wrapping that class in one that is global actor-isolated). TCA’s Store has a minimal surface area, so we just have to implement a nonisolated core and a couple wrappers.
English
1
0
2
83