There is always a lot of confusion about the future of mobile development, especially the difference between native and hybrid mobile development.
Before we move on, it is important to understand the basic difference between native vs hybrid mobile development:
Hybrid App: In hybrid app, the developer augments web code with native SDK. It can be deployed easily across various platforms and is generally the cheaper and faster solution.
Native App: This is platform (iOS, Android etc.) specific and requires unique expertise. However the full potential of the platform can be leveraged which will drive great user experience and larger app capabilities (especially around phone hardware). This can be costly as per requirements and may take more time to develop.”
So, one of the main concerns of new mobile developers is if they should invest in native mobile development… Is it going to die?
This is a good question as you know, when smartphones—when iOS and Android first came out everyone was predicting that—what was it, like, app—I can't even remember the names of the frameworks. Anyway, the hybrid frameworks were always been present, that have come out and everyone was predicting that native development was not the way to go and native development wasn’t work in the future and that it was all going to be developed in the browser.
This is great. It makes sense to me to use hybrid development, but we haven't seen it happen yet. The fact is that the phones still are not powerful enough that the hybrid, the pure hybrid experience is good enough that everyone has abandoned native apps and gone to that. Now, there are a couple of distinctions I'd like to make here. One of them is that, you know, Xamarin and hybrid is not quite the same thing.
Read Also: Browsers, not apps, are the future of mobile
But the thing is like that's different. The Xamarin stuff is technically native. It's cross platform but it is not hybrid. It is not in a web browser. It basically compiles the code to native code and you get native binaries that get installed on the devices. I want to make that distinction clear because you've got to really take that into account when you talk about the hybrid versus native.
I suggest that if you're just going to be just a purely native Android or OS developer that that's probably not the best choice. Now, with that said, even with my own personal biases, I think if you're an Android developer you've still got at least 5 years of experience in native Android development, maybe 10 years. I mean, the COBOL developers that are working on mainframe systems are still there. So there's going to be Android applications, there's going to be Legacy Android applications even if everyone goes to hybrid or cross-platform development tools, there are still going to be the stuff to support. There are still people who are going to use it just like COBOL so I wouldn't worry there.
IF you want to go where you're going to be most useful and where the most money is going to be, I would look at some kind of cross-platform. I wouldn't worry about—don't try and win this battle between hybrid and native. Instead, look at cross-platform, because cross-platform is where it's at. The hybrid native thing, I don't know how long this battle is going to go on. I don't know if ultimately hybrid is going to win. What I can tell you is that technology, as far as thick client thin client, which is what we're talking about here is like a pendulum and it swings back and forth on the web and it swings back and forth on the desktop. You have periods of time where—we had a period of time where, remember, everyone was going to Flash and everyone was basically creating these thick client applications inside of the web browser. We're kind of there now. We have single page applications and all this stuff, and React and so we're able to build essentially thick clients inside there and then we went to where we had it super light with Web 2.0 or that came first, but we go back and forth.
All right, I hope that answers your question. If you have a question in mind, feel free to ask in comments.
Also Read: mobile app development using apache cordova