|
|
|
React.js Conf announced! February 22 & 23 2016 in San Francisco
Good news everyone! React.js Conf is back for a 2nd year! Last year I streamed the entire thing from home and it was the best conference I've ever virtually attended. This year I'm very fortunate to be able to help out with organizing it and attending in meatspace! So if you have any questions / concerns please reach out to me @notbrent on Twitter. I am so excited for this.
The Call for Presenters is open until December 13th at midnight PST - we have space for 18 thirty-minute talks and 10 five-minute lightning talks. I strongly encourage you all to at least consider submitting a proposal!
Ticket sales open on Monday, December 21st and we expect them to sell out very quickly. See important dates here.
|
Best ways to get a ticket to React.js Conf 2016
Submit a talk proposal that will entertain, excite and enlighten attendees about something they care/should care about, relevant to front-end development or their careers as developers. Selected speakers have their travel expenses and ticket covered.
Submit a killer lightning talk proposal. Selected lightning talk speakers will get a free ticket.
Enter this contest from ReactJSNews - may the best post win.
Enter an upcoming contest from this very newsletter & Exponent that will be open next week and have two tickets up for grabs! (Plus a signed portrait of a React team member, of course!). More details next week.
|
|
Four more collaborators added to the React Native repo!
“join us in welcoming @_cdro, @jain_chirag04, @satya164 & @skevy as community collaborators on React Native! look out, 841 issues. err.. 843.”
Despite the reinforcements, the issue count is currently at 853! @mkonicek wrote a bot to respond to issues with more guidance on what is an appropriate issue, check it out here, hopefully that helps!
And hey, you don't need to be a collaborator to help! You can help people solve their issues or fix bugs that you were going to just report, pitch in however you like!
|
Dirty-up and execute top-down (Blog post)
"One common pattern when implementing user interface optimizations is to compute some value for a node where the computation involves looking at neighbor nodes and want to keep this value updated when the tree is mutated.
In this article, I'm going to explain the pattern we implement to solve this use case on various places in React Native."
|
|
Building 3 React Native Apps in One Summer (Blog post)
"TL;DR React Native allowed our team the ability to pivot into a mobile solution that we’re proud to have built. It’s easy to learn, has a growing community of supporters, and is itself agile with it’s component-based hierarchy."
|
Free "Getting Started with Redux" screencast series by @dan_abramov on @eggheadio
"Managing state in an application is critical, and is often done haphazardly. Redux provides a state container for JavaScript applications that will help your applications behave consistently. Redux is an evolution of the ideas presented by Facebook's Flux, avoiding the complexity found in Flux by looking to how applications are built with the Elm language. Redux is useful for React applications, but React is not a requirement! In this series, we will learn the basics of Redux, so that you can start using it to simplify your applications."
|
|
More from React Native Radio
@tadeuzagallo is a total boss. He quietly toils away on React Native iOS at Facebook London and has racked up 279 commits on the open source repo -- the 2nd highest! He works a lot on the bridge and performance, check out this interview he did with the React Native Radio folks.
Additionally, since this took me a bit over a week for this issue, check out another interview from React Native Radio, this one with @browniefed who you might recognize from the above two blog posts -- ironically about bridging. You can listen to that one here.
|
Building a Native Soundcloud Android app with React Native and Redux (Blog post)
"Seven months ago, React Native for iOS came out. I built the ShenJS app for the 2015 JSConf China the day after the release. It was more out of curiosity than anything else .At Wiredcraft, we've also been building apps with the Ionic framework (Cordova + Angular.js) for one of our clients, so it' only fair that I compare these two..."
|
|
React Native: Auth0 Login + Firebase (Blog post)
A tutorial on how to use Auth0 Login and Firebase with React Native. Yeah I know I just rephrased the title. Auth0 is a really neat tool for saving you the hassle of building your own authentication system and I think we're all familiar with Firebase as a backend-as-a-service. Nice post @mhollweck!
|
|
Highlights from facebook/react-native
|
|
React Native 0.16.0-rc released
Click through for the release notes, written up by @jsierles himself! Thank you to the 80 contributors that made this release possible, my parents for always believing in me and waking up before work every morning to drive me to practice, Haley you my world girl, and my friends at Exponent. Just kidding I had almost nothing to do with this release.
|
|
Add onLoadX support for Image on Android
As the title suggests, this commit adds support for some onLoad events on Images on Android. Currently supported are: onLoadStart, onLoad, onLoadEnd. Unsupported events are onError and onProgress.
|
|
Open source SwipeRefreshLayoutAndroid
Neato! Last week we saw this functionality added for iOS and now we have native pull to refresh on Android too. Thanks @mkonicek, if it was February I'd ask you to be my valentine.
|
|
Update Android Touch events
"This moves Android touch events to parity with iOS. The locationX,Y value passed to js now is view relative to the view that is handling the touch. The pageX,Y is now relative to the root view."
|
Fix flaky scrolling for TextInput when using rich text
Another improvement to TextInput to better support rich text inputs.
"This diff fixes the jumpy scrolling for multiline <TextInput> when using nested <Text> components to implement rich text highlighting.
The fix is to disable scrolling on the underlying UITextView, and nest it inside another UIScrollView that we control."
|
|
Refactored module access to allow for lazy loading
Another nice perf win here, this one improving initial load time:
"Out of the 65 modules included in UIExplorer:"
- 16 are initialized on the main thread when the bridge is created
- A further 8 are initialized when the config is exported to JS
- The remaining 41 will be initialized lazily on-demand
|
Further improvements in RecyclerViewBackedScrollView (Android)
"Changed ListView to use onLayout and onContentSizeChange (new) events instead of measure. Updated ScrollView implementation to support contentSizeChange event with an implementation based on onLayout attached to the content view. For RecyclerViewBackedScrollView we need to generate that event directly as it doesn't have a concept of content view.
This greatly improves performance of ListView that uses RecyclerViewBackedScrollView"
@kmagiera you are a king.
|
|
View recycling in JS
This could be huge for performance.
"In this diff I introduced new UIManager method: dropViews. Instead of removing views from tag->view maps when they are detached we keep them there until we get a call to dropViews with the appropriate tag. JS may keep a pool of object and selectively decide not to enqueue drop for certain views. Then instead of removing those views it may decide to reuse tag that has been previously allocated for a view that is no longer in use.
Special handling is required for layout-only nodes as they only can transition from layout-only to non-layout-only (reverse transition hasn't been implemented). Because of that we'd loose benefits of view flattening if we decide to recycle existing non-layout-only view as a layout-only one.
This diff provides only a simple and manual method for configuring pools by calling ReactNativeViewPool.configure with a dict from native view name to the view count. Note that we may not want recycle all the views (e.g. when we render mapview we don't want to keep it in memory after it's detached)"
Another @kmagiera special.
|
Revamp YellowBox for Warnings
"Revamps the former WarningBox as the new YellowBox component with the following changes:"
- Default to enabled (in DEV) with a console.disableYellowBox flag to disable it.
- Added a console.ignoreYellowBox property to ignore warnings by string suffix.
- Now handles console.error calls with strings that start with Warning:.
- Removed logic that persists the list of ignored warnings.
- Displays only up to four warnings (before it requires scrolling).
- Minor tweaks and polishes to the user interface.
- Added support for React Native Android.
|
|
Add Networking resource module
Good discussion here around a feature that has been asked for several times in the past: prefetching/preloading images. As a bonus, this PR supports loading fonts over the network as well. Thanks for pushing this forward @sospartan and @nicklockwood!
|
|
Highlights from the community
|
|
rnpm/rnpm
"React Native Package Manager built to ease your daily React Native development. Inspired by Cocoapods, fastlane and react-native link it acts as your best friend and guides you through the native unknowns. It aims to work with almost all packages available with no extra configuration required."
A cool project from @grabbou and @Kureev to try to solve the laborious process of adding a library with native dependencies to your project, and provide other useful helpers through plugins.
|
mhollweck/react-native-item-checkbox
Neat little library to add a customizable checkbox to your project. Your selected icon can even be a tree! That's my nature for the week, thanks.
|
|
marmelab/Posters_Galore_Android
"An experimental Android application to easily buy posters, built with React Native, using Redux and a REST API."
This is extremely useful if you're still in college and want to learn React Native / Redux while also buying posters to decorate your dorm room! Might I recommend a Scarface poster? Or maybe Bob Marley? Pink Floyd? Bob Dylan? Pulp Fiction? Che Guevara? "The Kramer"? John Belushi wearing a "College" sweater in Animal House? Or for the more refined palette, perhaps an Einstein with his tongue out or a print of a Dali painting.
|
|
Qwikly/react-native-router-redux
react-native-router-redux - Router component to be used in your React Native redux applications. Packed with Nav and TabBar support.
|
|
ProjectSeptemberInc/gl-react-native
"OpenGL bindings for React Native to implement complex effects over images and components, in the descriptive VDOM paradigm" -- now supporting Android! Just incredible work here, love it.
|
|
Friends of the newsletter
|
|
Appetize.io
I love these folks. They make rnplay.org possible and in doing so support the React Native community in a big way. They are also allowing us to use their simulators within the React Native docs! I am not paid to advertise for them, I'm happy to advocate for products that I believe in (see: this newsletter about React Native) - so check them out if you have any need for an in-browser simulator for iOS or Android! Go and upload an app, the first 100 minutes of simulator use are free!
|
Goodbits
"Newsletters should take minutes, not hours. Goodbits helps you quickly build email campaigns." That's their thing. True story, I once wore a Goodbits tshirt while cycling across the Golden Gate bridge. If you've read this far, you should probably at least try out Goodbits, because clearly you have time on your hands.
|
|
|
That's it for now! Ping me on Twitter @notbrent if you have anything that you would like me to share next week.
|
|
|
|
|