We have a deluge of JavaScript frameworks now. A new framework pops up every now and then and suddenly everyone wants to rush in onto the new and shiny thing. The new one promises to fix issues with the previous frameworks and tools. But for the programmer it is an endless learning curve. One has to unlearn and relearn the syntax of different frameworks and little time left for techniques and design patterns. Especially front end programming has never been more fragmented.

Let's discuss the pros and cons of platform native development vs JS frameworks.

Native Android / Native iOS
The bare-bones mobile development using Java, Kotlin and Android SDK or Objective C / iOS sdk. The old school way.

Pros

  • Able to immediately upgrade to the latest releases from platform sdk.
  • Customizability & Control over Individual components.
  • Reduced app size.
  • Out of box support for basic tasks like Navigation, Language, Layout, Icons.
  • Well documented codebase & examples
  • A lot of help / time tested techniques available / libraries available.

Cons

  • Slower built times. Codebase needs to be built and run .. Not instant changes & reload.
  • Separate developers/skills required for every platform - Android / iOS / Web.
  • Maintainability of codebase is an extreme issue with libraries/dependencies constantly updating and breaking changes.

Cross Platform JS Frameworks

Pros

  • Faster build times with instant reload.
  • Write once Deploy everywhere.
  • Able to work on the cutting edge frameworks / tools.
  • One set of programmers sufficient for all platforms.
  • Very easy to implement. Usually modules / plugins do all the heavy lifting for you.

Cons

  • Maintain 2 codebase. Native and JS. Becomes headache after a while. Usually Modules only provide basic level of Customizability. If want more control have to get into the native codebase.
  • One doesn't learn any design patterns / software architecture and best techniques. All one is doing is just including the modules and customising parameters.

Every project is unique and has specific requirements. No one tool is universal for all needs. So while choosing technology stack for your project next time, evaluate what you need and avoid burning time & money later.