Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?

React Native Newsletter - Community Interview #1

Chirag Jain (twitter) (github) is the cofounder of Lrn, a React Native iOS app released to the app store on July 28th that jumped to the top of ProductHunt in the same day. It was also reported on by Creator, TNW and BusinessInsider. Some of his notable contributons to the React Native community include commits to add rotateX, rotateY, rotateZ and perspective to the style transform property (check it out here), an open source library for creating custom tooltips called react-native-tooltip and another for handling in-app purchases called react-native-in-app-utils.

brentvatne

what’s your background in software development? have you written other mobile apps before react native?

chirag

I started with php and then been doing node.js for last three years. I had zero experience writing native mobile apps before react native. I did do small projects on phonegap only to be dissatisfied and discarding them.

brentvatne

yeah i had a similar experience [with phonegap] :) were you using react before getting into react native?

chirag

No. I saw react native keynote talk in the f8 developer conference. That is the first time i was introduced to the world of react and react native. Felt like i was doing it wrong for so long. haha. Wish i met react [earlier]

brentvatne

so you got into react native early and it has changed so much since its original release, what would you say are the biggest improvements that you have noticed?

chirag

I have seen react native getting better with each and every commit. The animated api was one major thing i liked. There are so many cool things that will be released in future versions of lrn that will use the animated api. Performance of course got better and better. Inspect element and profiling made it look like i'm doing front end development again.

brentvatne

so now that you have had a chance to talk about the nice things, what would you say are the most frustrating aspects of working with react native?

chirag

There was only one thing in particular that was frustrating for us. ie the <Text> api for highlighting. For an app like lrn, we wanted do heavy syntax highlighting, With react-native you need to nest each and every word in a tag to highlight. We ended up writing custom generator which would create all the static components from "<b>var</b> <g>name</g> = "##### chirag" to render something like <Text style={styles.blue}> {'var'}<Text style={styles.green}>{'name'}></Text> ...</Text> and so on. I'm sure there must be a better way to do this which i need to find. Apart from this, i had to learn some objective-c to extend ios stuff. I do believe we should not support each and everything in core that can be in userland. So learning objective-c was not too much of a pain. especially after having your code examples :)

brentvatne

if you could have 1) a feature of your choice added to react native & 2) a bug fixed, what would those be?

chirag
  1. improve the text api for better highlighting.

  2. Definable distance pagination for ScrollView by rxb. We need to get this in react-native for being able to launch flashcards in our next version 😉

So now you know what's coming next in lrn app. haha. and of course, react native for android :)

brentvatne

did you ever get close to giving up on react native for lrn?

chirag

We were really committed with react native because we knew all the befits we will have in future. There were time when it was really frustrating to understand the bridge and extend ios as well as reactnative components for tooltip. But thanks to @robertjpayne you and @ide, we got it resolved

brentvatne

i remember that! lots of irc discussions around it :)

chirag

yeah. tooltip was so important and we had to get it right.

brentvatne

do you plan to use the over-the-air update functionality made possible by react native on lrn?

chirag

By over-the-air you mean load the main.jsbundle from a server?

brentvatne

right - like shipping app updates without going through the app store by updating the bundle

chirag

I got really excited when i saw someone on IRC mentioning it that rn-play is using this feature. We just realized this feature few days ago. With lrn we want to keep the app be available offline at all times. Loading from a server everytime is not an option. However we can cache the bundle somewhere and use it. This is something that i def. want to explore now.

brentvatne

how many engineers work on the lrn app?

chirag

Right now it's three of us. I lead the development but we all collaborate on design and tech since it's all javascript at the end.

brentvatne

how long did it take to build the app?

chirag

It took about 2.5 month from idea to no. 1 on producthunt 😉

brentvatne

that’s pretty impressive for no previous native mobile development experience!

chirag

the docs and early adopters like your self made it really easy to adopt and understand things.

brentvatne

what advice would you give to people who are just getting into react native?

chirag

Don't worry about the questions and doubts you may have on the react-native tech. Just go for it and build it app. Feel free to ask the community if your stuck!

brentvatne

:) anything else you want to say?

chirag

I think react-native is an amazing tech and facebook is really the game changer. Hope to see more and more apps using react-native in production.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment