Loading video...

Video Failed to Load

Go Home

🌟 Introducing Apple News! Built with JavaScript and Tailwind CSS 🚀 💣Works on Android, iOS, and Web  iOS Live Activities, Home Widgets 🎵 Podcast Player Watch support 🤏 Swipe actions like 𝕏 ↕️ Drag/sort favorites, RSC + much more! ⭐ Link to React Native code below👇

77,407 views • 1 year ago •via X (Twitter)

11 Comments

Saúl Sharma's profile picture
Saúl Sharma1 year ago

More: 🫰 swipe to next post ⚡ Reanimated 4 beta (+ CSS animation for native) ☝️ Long press gesture peek on iOS 🔴 Push Notifications demo 💡 Keyword highlighters on autocomplete 🟠 SwiftUI integration  `npx create-target` by @baconbrix 🔋 `react-native-mmkv` by @mrousavy ⚟ Radix UI menu on Web, native on iOS/Android (zeego) by @fernandotherojo Link to repo: 1 command to run it locally: `git clone && cd apple-news-ui && bun install && bun run ios`

Saúl Sharma's profile picture
Saúl Sharma1 year ago

Here is a webapp, if anyone would like to take a peek: (although I recommend it for Android/iOS 🤝)

Saúl Sharma's profile picture
Saúl Sharma1 year ago

More stuffs: ⚽️ Sports Scores demo - Universal iOS-like animated header component - Expo + Shared routes - 𝕏-like layout for web - Topic details screens - Matched keyword highlighters on autocomplete - TabBar scroll-to-top - Example HTML component in a native app via 'use dom' - Ready for one-click universal deployment And I'm sure I've missed quite a few more 😄

Saúl Sharma's profile picture
Saúl Sharma1 year ago

Also, if you're looking for native bottom tabs for all platforms, check out the commit `431191b15b01d7fb3c538e7d6a1fbf267728f977`. I reverted to JS tabs for now, but @o_kwasniewski is working on a new feature that would allow you to create totally custom JavaScript Tab Bar in React Native Bottom Tabs. (In case you didn't know, `react-native-bottom-tabs` lets you implement native platform tab primitives like the example below. Thanks Oskar!)

Saúl Sharma's profile picture
Saúl Sharma1 year ago

I have enabled experimental features on many things, so there is a chance something might break, feel free to send a PR for anything!

Saúl Sharma's profile picture
Saúl Sharma1 year ago

Desktop version isn’t bad either🤠

RedDeer.Games IR's profile picture
RedDeer.Games IR2 years ago

🚀 Ready for an epic gaming adventure? Join the action with @RedDeer_Games! 🎮 Watch the latest game videos and make sure to SUBSCRIBE for exclusive content! 📺 👉 Dive in now! 👉 Youtube: 👉 Play On: #Nintendo #Xbox #PS5 #Steam

Brayan Paucar's profile picture
Brayan Paucar1 year ago

One of my todos was to see this post , I was reviewing your profile every day , and here it is. Thank you so much man , I’ll fill my brain with the knowledge 💯🍻

Saúl Sharma's profile picture
Saúl Sharma1 year ago

Wow, that means a lot! Thanks. DM if you need help anytime

Evan Bacon 🥓's profile picture
Evan Bacon 🥓1 year ago

This is amazing 🤩 bravo!

Saúl Sharma's profile picture
Saúl Sharma1 year ago

Thanks Evan! 🤜

Related Videos

If you're a mobile engineer or interested in iOS and Android, this podcast episode is as good as it gets: How Notion builds its iOS and Android apps. Two of Notion's founding mobile engineers help us dive deep into the productivity app used by tens of millions of users on mobile. Listen to it or watch it here: Spotify: YouTube: Apple: Web & transcript: -- This episode is brought to you by DX the engineering intelligence platform designed by leading researchers. Learn more about them here: (Coincidentally, DX have just launched a very interesting dev productivity framework called DX Core 4: -- Three interesting takeaways from this conversation: 1. Notion’s native mobile team is surprisingly small! Notion employs about 600 staff, but the mobile team is only 11 people – including iOS and Android. This team size is very small, especially considering how Notion serves more than 10M users on both iOS and Android. We’re likely talking about one engineer for every ~2M or more users! 2. Moving from web-based to native was an incremental process by necessity. Thanks to a small native team, and the need to keep the mobile apps up-to-date with the latest Notion features, the native mobile engineering team didn’t have the luxury of doing a large mobile app rewrite. Instead, they did the sensible thing of slowly migrating parts of the app. Today, most of Notion’s apps are fully native, save for the editor. The editor remains one of the most complex parts of Notion. 3. Notion releases their app on a weekly cadence. Native mobile apps need to go through an app review flow from Apple and Google, and so many native apps are released less frequently, to account for this overhead. Notion doing a weekly release cycle is impressive – and it can serve as inspiration for other native mobile teams. If Notion, with 10M+ native users and a small team, does this, other native teams can as well! Thanks to the Notion team for sharing all these details!

Gergely Orosz

45,536 views • 1 year ago

I've been building a music player with Next.js for fun. Here's a quick demo of how it works (it's open source!) • Demo: • Code: If you want to learn more about how it's built, here's more details ↓ I'm using Postgres (with Drizzle) to store information about the songs and playlists. Audio and image files are stored in Vercel Blob (object storage), and the URLs are then referenced in the database. For the UI, I'm using shadcn/ui (so Tailwind CSS and Radix). This made it easy to copy/paste in some nice components, like the dropdown menus. I built the entire first version of the UI in v0 and then iterated from there, feeding it my Drizzle schema as a source in the project and having it scaffold some of the boilerplate for me: I added support for keyboard navigation (using arrow keys) or vim motions (j/k to go up/down, and h/l to go between playlists and tracks). Also, space to toggle the now playing song, and / to focus the search input. The search function has a nice utility to highlight the currently searched text on the page in yellow. Then, I was exploring how to pass metadata from my application to macOS or iOS. Turns out there's an API for that – MediaSession. Web apps can share metadata about what media is playing (title, artist, album artwork) and sync play/pause/seek with system media controls. Works across modern browsers — even integrates with iOS dynamic island and shows up on lock screens: I set up my app like a PWA – it has a manifest.json file, so it can be installed to my iOS home screen or added to my dock on macOS. On iOS, it then uses the full screen height `100dvh` (dynamic viewport) and has padding on the bottom for the safe area with the `env()` CSS function. Finally, I was able to use the Vercel AI SDK in a script to clean up the metadata on audio files I downloaded from YouTube. Bonus: I even was able to dogfood the React Compiler, which helped me fix a performance bug! That's all! It's fun to make personal software:

Lee Robinson

118,631 views • 2 years ago

Here are a few things you probably did not know about Reddit's iOS and Android apps: they are ~2.5M lines of code each, with 500+ screens, and a total of 200 native mobile engineers work on the both of them (including a dedicated iOS and Android mobile platform team) But a few years ago, things looked very different - and Reddit quietly rebuilt their native apps from 2021. Today's conversation goes through what happened and how, with three engineers from Reddit’s mobile platform team who led this work: Lauren Darcey (Head of Mobile Platform), Brandon Kobilansky (iOS Platform Lead), and Eric Kuck (Principal Android Engineer) Watch or listen: • YouTube: • Spotify: • Apple: --- Brought to you by: • Graphite (we've moved to @graphite) — The AI developer productivity platform • Sentry — Error and performance monitoring for developers. Get 150k errors (three months of Team Plan) for free at --- Three of my takeaways from this episode: 𝟭. 𝗣𝗼𝗼𝗿 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 𝗲𝘅𝗽𝗲𝗿𝗶𝗲𝗻𝗰𝗲 𝗰𝗮𝗻 𝘀𝗹𝗼𝘄 𝗱𝗼𝘄𝗻 𝗮 𝗰𝗼𝗺𝗽𝗮𝗻𝘆 – 𝘀𝗼 𝗽𝗮𝘆 𝗮𝘁𝘁𝗲𝗻𝘁𝗶𝗼𝗻! One of the reasons Reddit started investing heavily in modernizing its mobile stack was that the “old stack” was slowing down developers. Reddit’s platform team got proof of this simply by asking native engineers about the biggest development-related challenges they face. 𝟮. 𝗣𝗹𝗮𝘁𝗳𝗼𝗿𝗺 𝗲𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴 𝗶𝘀 𝗵𝗮𝗿𝗱 𝘄𝗼𝗿𝗸. Advice from Brandon for anyone looking to work on a platform team: "You should try to work at a tech company for a year or two and actually see what happens after you ship a system — and then the assumptions change! You then have to figure out how to keep this thing going. You get a bunch of software design intuition because you have to like re-evaluate your assumptions for an incredibly long time. If you can do that, you're probably ready for platform stuff." 𝟯. 𝗚𝗲𝗻𝗔𝗜 𝗰𝗼𝗱𝗶𝗻𝗴 𝘁𝗼𝗼𝗹𝘀 𝗳𝗲𝗲𝗹 𝗹𝗶𝗸𝗲 𝘁𝗵𝗲𝘆 𝗮𝗿𝗲 𝗻𝗼𝘁 “𝘁𝗵𝗲𝗿𝗲” 𝘆𝗲𝘁 𝘄𝗶𝘁𝗵 𝗻𝗮𝘁𝗶𝘃𝗲 𝗺𝗼𝗯𝗶𝗹𝗲. LLMs integrated into IDEs seem to be increasingly helpful with backend, fullstack, web and even cross-platform (React Native / Expo) projects. However, Reddit’s mobile team shared that they get a moderate boost from the Apple and Android Studio LLM additions. Native mobile development is distinctively different from web, fullstack and backend coding – and it seems that these IDEs with AI functionality have not done much to optimize for the expereince of native mobile engineers. Over time, this will likely change – but it’s a reminder that there are differences between fullstack, backend and native mobile development.(I wrote a book reflecting on more of the challenges unique to native mobile titled Building Mobile Apps at Scale)

Gergely Orosz

67,275 views • 1 year ago

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

141,012 views • 1 month ago