Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

For our new product, we built a chat in React Native that feels like iMessage Here's how we did it: ① Fabric Swift View ② UICollectionView ③ SwiftUI cells via UIHostingConfiguration React is responsible for the state - mutations, fetching, infinite loading - all via React Query. The native...

111,102 Aufrufe • vor 1 Jahr •via X (Twitter)

36 Kommentare

Profilbild von Miguel Piedrafita ✨
Miguel Piedrafita ✨vor 1 Jahr

i’m not super familiar with the RN world, but if this is akin to using React for data management but rendering with pure SwiftUI/UIKit I’d be very interested in how you got it working 👀

Profilbild von Baran
Baranvor 1 Jahr

yes!

Profilbild von Miguel Piedrafita ✨
Miguel Piedrafita ✨vor 1 Jahr

ooo veeeeery interested, been looking at state management solutions for SwiftUI and the ergonomics SUCK

Profilbild von Baran
Baranvor 1 Jahr

uncompressed:

Profilbild von Umair Ahmed
Umair Ahmedvor 1 Jahr

Question should be who doesn't wanna see the code? 👀

Profilbild von matty
mattyvor 11 Monaten

got claude on the case.. a simple starter:

Profilbild von Nodus Labs
Nodus Labsvor 1 Jahr

Anyone received the code or it was just a bait to get views and comments?

Profilbild von Yash
Yashvor 1 Jahr

really want to see the code

Profilbild von Vayo
Vayovor 1 Jahr

sadly, android left the chat

Profilbild von Chintan Turakhia
Chintan Turakhiavor 1 Jahr

Epic. Would love to see the code

Profilbild von Serg
Sergvor 1 Jahr

Can you rebuild telegram ios client in swift? That’s the real challenge!

Profilbild von Sam
Samvor 1 Jahr

Nice, can you share the code :)

Profilbild von Harry Tormey 🇮🇪 | 🇺🇸| 🇺🇦
Harry Tormey 🇮🇪 | 🇺🇸| 🇺🇦vor 1 Jahr

Nice. You gonna post any sample code?

Profilbild von nikiv.dev
nikiv.devvor 1 Jahr

would love to see the code 🖤

Profilbild von shubham
shubhamvor 11 Monaten

Can you share repo ?

Profilbild von MARCO WENK
MARCO WENKvor 1 Jahr

Does the interactive keyboard dismissal work? I’d be impressed !

Profilbild von ian
ianvor 1 Jahr

very impressive :O

Profilbild von Fabian Kamberi
Fabian Kamberivor 1 Jahr

@JannisRingwald 🔥

Profilbild von Gabriel
Gabrielvor 1 Jahr

got me real curious there!

Profilbild von Alex Ruber
Alex Rubervor 1 Jahr

@parthematics down

Profilbild von Joël Kuijper
Joël Kuijpervor 1 Jahr

Cool. I'd like to see the code!

Profilbild von alex
alexvor 1 Jahr

👋

Profilbild von anirudh
anirudhvor 1 Jahr

yes please

Profilbild von Sebastian Penafiel
Sebastian Penafielvor 11 Monaten

Nice header 👀

Profilbild von Sebastian BO
Sebastian BOvor 1 Jahr

Would love to see the code

Profilbild von Martino
Martinovor 11 Monaten

@borndotcom Really cool, did it with pure react native too, but your details are next level

Profilbild von Selva
Selvavor 1 Jahr

🙋‍♂️

Profilbild von Youss
Youssvor 1 Jahr

Nice work 👌🏽

Profilbild von Deniss
Denissvor 1 Jahr

I guess the tough part now is bridging the gap with Android and Compose as the primitives and API is inherently different. Did you build all of the bridging of components by yourself using Fabric?

Profilbild von Arunabh Verma
Arunabh Vermavor 11 Monaten

this is insane, would love to check out the code fr

Profilbild von rommyarb 💛
rommyarb 💛vor 1 Jahr

Me

Profilbild von kele
kelevor 1 Jahr

Me 🖐️

Profilbild von Ian
Ianvor 1 Jahr

Yes

Profilbild von groky
grokyvor 1 Jahr

GitHub ?

Profilbild von M
Mvor 1 Jahr

liquid glass is so easy to add

Profilbild von Degen
Degenvor 11 Monaten

would live to have the link too 🙏🏻

Ähnliche Videos

Build uncompromising high-performance, high-fidelity apps with React. What you see is not the Apple Messages app, nor is it meant to be 1:1. Rather it serves as an aspirational and real example of UI/UX that is possible. Every detail from the bubble animations to keyboard gestures to scroll view insets and safe areas to parallax timestamps required care and attention. Quality UIs come from caring hard. The little chat bubble tails that morph away when the next message animates in. Timestamps that scroll at a different rate than the bubbles. Peek gestures powered by UIKit that lift a chat bubble, tail and all, with a gentle haptic pulse. The subtle shadow of the text composer and responsively sliding down the keyboard in pixel-perfect concert. The composer shrinking its width to fit iPhone’s rounded bezel. The beautiful Liquid Glass refractions have the level of glassiness chosen by the user (new in iOS 27). Scroll view insets that adjust to fit the home bar and keyboard dynamically, creating a sense of depth as the chat bubbles are slightly visible as they scroll under the keyboard. Keeping the keyboard on screen if the prior screen already presented it. Sliding the keyboard and composer with the screen when the user drags to navigate back. I am excited to explore using the new iPhone Duo view controllers natively with React when the time comes. There is always room for innovation and improvement. This chat demo runs at 120 FPS on iOS 27 even on my phone that’s four versions old now. There are several approaches to high-performance lists. I explored a new Expo scroll view that uses the native gesture systems along with react-native’s VirtualView (codenamed “Fling” to reflect the speed of flinging a scroll view), which Meta’s React team designed to prioritize scroll momentum with React’s scheduler. There are tradeoffs with other scroll strategies for how the scroll views gracefully degrade, and they can be swapped out based on what’s best for your app’s use case. And, by virtue of using modern React, high-priority events like user gestures can preempt lower-priority ones like a network response. Let us dispel any myth that using React requires compromising on beautiful, smooth, user-friendly UI/UX that Uses the Platform. Let us dispel any myth frame-perfect UI coordination is not achievable. The Hermes thread and the UI thread can coordinate when needed, like for controlled text inputs. Let us dispel any myth that React Native’s performance is impacted by a bridge, let alone has a bridge. Bridgeless JSI and the Fabric renderer are here for apps that use the New Architecture. What about Android? The app runs and I’ll share a screenshot from my cloud agent’s emulator. With some attention to detail dedicated to Android I’m confident crafted UX is attainable. I’ve spent my tokens once and have a structural head start everywhere. One more thing! Most of this chat’s application code is written with , , , and other familiar elements. The styling is mostly CSS, including linear-gradient(), background-attachment: fixed, and semantic platform colors that adapt to dark mode. Not just appearance - CSS Animations and CSS Transitions run entirely natively. There are a handful of custom native components written in Swift and Kotlin, like the chat bubbles and a custom CAShapeLayer and UIBezierPath for the tails. Native coding is a first-class feature. The way to think about building beautiful apps this way is React and Native, not React vs. Native. Aspire high and raise your ambitions for what is possible!

James Ide

140,188 Aufrufe • vor 24 Tagen