Could you introduce your app in a few sentences?
For the last year I started a series called Learning by doing where I'm trying to recreate UI interactions (animations) posted on Dribbble, uplabs or other platforms. I published 11 out of ∞. There are published via Expo and can be found here, the source code is available under my Github profile
I love Dribbble and what they're doing for designers community in general and since their beginning I've built several applications from Vanilla js to Backbone to React and React Native.
There are two different versions of the Dribbble client, the first version is open source and the second one: http://zribbble.com is closed source. More details in my medium post where I write about the implementation and libraries that I've used.
Both applications are available only for iOS and they are personal projects.
I'll do my best to open source the second version, didn't had enough time to do it.
What made you decide to use/switch to React Native?
I had access to the "secret" repository after Facebook announced React Native at ReactJSConf and since then I kept playing with it and after 5 months I released the first Dribbble client. Because I used React on my daily job (from v0.8) using React Native was a simple switch, the only difference was the environment and the render, instead of div, p, input you have View, Text, TextInput.
Have your tried other cross platform technologies before using React Native?
Yes, I tried Fuse but have never jumped too far. I found React Native more robust and intuitive. Don't get me wrong, Fuse is great and offers you lots of great features, such as grid, animations, visual control, IDE integrations but the community around Fuse is pretty small and they're still trying to grow. I'll always consider Fuse as an alternative to React Native when I have to build a cross-platform application.
What has your experience been working with React Native in terms of app performance, have you noticed any impacts?
If you can manage the state well, there should be no performance issues. Try to avoid unnecessary re-renders, use a state manangement library like Redux or MobX and use memoization where possible.
How has adopting React Native affected developer productivity?
Out of the box you have hot reloading or automatic reload for immediate feedback on your changes, in-app errors and warnings, debugging, perf monitor. These are great features that every developer wish to have especially for mobile development.
Also developer productivity and developer happiness are part of DX (developer experience) and for that I'm pleased to use Expo and I remember using it when it was just the CLI and the link was sent via text message.
Which tools, libraries and frameworks are part of your development process with React Native?
IDE: Visual Code
Build tools: Exp, CodePush, Buddybuild
Debugging: Error messages within app or Chrome :)
Libraries: styled-components and vector-icons
What resources have you used to learn React Native? Books, tutorials, courses etc. Anything you can recommend?
What are some things that you don’t like about React Native or that need to be improved?
Definitely more open source projects, getting more people in the community, create more example, videos and free courses.