MonoComponent

 One Design System for both React and React Native

 

 

 

@vilvaathibanpb

- Vilva Athiban P B

Javascript Developer @ Omio (GoEuro), ex-Sixt

 

I teach @ JsFactory.in

 

Passionate about Browser

 

Open Source is

 

I code on JS, React, GraphQL

About Me

Are you a Startup?

It's 2019 already, and Online presence has become almost mandatory for any and every business

Online Presence - Website (Optimized for mobile), Android App and iOS app 

Problems in Online Presence...

As a startup, you need things moving fast

As a new Product, there could be so many changes in terms of features

It's challenging to build separate teams for Web, Android, and iOS and maintaining consistency in the product across platforms in a startup environment

These cost a lot to the company in terms of money and reputation, especially during early stages.

Solution?

Mono Components

What is Mono Component?

Mono Component is an ideology where we build a single component and reuse it both for React (Web) and React - Native (iOS & Android) without changing a single line of code.

We will see how to build one in a while...

How does it solve the Problems?

A single code base for Web, iOS, and Android, thereby enabling easy maintenance and consistency across platforms

A slim and quality team (Javascript) will do the job. No need to worry about hiring many people to build three different teams.

This makes the development faster, thereby pushing your product ahead

Live Coding - Fingers crossed

Steps to build MonoComponent Application

  • Setup React native application with `expo`
  • Setup React application using CRA
  • Install styled-components in React native application
  • Merge React Application to React native application
  • Test their working before proceeding
  • Change the main entry point and group App into `src`
  • Create the Design system
  • Implement MonoComponent
  • Enjoy your life 

( For my reference, have a bad memory      )

Cons of MonoComponent

  • UX Design has to be made to satisfy all platforms
  • React Native doesn't support CSS yet
  • All the basic components have to be created and used from the Design system
  • Create multiple versions of a component in a few edge-cases
  • Few CSS properties cant be used in React Native

 

Conclusion

Though there are few minor cons with this approach, Mono components are highly useful and profitable for scaling startups with small teams. The learning curve for developers are also very low in this approach. 

Thank you

Any questions, Reach out to me  

Feedbacks are much appreciated to develop myself

@vilvaathibanpb

MonoComponent

By Vilva Athiban

MonoComponent

  • 177