This course is aimed at beginners. The time commitment for this course is estimated at 1 hour 48 minutes.

For visual learners check out this video walk through connecting ReactJS and Redux. If you like what you hear, start at the first episode of the series.

Products that allow users to customize their profiles or themes often need a way to visually pick the right color. The react-color project provides 13 drop-in color pickers modeled after apps like Photoshop and Sketch. It also supports multiple design formats to best match your design. Check it out here.

Working with maps in RN is easier with react-native-maps. The project is now hosted under Airbnb’s company github.

When contributing to an Open Source project it’s important to understand how a project handles branches, versioning, issues, and pull requests. Check out the updated Contribution Guide.

This week’s interview is with Nikhilesh of Exponent.

Eric: Can you tell us more about who are you and where you are from?

Nikhlesh: I’m Nikhilesh Sigatapu. I work for Exponent. I’m from India, have grown up in Qatar since I was two, went to college in the US and am now living in San Francisco.

Eric: What brought you to the React community?

Nikhlesh: I actually got into it right when I started at Exponent since it’s about React (Native). Hadn’t used React before. The first thing I worked on using it was a game and it actually managed to fit fine! I like attempts at re-thinking existing paradigms so it was interesting to me: here is a new model that seems expressive enough to recreate many existing mobile-app type interactions in a different way, what can we do with it?

Eric: What is Exponent?

Nikhlesh: Exponent gives you a development tool and libraries that you can use to write mobile experiences in JavaScript, and a mobile app that lets you view the experiences you and others create. You can also ship your experience as a standalone mobile app to the iOS and Android app stores. So you can easily make interactive things and share them with your friends quickly!

It uses React Native to bring your JavaScript to life so if you’re familiar with that you can use what you’ve learned. There is a built-in library for your app (the Exponent SDK) providing features like Facebook login, photo capture from the camera, playing videos, and other such ‘native’ stuff.

Eric: Why did you join the Exponent project?

Nikhlesh: I met Charlie (one of the founders of Exponent) a year before I came to San Francisco. When I got here we met up again and talked about what we were up to. The year before I was working on a game engine for rapid game development (https://github.com/nikki93/cgame) and I’d just begun writing a new thing like that from scratch again taking some lessons from it. Charlie talked to me about this project he was working on with some folks that let you make mobile phone apps, where you write it in an interpreted language and can share quickly.

There was this underlying vibe of “let’s make a more fun and dynamic way of creating interactive things” that were both passionate about in similar ways. So it made sense to do it!

Eric: Has Exponent or any of your other React projects brought about any interesting or unexpected uses?

Nikhlesh: I think the Pokédex made by satya164 is pretty cool.

Eric: Are you working on anything new or exciting that you can talk about?

Nikhlesh: For the past couple weeks I’ve been experimenting with getting faster and more flexible graphics rendering into Exponent, for games, music visualizers or such. I’ve made a little progress but it’s tricky because of the JavaScript / native interface, React Native’s threading model, and the need for it to be cross-platform. This is the sort of thing I’ve always liked programming so I’m excited about it. Hopefully it works!

Eric: Finally, are there any new projects that you’re interested in?

Nikhlesh: One project I’m interested in and have been watching is http://regl.party/. It’s a ‘stateless, declarative’ interface to WebGL, like React. It’s cool because it allows you to control graphics stuff at a level that directly writing WebGL offers (like writing shaders and tying them to buffers), but at the same time you’re able to work at this level of abstraction where you can just specify what things should look like and it takes care of the WebGL state for you.