Developing cross-platform applications
HTML, CSS, JS, TypeScript, React, React Native, React Native for web, Android/iOS native
September 2018 - April 2019
Problem statement: Developer's perspective
As a mobile application developer at Flipkart, one of the leading Indian e-commerce, serves around 20M users a day. We used to build the same features with the same business logic coded by different experts for their respective platforms. This triggered a series of questions in my head:
Do I have to write three different codes on three different stacks for the very same feature? Such redundant life?
What if I am a web developer and aim to reach all platforms but have minimal experience in Android, iOS, Windows, etc.?
How do small and medium-tech businesses even solve for being on all technology platforms?
With myriad devices launched every now and then, how will the engineering teams persevere through all major Operating System advancements?
Problem statement: Company's perspective
A company, for instance, an e-commerce company like Flipkart, that sells a variety of category of products and has a construct of search, browse, product landing, checkout, and payments as verticals. To be available at all mobile platforms there are 3 dimensions over which developers should be working -
Vertical of the page (Search, product, checkout, etc)
Eliminating a dimension, one by one, via progression in technologies should be the aim of the companies in order to be more consistent and efficient as a business.
One-stop solution : React Native
Here each platform has its own native code and the feature code. Here the business logic of the feature code could be the same but the technologies used are different.
Here we introduce a cross-platform interface to abstract out the feature code with almost the same business logic to something we call cross-platform kit. This cross-platform kit code is written in JS and React Native and is bundled to get populated in the native code of each platform
Via the contracts of the Cross-platform interface, the common feature code gets bundled and fetched on the three different native platforms. This eliminates a dimension that we discussed earlier crucial for a company.
Coming across the goodness of React Native, I with my team, quickly adopted this tech stack and started building applications. As my learnings gained momentum, I built a complete membership program by writing the code once in TypeScript and for the very first time, this framework was running seamlessly over the widgetized data responses.
*the demos & scrrenshots shown here are already in production at