the j
Funny that a lot of this is focused on iOS. What would Android "Native" even look like? Would you have to make your entire app Material (You)?
3 6
Samuel
you absolutely could do that. unfortunately android platform primitives generally kinda suck (i.e. the modals just don’t work)
5
charlotte
i think it's just vaguely following material guidelines + more of the same tricks like appropriately coloring the statusbar then again there's just less cool stuff android does so any sufficiently responsive app feels native enough
1 4
charlotte
like i can generally "feel" the difference between something written with views or compose compared to react native or something worse, they're just not quite as snappy and smooth
4
leerob
Thank you for writing this. Curious if you were starting from scratch, are there other libraries you would pick/avoid not mentioned here? Thinking about tinkering with RN in my free time more (it's been a while since I last did)
2 5
Samuel
good question! Zeego by @rojo.bsky.social is great for cross-platform native context menus (although unfortunately very ugly on Android, but that’s Android’s fault not RN lol). And if you’re just doing iOS, swiftui-react-native by @alevy.bsky.social basically lets you just build a SwiftUI app
1 6
Samuel
I’d basically avoid things that just are JS-only components - usually they’re pretty janky and not much better than something you can put together yourself. Gradually there’s more and more native options in the ecosystem which is great to see
1 4
Samuel
Also, totally give Expo Router a shot, it’s a cool take on Nextjs for native apps
7
Fernando Rojo
zeego.dev for menus, moti.fyi for animations, burnt for toasts I’m biased since these are mine, but the reception towards them all has been great. Steer clear of native elements that get rebuilt with JS. PS I’m writing a blog post on the mistakes I made coming to native from a web background
https://zeego.de
zeego.de
5
Ben Holmes
Hadn’t considered all of the menus and gestures iOS provides these days. Even MacOS lacks them. May be a good reason to drop down to swift for certain UIs!
2 5
Samuel
it’s definitely React Native’s most powerful quality, and why I think it will win over Flutter in the long term
4
Tab Atkins-Bittner
Question about the hairline borders, if you don't mind - we're discussing adding this to CSS, with the current proposal at <https://github.com/w3c/csswg-drafts/issues/3720#issuecomment-2368916115>. I'm trying to avoid that "unexpected tiny gap" issue you mention. [...]
1 4
Tab Atkins-Bittner
So the proposal is that hairlines are 1px wide as geometry, but paint thinner. How bad an issue were the gaps y'all run into? Does this proposal sound like it would have been fine for y'all, if it was how React's hairlines worked? Just curious about some real-world experience.
1 2
Samuel
oh cool, would love to see that on web! yeah, so basically it was the tab bar - we were absolutely positioning the blue bit to sit above the line, but when the line went to 0.333px there was a noticeable 0.666px gap between them. I’ll try and dig up a screenshot when I get home
1 2
⭒✧。°✦ DreamyPup ★°.☆⋆
hey can I ask, why aren't you using animations that are more similar to system animations on android? f.e the animation when you tap a post from the TL is very "meh" to say the least. 😅 also there's just some small details that simply feel off like the black screen when you're leaving the composer
2 2
Samuel
yeah I mentioned that in the blog post - using the native modal turned out to have a bunch of bugs :( Android unfortunately doesn’t make it quite so easy to feel smooth, compared to iOS
1 1
⭒✧。°✦ DreamyPup ★°.☆⋆
i gotta be honest, I absolutely love the UI of threads, like you can say what you want about meta but that's a well made app 😅 I know it's not 100% RN, actually if I remember right the majority of it actually is jetpack compose but like I couldn't tell you which parts are which
1
austin
Great stuff! The app feels leaps and bounds better than when I first tried over a year ago. Kudos to the team
1
Florian Stöger
Great post, but aren't squishy nav tab icons a bit like the opposite of native? Tbh I find they feel kinda out of place since hardly any popular apps have tabs that visually behave like that, and it kinda goes in a different direction than the other (great!) tweaks mentioned?
1 1 3
Tibor Martini
I think I found a bug while reading your article: • clicking on the embedded post wouldn't start the media, but open the post in the background • going back from the opened post wouldn't get you to the original post in the timeline but to the very top
1
Tibor Martini
Also something else, you seem to use different settings for kerning in the feed and for posts. Could you take a look at this?
Anton
Posts like this is the main reason why I came to Bluesky. Thank you so much!
Ben
I have absolutely zero experience coding and this piece had me captivated from start to finish, well done 👏🏼 I’m grateful for y’all’s work on making the app feel more polished, it hasn’t gone unnoticed!
Mike Bifulco
This is a super informative post - thanks for putting so much detail into this, Samuel! My team is building a React Native app, and there is so much good stuff in here!
Thorben Primke
Great write-up. "Feels native" is a subjective expression in my opinion. iOS 14 modal is one where it just requires the extra config with RN and if not done can be easily called out. Beyond this, "feels native" in my opinion is also associated with how polished an app is compared to the top apps.
olagjo
Thank you, it definitely feels more native now! You touch on it with squishy buttons and animated navigation, but I'm hoping for a day when posts visually react to being pressed on android! Each post is a "button" to navigate to a new page and it would be so nice if it reacted to being pressed 😍
Jim Hill
Great post. I wasn’t sure if this was built using React Native - it’s very nice indeed!
Ben Darlow
This post is making me think I need to commit to making the jump to RN. Feels like it might be time.
Rin, Skeleton That Turns You Blue
Thank you for writing this post! As a non-developer, who uses the iPhone app* on my iPad, I appreciated the section discussing barriers to an iPad implementation, Thank y’all as always for being thoughtful when designing the apps ❤️ (*Deleted previous post due to typo)
More replies on Bluesky