What do you think the future is for Cross Platform application development?

#1

There has been a lot of discussion lately on Hacker Noon about Cross Platform development. Many developers are turning to technologies like Flutter, while other prefer React Native. In a post published today, Justin Mancinelli reviews many of the popular choices, and compares the pros and cons of each one. The Future of Cross-Platform is Native.

With new cross platform technologies being developed, what do you think will emerge as a favorite among developers? Do you agree with Justin, that the future is Native?

2 Likes
#2

The future is probably some JS solution. There is a massive hoard of people with limited JS experience eager to write apps. I don’t know if a solution exists today that is easy enough to get started and has an intuitive enough API to empower that crowd. I imagine adoption will look a lot like jQuery adoption but at a bigger scale when the right solution comes along. I know a lot of people are probably groaning at that thought but getting more people writing code is a good thing.

5 Likes
#3

I’ve built apps for everything from Windows Mobile to Android and every desktop or web target imaginable, including Silverlight, WPF, C# Forms, MFC, Angular, React, React Native, Cordova, Ionic, Flutter, and many more. Hands-down the best experience I’ve had as a developer has been with Flutter. It’s absolutely amazing in my opinion and I’ve been using it exclusively for mobile development for most of the year now. The desktop and web targets are still early in the works, but the mobile side (arguably the most challenging platform) is so rock-solid that I have nothing but confidence that the other targets will be as solid and performant as Flutter on mobile. Here are a few things I like about it:

  • Dart - The Dart language is super-clean and reminds me a lot of C#, TypeScript, and Java. Due to the extreme performance requirements from some of my employers and clients over the years, the common issues people face with JS-built technologies are a dealbreaker for me, and I’ve had to author custom JS libraries in numerous circumstances because Angular / React / JQuery / etc simply did not meet performance requirements, even with optimized hello-world apps in testing. Dart provides a rock-solid developer experience with built-in type safety, generics, and tons of other badass features.
  • UI defined in code - Defining the user experience and interface of an application in code is something that I have become accustomed to over the years and may be a personal preference, but being able to define the UX for something purely in code opens up possibilities like dynamically-generated UX and other awesome things which are difficult to do with a drag-and-drop visual interface. HTML structure is defined in code, as are many other front-end technologies, so why not keep a good thing going?
  • Render Performance - Flutter apps blow away nearly everything else that isn’t pure native in terms of performance and smooth rendering. The kind of animations and transitions that can be built are simply amazing and they have zero jank or lag whatsoever. Classes like AnimatedBuilder provide infinite flexibility in creating animations and interactions that are smooth and operate seamlessly across different device sizes and resolutions.
  • Backed by Google - Unlike some SDKs which have been in beta for years, Flutter is a true production-ready technology that works great and is backed by some of the best software engineers and designers in the world. The support is great and both the Dart language and Flutter are in active development with a large talent base of highly skilled people improving upon it daily.

Here’s a tutorial article with an example of a simple demo project I made, to demonstrate scrolling parallax background effects in Flutter:

Hope this helps and I appreciate any feedback or other information as always.

1 Like
#4

Not a pro here. But as not a pro - I think JS and React native will be a time saver and money saver. Yes - I understand problems, that i takes. But we’re software developers - let’s solve them!

There a lot of new tools that trying to solve old problems. It’s like an old days - when HTML pages was rendering differently at browsers. Was it solved? partially yes.

#5

I agree with you on the concept of things such as HTML/CSS not rendering properly on all browsers until recently, which actually starts to make a lot of the popular JS-based frameworks obsolete since you can simply write HTML and JS and things work correctly. However, when it comes to building more than simple websites, I can provide a lot of insight into why JS is unsuitable for many applications. There is a very good reason that C/C++ is still extremely popular. Elon Musk himself has explained in his last book why Tesla and SpaceX use only C++ for development. While self-driving cars and self-landing rockets are somewhat beyond the scope of simple web development, I include this example to demonstrate cases in which JS would be simply unacceptable, because a glitch is fine on some non-critical amateur website, but in mission-critical scenarios, buggy software can do property damage or possibly even injure or kill people.

So, having illustrated that JS is generally unsuitable for mission-critical applications (something that any seasoned multi-disciplinary engineer will validate), we eliminate the idea that JS can be a time-saver in all cases because it can’t be used in all cases. React Native has serious issues and is still in beta, and one of it’s main corporate stewards (AirBnB) has not only stopped using it but is also phasing out their contribution to the project, potentially leaving it hanging in beta forever until people finally abandon it (which I can predict with some accuracy as a possible outcome based on many years of experience in engineering and management).

So while it might seem at first glance like React Native or another JS-based solution will be the emerging champion in the future, there are simply too many issues with it for it to evolve into something that can contend with Flutter or even the tried-and-true pure native approach, which is honestly how most production apps are actually built, at least by real successful companies with real money and customer base (10+ million users). Aside from that, RN is probably just fine for learning JS or tinkering with small MVPs and things like that. But whatever someone builds in RN, I can 100% guarantee that I can produce a superior version of using Flutter or just in native code.

#6

I totally agree with you. and I understand the reasons of why to code on low-level languages. But if we compare the amount of code, created at Tesla vs whole JS community. so it’s just a different point of view.

I don’t also think that C++ can prevent from killing people. Against this is open source movement - where a lot of people update code frequently, so it’s really anti-bug environment.

I’m also not against a Flutter. But for me - it’s just another Swift, any drag-n-drop, Angular, etc. I don’t see a lot of adoption of it. It maybe later, but…

Again, if you want a more serious opinion or discussion here - I know a good person that you can contact and ask his opinion.

Again - I’m totally fine with any of options. Right now development looks like a book of biology with a speed that normal person cannot follow.

Aside from that, RN is probably just fine for learning JS or tinkering with small MVPs and things like that.

Short thing that pop in my head - React is backed by Facebook.
Doesn’t instagram/messenger built with R/RN stuff? I think they are, or why FB created React.

#7

Instagram is developed with React Native, while the FB app itself is a native app with some components built in RN.

Flutter might have been another drag-and-drop if it were not a code-driven framework with zero drag-and-drop capability. Did you read any of my previous post on it? Have you done any research on it or are you just speculating about it at this point?

C++ itself is an open language specification and most of the compilers for it are open-source, so again, please do some research prior to speculating about technologies.

Not to be disrespectful but I’m probably going to have to side with the guy who actually builds and launches rockets and makes self-driving cars on what technologies are safe to use for that, since you know, he actually does that for a living instead of speculating about it. There’s a huge difference.

In my humble opinion, facts are critical in the world of engineering and it’s usually wise to research things prior to making claims about them which may be false or inaccurate. I don’t have a problem contacting your person to ask their opinion, although having worked in technical jobs for decades, it’s not like I haven’t talked to other people about this stuff along the way. If you want to continue presenting opinions contrary to fact, that’s totally cool with me because it doesn’t make 2+2=5.

#8

The obvious benefit of cross-platform mobile application development is reduced costs. Developers spend their time and resources only once, rather than reinvent the wheel for each platform. The savings that emerge when only one instance of the software has to be maintained, on a periodic basis, offers even greater savings. Updates sync automatically to all platforms. Code re-usability and enhanced cloud-based deployments contribute to reduced costs in a big way as well. Such benefits are invaluable in a highly competitive environment where businesses are looking to cut costs and improve process efficiency in a big way.
Here is the comparison of Native, Hybrid and Cross-platform application. http://bit.ly/2wOiBWB

1 Like