Why you should NOT use NativeScript

It’s been two years since our company decided we’ll pick NativeScript to create and maintain our Android App.

This was the biggest mistake our rapidly growing company made in the last 4 years. We are about to rebuild our Android app in Flutter from scratch now…

Don’t make the same mistake and forget about {NS} before it’s too late:

1. What {NS} promises is a lie

,,You can add NativeScript to an existing Angular Web project with the help of Angular CLI and NativeScript Schematics.”

To take advantage of the automated migration commands for NativeScript Angular you will need to install the Angular CLI. Run the following command:

npm install --global @angular/cli

Source: https://docs.nativescript.org/angular/code-sharing/migrating-a-web-project

Do not believe it. It won’t work just like that. Turning your website to an Android/iOS App will going to be 6 months of struggling with NativeScript.

You’ll have to learn how to use their barely working undocumented UI elements and API if you want to create more than a blue button on a white screen. Learning and understanding take months, since the docs are like 60% done, everything else takes days to find out on your own.

If you want to work instead of praying for valuable Google results, don’t use NativeScript.

2. Documentation is ridiculous

They are behind with the docs for years. They always promise that the next version’s documentation will be really finished and will be awesome and contain everything.

You wait, reload their website every day, ask them on their Slack channel, where they keep promising. Then they announce that they’ve started working on a new NativeScript version and never finish the current docs. This happened when I was upgrading to 6, then 7, and it’s happening now with version 8 too.

Don’t expect that you’ll get proper documentation ever.

You should expect instead:

  • Unanswered questions on StackOverflow
  • Unanswered or zero value answers (“it’s your fault…”) on GitHub
  • Judging you on NativeScript Slack community instead of getting proper help

3. Performance is terrible

They promise that you’ll get a real Native App finally, but they don’t mention that it’s going to be extremely slow.

There are many GitHub issues opened about how they should improve the performance, but they don’t care at all. Usually, when you are right with a bug report, they don’t answer, just ignore you.

4. Arrogant communication

Go to their Slack channel and ask them about anything I mention above. They’ll cut you out with some trendy BS like:

,,You are too negative, I can’t help”

,,We are working on NS for 6 years, how dare you tell something is wrong?”

,,You can post a PR if you are that smart”

They are very clear about, an Opensource project can’t get a negative review, this is the nature of an Opensource project. I think this thinking led the {NS} devs to the wrong path, they only accept your opinion when you are saying positive things about NativeScript. When you are “negative” (meaning you spot out something is wrong and ask about it), they’ll attack you together and shut you up.

We are not perfect. Nobody does. But if everybody is telling me that I’m perfect, I won’t realize how should I improve myself. Right?

Quote from one of their community leaders:

Negative projections usually get back negative responses or non-responses.

The key here is the “non-responses” part, which testifies what I’m talking about. This convo is available on their Slack channel if you don’t believe me.

5. There’s no support at all

They keep telling to everybody that this is an OSS project so if you are looking for support, you are a bad-bad and stupid guy, and go away, actually why didn’t fix it on your own and sent a PR?! Then you feel bad that you asked something.

Do you know the feeling when you asked a question then you’re super anxious when you’ve got a notification you’ve got an answer? You’ll feel this all the time when you’re stuck and want to get some answers on Slack or GitHub. They will start bothering you, judge you, and tell, you are not smart enough the understand them, so shut up and do what they tell, even it has nothing to do with the support question.

6. Prepare for continuously refactoring

Every new version is like a totally new thing. When you upgrade prepare to a 100% refactoring of your code. Every new version brings a totally new approach, new module names etc etc…

Plugins won’t work either.

NativeScript is useless without some basic 3rd party plugins. You can’t even open a view to pick a file with the basic NativeScript. You’ll rely on several developers who are independent of the NativeScript community. After you spent days refactoring to the new version you’ll realize, 50% of the plugins are not compatible with the new version. A new adventure begins: going to each GitHub repos and begging for the developers to upgrade, OR you’ll finally create your own fork and maintain a plugin for yourself as I did.

Final Thoughts

I’m really sad, this project doesn’t work finally. It was one of the best concept ideas of the coder world in the last few years. I put into an extreme amount of energy and tried to help them to keep up the good work and do it on a professional level. Finally what I reached is they ignore me because I’m negative. I’m not negative, I just tell if something is wrong. When something is working I tell that too. But that doesn’t count. Living in a bubble and keep saying it’s not a bubble always ending with a huge fail.

So If you don’t want to build your company onto something that doesn’t work, just don’t do it.

Oldschool vampire octopus

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