Hello again! Another week has passed and I've gone through the trouble sorting through the mountain of issues, pull requests, tweets and irc discussions to bring you a digestible set of links that should bring you up to date on all things React Native. It was a slower week for community library development, instead we saw more apps released and progress on significant projects to improve core functionality in React Native and its tooling ecosystem. Enjoy!
|
|
|
"React Native has a lot of potential to change the way we think about a lot of things: how we write applications for multiple platforms, how we handle styling, what it means to prototype applications.
All in all? I’d call this experiment a definite success, and I’m excited to see what happens with React Native from here."
They sure got a lot done in two days!
|
|
|
"Rem stands for React Extension Manager. With rem, your React Native apps can use modules that have a native implementation, like a video player or a library for push notifications.
Rem works with dependency managers like npm and CocoaPods that may already be familiar to you. When using rem, you install npm packages and rem will add the native code to your app with the help of CocoaPods. Since rem is brand new, there may be some rough edges and we'd appreciate your feedback on it."
If you're a library author, it would help @ide for you to make your library compatible with rem. Installing libraries with Objective-C dependencies will be much easier when this is widespread, so let's do what we can to help!
Related: #485 - @tadeuzagallo re-opens issue to implement react-native link libName
|
|
|
Before React Native was even released, @mfikes and @dnolen got to work on Ambly, a ClojureScript REPL into iOS JavaScriptCore. This is the first step to integrating ClojureScript and Om with React Native. The integration with Om is still a work in progress, it will be exciting to see what comes out of this in the coming months! Also check out this video by @mfikes demonstrating the REPL.
And let's not forget about Scala: scalajs-react-native was released this week, check it out if you're into that kind of thing!
|
|
|
"Over the coming months, we will share more technical details about GraphQL, including additional language features, tools that support it, and how it is built and used at Facebook. These posts will culminate in a formal specification of GraphQL to guide implementors across various languages and platforms. We also plan on releasing a reference implementation in the summer, in order to provide a basis for custom deployments and a platform for experimentation. We're incredibly excited to share this system and work with the open source community to improve it."
|
|
Highlights from Issues and Pull Requests
|
|
|
I (@notbrent), with the help of @nicklockwood, added support for the multiline={true} prop on TextInput, using the native UITextView . Rejoice! This has been merged should be available in an upcoming release.
|
|
|
Building a safe way to store credentials and api tokens into react-native, this will be a very welcome module!
|
|
|
"CommandCenter is responsible for listening to events from the home screen, bottom drawer, USB command inputs (car audio controllers, etc) and headphone remotes" - @jaygarcia gets it integrated in his React Native app with the help of @nicklockwood. This is low hanging fruit for anyone that wants to create a library - wrap the CommandCenter functionality and expose it via JS!
|
|
|
"The way we currently handle images is far from ideal. To get it working, you have to configure the packager to look in the right directory, you have to add the image to xcode, and then you have to require(image!image-name) where image-name is a global name, and finally you'll have to learn how to manage assets for every platform you want to target with React Native...."
Related: #521 - Best practices right now
Related: #646 - JPEG support added
Related: IRC Discussion
|
|
|
@nicklockwood discusses techniques for integrating React Native with your existing iOS app, going a bit beyond what is available in the docs.
Related: #1049 - Forcing view refresh
|
|
|
Check out how you can configure the "Redbox" (error screen in development mode) to open up your editor of choice to the file referenced at any point in the stacktrace.
|
|
|
If you have used Flow with React Native so far, you have probably run into a number of issues - such as needing to stub out modules for each require('image!x') calls. Many first-time users have struggled with getting a project running because they had an old version of Flow installed. @gabelevi has introduced some temporary fixes in 0.4.1 and discusses his plans for making the integration smooth. As a sidenote, if you haven't used Flow yet I would highly recommend checking it out - vim-flow is a great tool to integrate it with Vim.
Related: #1099 - Install flow-bin and use that for packager Flow check
|
|
|
@robertjpayne (you might recognize him as the man who worked on Swift support for React Native as discussed last week) found some optimizations that potentially "shaves off about 10-15% of invocation time on average"
|
|
|
require('Dimensions').get('window') works great but if you need to respond to changing sizes, try out react-native-viewport by @pjjanak.
Are there any attributes you want to be able to query/watch on the device? Mention it in the linked issue and, if you're up to it, why not try to build a library for it?
Related: Comment on #953 - Dynamically positioning a view after another has rendered - @sahrens has a proposal for how to improve at the bottom of this issue, a good task if you want to get involved in contributing!
|
|
Highlights from react-native-community
|
|
|
This is such a cool idea! Expat @jsierles put together this fun little app that allows you to share your React Native app bundles with others very easily - provided that they do not have dependencies on community libraries, depend on any custom Objective-C, or require bundled asserts. The app home screen shows a list of available apps, when you click on one it will download the app bundle from the web and reload using that bundle.
Add your bundle here
App to run these bundles here
It's also worth reading through the code for the app, it's very short and amazingly straightforward.
|
|
|
@cabaret built this small app that let's you browse Confreaks.tv (a site that has hundreds of videos from conference presentations) and open the videos in a WebView on YouTube.
|
|
|
Use the iOS native Twitter and Facebook share popup in React Native.
|
|
|
@lwansbrough implemented a pure-JavaScript animated progress bar component with a clean and customizable API.
|
|
That's
it for now! Ping me on Twitter @notbrent
if you have anything that you would like
me to share next week.
If you're reading
this on the web, you can subscribe to
get this delivered weekly to your email here!
|
|
That's it for now! Ping me on Twitter @notbrent if you have anything that you would like me to share next week.
|
|
Collect and curate content easily for brilliant newsletters. Try Goodbits for free!
|
|
|
|