computer
exploring a childhood memory in an interactive space, equipped with pinch, pan and click, tactile keys, and flashing vintage screen.
built with react native skia and a lot of creative gesture handling.
really want to use this for a welcome screen one day, what kind
mood lighting
dark modes are becoming an expected feature for many, but what if they actually brought something to the table in terms of elevating the user's experience?
very excited to slowly bring the letters app to life, one exploration at a time.
dynamic spaces 🔳
exploring alternative navigation patterns with perspective. love this sense of depth, and creating "rooms" to step in and out of.
will most likely feature in the letters project 🩶
exploring bottom sheets.
made with a transition library I'm working on that focuses on:
- simplifying shared element transitions
- forwards AND backwards gesture compatability
- only native animations
- full access to elements on entering AND exiting screens
happy friday 🩶
exploring shared element transitions 🪄
beginning to get very excited about this project - starting to feel easy to compose complex screen transitions.
see great potential for this library to make aspiring design engineers comfortable with coding their ideas.
cont. ⬇️
gestures 🩶
final proof of concept with my take on a crowd favourite: the music player animation
made this to test out forwards gesture compatibility (going TO a screen) - see second video
officially ready to start implementing this in production apps, stay tuned
lamp picker
a table lamp can both represent your personal aesthetic and define the mood of an entire space
What else do you want to customise at your desk?
vinyl
exploring perspective and movement, squeezing 3D motion into a 2D space
while everyone is focused on all the newest tech at WWDC I'm celebrating a timeless medium - the record player
behind the scenes
I always prefer demoing apps on device instead of using the simulator - much smoother, more tactile
to get touches and drags to show up on recordings, I have a controller nearby that is set up as a pointer device
heres a simplified example of how the circle transition works. The magic is in the useTransitionStyle hook, that wraps reanimated's useAnimatedStyle so you can apply animations to the following events
- focus (mounting)
- exit (unmounting)
- blur (a screen is stacked on top)
App navigation and movement between screens is a key part of world building. Do you want your users to experience boundaries or floating spaces? Edges or seamless transitions? I think it deserves much more focus.
Nerd facts
- react native but swift portable
- built on stack navigator so you get all the benefits of native screens (no messy modals)
- can easily be extended with pinch / zoom or any other gestures (might demo this?)
@argyleink
not convinced this is a great pattern. You end up reusing headers everywhere, lose the scanability of rows and columns, and make it difficult to compare and sort the data in a meaningful way.
Not everything needs to be an infinite list. Placing meaningful limitations on the user can be incredibly powerful, ultimately creating a more worthwhile digital interaction.
I have a record player in my office.
its my pomodoro timer.
play side A, 20-25 minutes of focused work
when side A is done, take 5 minutes to turn over record.
play side B, 20-25 minutes of focused work
rinse. repeat.
🩶
more years as a developer doesn't necessarily make you more senior, but it does give you a much stronger sense of intuition, perspective and (hopefully) fading imposter syndrome. time to lean in.
@anshnanda_
No gorham, everything is made with the same library. In my head the modals can just be treated like a view controller instead of a window based modal. Then you can stick to the same transition api for everything and get the benefit of isolating your renders in separate screens
@idhamarsyd
Planning to release a public package in the future where everything will be documented 🍀 will also be posting more about how it works in the coming weeks
@akiffpremjee
very cool. Always great to make something that has real world value for yourself. Have fun with the animations, always my favourite part.
Here are some of the upcoming scenes I’m working on:
- Coffee in the morning
- Toast popping
- Skylight that opens
- Weather thermometer on window
Any other good ideas? Any bad ones?
Often, complex navigation concepts and shared element transitions stand in the way of bringing design to real life. Why dont we change that?
Working on a library to easily build and maintain bespoke navigation layouts, without sacrificing performance or readability. Stay tuned.
@pop977s
@akiffpremjee
These days there aren’t any real performance differences in production between a bare react native project and expo. Used to think differently, but find it hard to justify not using expo these days, they have made it incredibly easy to start, and scale.
@pop977s
@akiffpremjee
With an expo managed project you can use expo go, and let expo do all of the heavy lifting in terms of dependency management and native linking (used to be huge pain for some packages). If you need to to use modules that aren’t managed by expo you can create a dev-client build
@anshnanda_
Plan is to make it very incremental so you can use the library for just one transition if needed or scaffold a whole app around it if you want.
Modals for an upcoming project.
Built with full customizability over rootview animations, and scrollviews play nice with all dismiss gestures.
#reactnative
#buildinpublic
@engineerBosatsu
Summary of how its made (using react native)
- flashlist to render the list
- reanimated to store the scrollY position
- scrollY value is passed to each list item
- when list items reach top they offset their position with translateY and scale back with interpolate function
@kenneth1tang
i find it really makes the polishing stage more rewarding and by knowing that you'll circle back it takes the pressure off the first days