Cross-platform engineer trying to make native app dev as pleasant as web dev

Tokyo-to, Japan
Jamie Birch retweeted
Ghostty is leaving GitHub. I'm GitHub user 1299, joined Feb 2008. I've visited GitHub almost every single day for over 18 years. It's never been a question for me where I'd put my projects: always GitHub. I'm super sad to say this, but its time to go. mitchellh.com/writing/ghostt…
538
1,592
16,634
2,923,676
Jamie Birch retweeted
SwiftUI's List loads row views lazily, creating content only for rows near the visible region. For this to work, SwiftUI needs to be able to determine the number of views a ForEach element resolves to without evaluating the closure. Two common patterns prevent this: - Using an `if` statement inside ForEach changes the number of views per element, so SwiftUI has to evaluate every closure upfront to get the count. - Wrapping rows in AnyView hides the type information SwiftUI needs to determine the view count, with the same result. In both cases, SwiftUI ends up evaluating the ForEach closure for every element in the collection before any rows are displayed. You can learn more about maximizing the performance of dynamic lists in SwiftUI and common pitfalls from the sample chapter of my book "The SwiftUI Way". You can read it for free here: books.nilcoalescing.com/the-…
6
21
247
22,445
This is the first and only guide I've ever seen on how to use React Native JSI's NativeState, despite having heard it be recommended over HostObject for years. As usual, it's Margelo working out, from few to zero available examples, how to use these undocumented APIs 👏
3
6
97
10,915
I swear this should be the simplest feature in Keynote, yet it does the exact opposite of my expectations every single time
2
700
Jamie Birch retweeted
We used to have regular lunches between the RN team at Meta and the Flutter team at Google. Nice folks all around. We're all questing after the similar ends, just from different approaches.
明日、初めてのReact NativeとFlutterの交流会を、㍿Scovilleの恵比寿オフィスで開催します! React Nativeの開発者として、Flutter民は私の天敵なので、この首脳会議を通じて、彼らについての理解をより深めたいと思っています。 まだ空きがありますので、ぜひご参加ください。
1
7
70
6,221
Jamie Birch retweeted
Got annoyed by TextKit2, and went deeper. Restarted from scratch. This time: no CoreText, no NSTextView, no TextKit. Just custom text view with third party text layout and font renderer.
10
4
103
17,351
Jamie Birch retweeted
I love how simple and terse the code is, and how powerful it is at the same time
1
1
34
1,687
Learning Flutter architecture from @LucasGoldner at our crossover event today at @ReactNativeJP!
1
19
1,103
PROTECT THE REACT NATIVE TEAM
BREAKING: Meta, $META, tells its staff that it is laying off 10% of its employees in a push for "efficiency." This is roughly ~8,000 employees who will be laid off.
7
15
370
65,893
Hey, maybe we don’t need husky anymore!
Git 2.54 is here with features like config-based hooks, new ways to rewrite history, and much more. ✨ Check out the highlights from this release. 👇 github.blog/open-source/git/…
25
234
2,884
421,857
明日、初めてのReact NativeとFlutterの交流会を、㍿Scovilleの恵比寿オフィスで開催します! React Nativeの開発者として、Flutter民は私の天敵なので、この首脳会議を通じて、彼らについての理解をより深めたいと思っています。 まだ空きがありますので、ぜひご参加ください。
4
23
125
38,343
E2E testing can be joyful on mobile, too. Here's an old video I have of NativeScript's custom-made testing suite, which runs very fast as well (epilepsy warning).
If you've never seen the NativeScript end-to-end tests, it's quite a treat. Shows you just how fast it runs! 🏎️
7
1,426
It's fashionable to hate on Electron, but let me show you how nice the E2E testing DX can be. Can boot an instance of the app, load a page, run an assertion, and then *reuse the page* for the next test. Base cost of 1.6 seconds, with subsequent tests costing as little as 2 ms.
3
2
57
5,811
Jamie Birch retweeted
I'll be doing a talk at @ChainReactConf this year 🎉 Fast by Default: Performance Starts with State Now I have three months to finish Legend State 3.0 😅
4
3
66
5,938
Interestingly, Node.js has an internal API for inspecting the state of an unsettled Promise. It's used by util.inspect() so that when you console.log() a Promise, it'll show you its state. So you can inspect Promise state synchronously in Node by string-parsing util.inspect().
What's worse - Not being able to tell a Promise state w/o .then - Not being able to tell a ReadableStream is cancelled without cancel callback option
3
6
117
24,889
I had no idea it was illegal to even *study* DRM systems.
1
6
740
Meanwhile, NativeScript outputs into ios/build like a gentleman
The hardest part about building native modules for React Native is figuring out that the reason your module is not compiling is that the XCode put the file you just created outside of the /ios folder
1
8
2,091
Replying to @krzyzanowskim
The good news is, @CipolleschiR and @chrfalch will be talking about this subject at App.js Conf! Free us all 🥹
2
14
622
Can't wait for the React Native ecosystem to switch from CocoaPods to Swift Package Manager. I am creating a native module for @krzyzanowskim's STTextView and its plugins, which are (quite rightly) based on SPM, but translating them to CocoaPods is deeply unpleasant work
5
4
89
5,249