Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

React Native uses a site called ProductPains for people to report the issues that they run into and upvote them, it can give you a good idea of what the problems are: https://productpains.com/product/react-native?tab=top

In my eyes, the biggest pain points right now are: list views and complex gestures. List views don't recycle native views so memory usage can be very high (but there are some people working on solving this), and complex gestures just aren't really supported -- and by that I mean something like multi-touch to drag multiple slides in Keynote and a bunch of the crazy stuff that the Apple Maps app does (see https://www.youtube.com/watch?v=uBYPqb83C7k for more info on this). Also potentially of interest, see these slides: https://www.dropbox.com/s/fr46d25zfm6oaqu/philly.key?dl=0 (warning: requires Keynote and 1.2gb because lots of video!)



This is probably a frequently asked question, but why doesn't React Native implement its own list views, rather than wrapping UITableView (for iOS) and ListView (for Android)? I figured the latter approach would be the best way to address things like recycling native views.


The short answer is that UITableView is an inherently synchronous API whereas the React Native bridge is asynchronous -- UITableView calls cellForRowAtIndexPath:indexPath: and heightForRowAtIndexPath:indexPath: and you need to respond synchronously with the view for and the height of that cell.

One of the problems with this is that under the current React Native architecture we would need to break the async bridge model by synchronously calling into JS in response to these methods. So some people are experimenting with a slightly different architecture that would allow us to respond to them synchronously from the main thread, which seems really promising :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: