Townske app in react native

Dean McPherson
Dec 15, 2015 · 5 min read

The experience of a web developer building an iPhone app.

About 6 months ago we were at a crossroads with our travel publishing platform Townske. Townske was officially launched on the web and we were ready to move on to developing and releasing an iOS app.

As we are rocking a development team of one, we didn’t want to have to put on a native iOS developer for a single app, and also didn’t want to outsource to a third party for development and maintenance. At that time I stumbled over Facebook’s announcement of React Native.

React Native is a framework that allows you to compose native UI with Facebook’s fantastic front end javascript framework React. We use React for the front end of, so the appeal of using the same framework for both native and web apps was strong.

We discussed the merits and risks of using such fresh tech, but decided that it would be worth the risk.

Now that we have had our app in the app store for a few months, I thought I would take a moment to reflect on our experience.

Development experience

The team at Facebook have done a fantastic job with providing an exceptional development experience with React Native. The system messages are verbose and precise, often suggesting probable causes to errors. In debug mode, the app can be set to live reload on changes, and real devices can be remotely debugged via chrome dev tools.

Compared to trying to decode compile errors in objective-c / swift, this was very refreshing. Having hot reloading of the app is also a godsend in terms of development speed, as waiting for compilation is the biggest productivity killer.

Developing for react native is very similar to developing for standard react. The biggest points of deviation from a normal react app are styling and navigation. Native apps are usually structured differently to web apps, so this can require a bit of thought for web developers getting into app development.

React Native contains a port of the web’s flexbox model for laying out UI, and a subset of CSS properties for styling. Flexbox has been around for a while now in browser-land, but be wary that there are few deviations in the standard flexbox properties to the web standard (e.g. default flex-direction).


There were remarkably few road blocks while developing this app. The biggest problems we ran into were feature related. For example, when I started building out the app, there was no way to click a marker on a map. However, without fail, every time I ran into an issue like this, there would already be a github ticket open about it, or a fix already scheduled for the next release.

So how did it turn out?

Overall, developing for iOS in React Native was nearly completely painless. The only small pangs are easily chalked up to the growing pains of new, rapidly evolving software.

I would bet money that the vast majority of iOS apps could be made comparably well in React Native in a reasonable amount of time. For us, it took a designer and developer just over a month from start to finish for our first public release, including design and build time for the app and its supporting web services.

One of the best things particularly for us, is that a large portion of business logic (data handling, etc) could literally be lifted from our web front end to the app.

We are really happy with the quality of the product that we’ve managed to create with React Native, and feedback so far has been overwhelmingly positive. We have been featured twice in the App Store under best new apps, go to to check it out!

There were some minor performance issues with our earlier versions, but the community around react native on Facebook were really great in giving detailed feedback and assistance in resolving perf issues.

Who is react native for?

I would recommend React Native in a heartbeat to anyone in similar shoes to ours. It is obviously ideal for those with a web development background, especially if you have ever used React. React Native probably won’t persuade many native iOS developers at the moment, but React Native brings a few really strong qualities to the table.

  • Speed of development. Live-Reload is something most web developers don’t think twice about now, having it around certainly speeds up code / test dev cycle. Any time waiting for compilers or emulators to load is time waisted.
  • Speed of deployment. Because React Native loads the application from a single javascript file, utilising services like you can push immediate updates to production apps. This is an epic win for React Native, as having to wait for minor bug fixes to be released is not ideal.
  • Code share/javascript everywhere. If you are making an android or web app alongside your iOS app, much of the same core logic can be used. The added benefit of being able to write for all the above in the same language is also great for not having to shift context between platforms.
  • Community. This is not directly related to the framework, but the community around React Native is really helpful, friendly and engaged. Check out the Facebook React Native community group in particular if you’re getting started, there are lots of people hanging around to help.

Want to see what I’m up to now? Check out Paperform, it’s like medium meets a form builder.

Hacker Noon is how hackers start their afternoons. We’re a part of the @AMI family. We are now accepting submissions and happy to discuss advertising & sponsorship opportunities.

If you enjoyed this story, we recommend reading our latest tech stories and trending tech stories. Until next time, don’t take the realities of the world for granted!


Sign up for Get Better Tech Emails via


how hackers start their afternoons. the real shit is on Take a look

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Dean McPherson

Written by

Co-Founder of Maker of things. Going grey and loving it.

Elijah McClain, George Floyd, Eric Garner, Breonna Taylor, Ahmaud Arbery, Michael Brown, Oscar Grant, Atatiana Jefferson, Tamir Rice, Bettie Jones, Botham Jean

Dean McPherson

Written by

Co-Founder of Maker of things. Going grey and loving it.

Elijah McClain, George Floyd, Eric Garner, Breonna Taylor, Ahmaud Arbery, Michael Brown, Oscar Grant, Atatiana Jefferson, Tamir Rice, Bettie Jones, Botham Jean

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store