Issue #8

Logo for React Native Newsletter

Top News

Deprecating JSTransform and react-tools
Deprecating JSTransform and react-tools

News from the React blog - with the switch over to Babel for React and React Native complete, JSTransform and react-tools have been deprecated.

Qwikly - A plugin to build React Native apps from Sketch
Qwikly - A plugin to build React Native apps from Sketch

"Qwikly is a desktop application that helps you build mobile applications directly from your design documents."

Check out their promotional video that demonstrates building, unsurprisingly, a Dribbble clone! Very cool stuff, well done!

JSJ Podcast: Facebook Flow
JSJ Podcast: Facebook Flow

Jeff Morrison and Avik Chaudhuri, members of the Flow team at Facebook, give a good introduction to Flow and the role of static typing in software for those of you who aren't so familiar with it yet, compare it with TypeScript and several other topics. There isn't a lot of information about Flow out there so I recommend checking this out.

Also check out Avik's talk from @scale 2014 for more.

Flow is optional with React Native, but it is used throughout the core so you will probably run into it if you dig into the internals at all. If you haven't given it a chance yet, I'd highly recommend trying it out.

Async - Native Apps in JS with React Native presentation video
Async - Native Apps in JS with React Native presentation video

Thomas Parslow (@almostobsolete) gave an introduction to React Native at "Async: A JavaScript meetup for Brighton & Hove" at the beginning of May, and the video was just posted a week ago. It's a big one, coming in at 1 hour and 40 minutes. If we are to trust random strangers commenting on the internet, Uberact assures us in the Vimeo comments that it's "Nicely done." So what are you waiting for? Uberact has never led you astray, go watch this now! Slides here

Listening to application urls in React Native
Listening to application urls in React Native

Ever wonder how clicking some links from your browser can trigger the Twitter or Facebook apps to open up? @johanneslumpe describes how you can do this in React Native with this blogpost!

React Native – Share Your Application Logic on Web and Mobile
React Native – Share Your Application Logic on Web and Mobile

React Native allows native iOS development using existing JavaScript skills and libraries. It also allows you to share code between web and mobile.

React Native: Under the Hood
React Native: Under the Hood

Great set of slides that go more in depth about the internals of React Native than any other deck so far. If only we had the video that went with it!

Also check out @frantic's React Native Tutorial slides from the end of March.

iOS Bytes - Episode #73
iOS Bytes - Episode #73

A quick five-minute podcast that mentions Exponent and this newsletter, as well as @christopherdro's Sudoku app.

Highlights from Issues and Pull Requests

XHR FormData upload example by @philikon
XHR FormData upload example by @philikon

Pull down master and give this a try - it demonstrates how you can use FormData to upload files, eg: photos, via HTTP post. Made possible by @nicklockwood in this commit.

React Native Meets Async Functions — And it’s wonderful.
React Native Meets Async Functions — And it’s wonderful.

Related to this commit, a fantastic article by @ide about async/await and React Native. Go read it, I'll await!

** You will notice in this post that the async/await support mentioned in the JSJ Flow podcast has landed in Flow

Element inspector interop with React Devtools
Element inspector interop with React Devtools

@jaredly continues to make an impact, this little commit is a fine addition to the debugging support - now selecting an element with the element inspector will cause it to also be selected by React Devtools, nifty stuff.

Remove module info from the data section + allow external modules
Remove module info from the data section + allow external modules

This commit by @tadeuzagallo "lets external libraries define RN modules instead of previously requiring everything to be compiled together as one library" - thanks @ide for pointing it out!

Remove contextual navigation from Navigator
Remove contextual navigation from Navigator

This commit is a big red diff and "is a breaking change to Navigator - removes 'contextual navigation' for the time being. So now events and routes don’t automatically propagate from a child navigator to its parent." Thanks again @ide for pointing this out.

Be sure to read it through if you're using nested navigators in your app - this will likely be included in 0.7.0rc which will be coming next week.

Highlights from the community

jordanbyron/react-native-event-source
jordanbyron/react-native-event-source

"A react-native interface for EventSource: Server-Sent Events for iOS"

Great for integrating with Rails 4 apps using ActionController::Live

naoufal/react-native-activity-view
naoufal/react-native-activity-view

That's four now, four weeks in a row of React Native libraries for @naoufal! This library is similar to ActionSheetIOS that comes in React Native core but with a slightly different API and it gives you the ability to add images to your shared content as well.

necolas/react-web-sdk
necolas/react-web-sdk

@necolas, a developer at Twitter, takes the first serious stab at coming up with a tool to make your components run on both React for the browser and React Native. Browse through the README then pull the project and give it a try. If you have any feedback, be sure to leave it!

React Native Tinder-like cards
React Native Tinder-like cards

React-Native Tinder like cards from the JavaScript Without Grammar by @browniefed. Check out the example on rnplay.org

catalinmiron/react-native-dribbble-app
catalinmiron/react-native-dribbble-app

We mentioned this one a few weeks ago, it's now open source - looks pretty slick! That's the second Dribbble clone in this week's newsletter.

lwansbrough/react-native-multipeer
lwansbrough/react-native-multipeer

"Communicate over ad hoc wifi using Multipeer Connectivity" - FireChat anyone?

mrblueblue/react-native-alt-demo
mrblueblue/react-native-alt-demo

A demo app of that uses the popular new Flux library called "Alt" with React Native.

oblador/react-native-collapsible
oblador/react-native-collapsible

Similar to the accordion component from a couple of weeks ago, collapsible is a higher order component that you could use as a base to build an accordion, or just on its own.

chirag04/react-native-in-app-utils
chirag04/react-native-in-app-utils

@chirag04 wants to help you handle in-app purchases. Will you let him? Stay tuned.

adamjmcgrath/react-native-simple-auth
adamjmcgrath/react-native-simple-auth

I'm a silly man - so I know, I linked to this last week, but @adamjmcgrath gracefully pointed out an error in my description. For Facebook and Twitter it does not use an in-app browser, it uses native iOS apis - a bit different from integrating with the Facebook or Twitter SDK but still works great!

650Industries/react-native-invertible-scroll-view
650Industries/react-native-invertible-scroll-view

"InvertibleScrollView is a React Native scroll view that can be inverted so that content is rendered starting from the bottom, and the user must scroll down to reveal more. This is a common design in chat applications and the command-line terminals. InvertibleScrollView also supports horizontal scroll views to present content from right to left." - from @ide and @ccheever of exponent

This was a released a while ago but I mention it now because this commit landed into master which means that if you install from master you will no longer need a patched version of React Native for this library to work. Worth checking it out if only for an example of how to build your own higher-order ScrollView components!

brentvatne/react-native-scrollable-tab-view
brentvatne/react-native-scrollable-tab-view

Tabbed navigation that you can swipe between, each tab can have its own ScrollView and maintain its own scroll position between swipes. Pleasantly animated. Customizable tab bar. It's my favorite navigation pattern from Android, underused currently on iOS in my opinion.

Check out this example gif that uses a custom tab bar to implement the same behavior as the Facebook Android app.

This second example gif shows another common pattern - a sliding line to indicate tab selection.

Check out the README for details on how to implement your own custom tab bar, and let me know if you have any feedback!

Friends of the newsletter

Appetize.io
Appetize.io

"Online web based iOS Simulators and Android Emulators. Stream mobile apps in the browser with html5 and javascript." - that's what their og:description meta tag says; it's true and they do a damned good job at it. They do a great service to the React Native community by hosting the simulators for rnplay.org, but we chose to reach out to them and get them involved because, simply put, they were the best solution we could find for the job.

Check out their embed page for example, their API gives you so much control and with very little effort. You can upload an app for 100 minutes free of simulator time, so why not give it a try?

Goodbits
Goodbits

"Newsletters should take minutes, not hours. Goodbits helps you quickly build email campaigns."

The company is based in Vancouver, Canada and is run by some friends. But more importantly, it's a useful product that I use every week to make this newsletter.

Check them out if you have a need for a tool that removes the incidental complexity of sending out a newsletter.

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!

Collect and curate content easily for brilliant newsletters. Try Goodbits for free!