From an Idea to a Product; Reducing Time To Market by using Cross Platform Javascript

Sam Upra
Netscape
Published in
5 min readOct 20, 2017

Every tech entrepreneur(Techpreneur) is impatient. Every techpreneur wants to reduce the time to market. Every techpreneur wants to test their product in the market. Every techpreneur wants to know if their million dollar idea is an actual million dollar idea. But how do you take it from an idea to a product? Its, simple : Learn Javascript! (No, not really, it’s not that simple)

Frameworks

I have chosen Javascript because you can write your web completely in javascript, including backend services and front-end code and even mobile code (using React Native) in Javascript. It’s a language that is highly rewarding for a startup ecosystem as one developer can use code interchangeably for every platform. Write once, deploy everywhere.

In a world filled with frameworks, polluted by programming languages that each claim to “serve a purpose” and out of box solutions that look like a means to an end; I have put together some pieces that can allow an entrepreneur to move their product from the initial phase to MVP (Minimum Viable Product) phase in one of the quickest ways possible.

Backend Services

NodeJs

“NodeJs is a Javascript runtime that is event-driven, uses non-blocking I/O model that makes it lightweight and efficient”. Event-Driven Programming or Reactive Programming allows for thread efficiency which is really important in Javascript as it is single-threaded. This allows your application to do other stuff while it is waiting for a database call or a blocking I/O operation which is a huge boost to speed of the application.

ExpressJs

ExpressJs is a web framework which runs on Node that allows you to program right out the box in a couple of minutes. It is perfect for startups looking to deliver a MVP since it’s reliable, easy to use and promotes fast delivery.

To Summarize :

  1. Node is f**king fast (event-driven, non-blocking)
  2. Express is lightweight and easy to use
  3. Javascript has a ton of frameworks that make the backend developers life easy

Web Frontend

What is React?

React is a javascript library for building user interfaces built by Facebook. React Js allows the developer to build reusable and easily testable components. ReactJs is a framework used by huge companies such as Netflix, Uber and much more.

ReactJs is based completely on the concept of a component. Everything in ReactJs is a component. A text field is a component. An animation is a component. If I was written in React Js, I’d be a component. Well, you get the idea.

Why is the component based design so good?

Components can be reused, are easier to maintain and grow since the responsibilities are separated out into a nice abstraction of a component. Each component is self sufficient and acts as a piece of an entire puzzle. It’s easier to debug and fix as it really helps you narrow down the source of your problems into one single component.

Virtual DOM

Since React is very a simple and lightweight library that only deals with the view layer as compared to frameworks such as Angular, it’s easier for new developers to pick up and use it efficiently. Also, since React uses a Virtual DOM, it avoids unnecessary changes to the DOM, which are expensive performance-wise as compared to a Shadow DOM in a framework like Angular.

To Summarize :

  1. Components are easily reusable and easy to test
  2. Short learning curve
  3. Virtual DOM
  4. Light Framework
  5. Great for abstraction

Mobile

React Native

What is React Native?

React Native is a framework developed by Facebook that allows you to build native mobile apps using JavaScript and React. React native combined with Expo allows you to have one codebase for both Android and iOS written completely in Javascript.

It’s a huge shift in the paradigm of mobile development and reduces the time it takes to develop applications by providing an API that acts like a wrapper over the native components in each system. React Native is used in companies such as AirBnB and Facebook has also built their Facebook Ads application completely in React Native.

Expo

Before React Native and Expo, if I wanted to write an application that simply calls the camera; I would have to write iOS native(Swift, Objective-C) code to open the camera, then, write Android native (Java, Kotlin) code to do the exact same thing and for the sake of consistency, make both of these systems look similar! Frankly, it’s a huge waste of time.

But now, with React Native and Expo, I can write code only once for both systems since the Camera API is system aware and knows exactly what to do for each native system. This reduces the time to market significantly and allows you to reach a higher number of users.

To Summarize :

  1. One code base for both mobile applications
  2. Completely in Javascript (maximising developer efficiency)
  3. Expo SDK API provides most common functionality used by apps straight out of the box
  4. React Native benefits from all the advantages of React Js which I stated above. You can use ReactJs components in React Native with little modification.

Thanks to Javascript, the Techpreneur doesn’t need to hire three teams : for web, android and ios to reach the majority of the market; he/she simply needs to hire one team of Javascript developers to accomplish the same task of delivering in three platforms. Time to market is significantly reduced and you, as a Techpreneur can test your product much quicker.

For all Techpreneurs reading this, now you know where to start.

Best of luck!

--

--