Flutter is a solution to the problem of being able to build an application one time and have it run on multiple platforms. Android and iOS for mobile, Mac, Windows, Linux (#represent), all would normally need to be built separately. But things like flutter attempt to solve this issue. And for the most part, it works. So why bother asking if it will rise through the ranks or fall flat on its face? Well, let's get into it.
So native means something built for a specific platform. For Mac or iOS, this means using Swift (or Objective C for the dinosaurs), C# for Windows (which can somewhat be used for cross-platform, more on that later), Java for Android, or any PC operating system (as well as stuff like Blu ray players and the space station) and what not. When you want to build something optimized for a platform, these are typically what you will use. And if you want to target more specific devices, like the Apple Watch or Apple TV, you're really going to struggle to make it happen with a hybrid app solution like Flutter. In my humble and probably controversial opinion, you're better off using Java and Swift. Yes, they're two different languages, but they're native to their individual platforms, and Java will let you build desktop apps as well, and get closer to the hardware than a hybrid solution. They're also extremely similar to one another. Knowing one makes learning the other a walk in the park. But what if the application you have in mind is simple enough that a hybrid solution will be just fine. How do you go about choosing which solution to go with, and will it be Flutter?
So Java will do great for Android and all PC operating systems. But mobile and PC will use different code bases, and iOS gets left out to be written in a different language. Flutter seems promising to solve this issue, but there's another skill set that can be used in a LOT of different ways. JavaScript is the most popular language in the world right now. It's THE language of the web. Doesn't matter what language you use for the back end of your website or web app, which JavaScript can now be used here as well, by the way, the front end will certainly use JavaScript. And with the popularity of the web these days, it's no surprise that JavaScript is slowly taking over the world (of development).
Whether you're using plain, ordinary, vanilla JavaScript, or a popular framework like Angular, React, or Vue, you can use your already established skill sets. You already know the language, you already know the framework, just use that and build your application like it's a website, then compile it down to an application for all the different platforms. Whereas using Flutter, you have to learn Dart, the language it's built for, and the Flutter framework itself. That's a lot to learn for something that won't do anything special that you can't already do with what you already know.
Holy run-on sentence, Batman.
Yeah, Flutter is going to fizzle. It'll gain a cult following that loves everything about it, but I don't see it ever taking off as Python has for web apps for example. Dart as a programming language is 7 years old, which is actually older than Swift, but wasn't built for a specific platform. In those seven years, it hasn't really gained a lot of traction yet. And the framework of Flutter itself was just released within the last week of the day this was posted. So not a lot going for it on any front. If Flutter was built for Java, Python, or even Ruby, it would probably have a much better chance. But as far as I can see, this "Dart" missed the bullseye.