Canadian React Native engineering and consulting studio. We partner with the world's top companies to help them unlock the full potential of RN and Expo.
Some exploration around hover interactions while working on @appandflow's upcoming blog.
We want the content to be valuable enough to shine by itself, so the concept is "sleeper design". Simple at first glance, but filled with small, satisfying interactions.
As fans of his work, we reached out to @S0LARIN for feedback and a chance to collaborate on a series of examples that use react-native-ease.
Here's a first use case: a simple pulse animation around a power toggle. Snippet and full @expo app repo in the comments.
Our library, react-native-transformer-text-input, can be used for all kinds of formatting. It includes providers for common use cases such as phone numbers, patterns, and currencies.
It allows for smooth, fast, and flicker-free text transformations in your @expo apps.
The best apps don't make compromises. Flickers and lag, even if very minimal, do not belong in award-winning applications, which is why we built it.
Repo here: github.com/AppAndFlow/react-β¦
I've been using AI agents to iterate on a fix for an iOS React Native TextInput rendering bug overnight, using @callstack agent-device RN Tester (the RN repo's example app) as its test loop.
The video below replays each fix attempt. π·
The @appandflow team's react-native-ease library has some cleverly engineered tricks for 0 JS animations π₯
For starters, a bitmask tells the native side "this prop was actually animated". It looks something like this:
bit 0 = opacity
bit 1 = translateX
bit 2 = translateY
bit 3 = scaleX
When it comes to reading animations, it actually reads from the presentation layer, so animations never snap. Quite clever.
Lastly, I found some cray cray math on the Android side and it turns out that's a harmonic oscillator that makes iOS Android springs look identical π€―
When does your React Native animation library actually matter?
@janicduplessis from @appandflow benchmarked per-frame UI thread cost across four approaches.
Short answer: long-running animations, big lists, low-end devices. One-shot transitions, less so.
The full report with instructions for reproducing the benchmarks are below β
Flickers don't belong in premium apps! That's why we built react-native-transformer-text-input.
Instead of going Native/JS/Native, it runs on the UI thread, thanks to @swmansion 's RN worklets.
Demo built in 15 minutes with @expo Skills.
π Expo is the best it's ever been, and it's about to get a lot better.
We raised a Series B so we can go faster on the things that matter to you: faster builds, smoother native integrations, and the services to make end-to-end app development a delightful experience.
There is a lot of work to do. This round led by @Georgian_io puts us in position to go do it!
Apps are getting better, users' expectations are higher.
Platform native components and navigation are a great way to make your app feel premium. With the help of @expo UI and Router, it is easier than ever to make your React Native app feel at home on iOS and Android.
Apps should adapt to each platform, and that means using system-specific building blocks such as Liquid Glass, Zoom transitions on iOS, and Jetpack Compose on Android.
Here is a great resource to start implementing it in your apps by @betomoedanoyoutube.com/watch?v=_XGlN4jvβ¦
react-native-ease by @appandflow is the π
so apparently number-flow-react-native has perf issues, but i was able to pull off a custom buttery smooth animation for price updates with react-native-ease
take your flowers @appandflow πΈ
npx expo install react-native-ease
just use number-flow-react-native
animated number transitions in react native with one component, works on both ios and android
npx expo install number-flow-react-native
<NumberFlow
value={price}
format={{ style: βcurrencyβ, currency: βUSDβ }}
style={{ fontSize: 36, fontWeight: β600β }}
/>
thatβs it. price updates β smooth animation, no extra logic needed
Our apps are full of simple animations to add motion and delight to the interface.
In a quest to always optimize, we wanted to start delegating those animations directly to the native layer.
We are seeing considerable gains and are looking for more feedback.
To make it easier, we built a skill to find and convert animations that are a good fit in your projects.
Give it a go, it's free optimization!
github.com/AppAndFlow/react-β¦
As famously said by Charles and Ray Eames, the details are not the details. They make the design.
Whenever we are about to open a PR for a new feature or flow, we have a checklist we run through, little details we feel make all the difference.
Here it is: