(I'm a first-year CS student in Denmark)<p>I was planning on beginning a free web course on Android development [1] when it hit me whether it was worth learning native app development with stuff like Ionic, PhoneGap and React Native around.<p>[1] https://www.udacity.com/course/ud853
Having recently built a relatively complicated app in Cordova, it depends on what you're doing with the app. Is it going to need a huge amount of interaction with the native device? If not, a cross domain framework might be a good idea.<p>Basically, you can make the framework do whatever you want, it just may be more painful to do than just coding the app natively from the start.<p>If you're doing something that doesn't currently have a plugin for your framework, you're going to need to learn some native development anyway. (Java for Android, Objective C / Swift for iOS.)
Yes.<p>You can always choose to use those other things, but you will be better off if you understand native development. You'll understand what you are getting and what are the tradeoffs.
I believe so.
React Native is the beacon of hope, where it would take at least a year to stabilize and be able to do most things easily.
PhoneGap had been around for a while, no mainstream adaption yet: Viable option with a but.
Native is still relevant for performance reason.
I can't tell what will happen 3 years down the road.
If you need to develop a reasonable mobile app within a year, native is still a good choice.
Choosing to build Android (mobile in general) apps using a Hybrid framework such as Cordova, Ionic, Xamarin may help you learn the intricate details of the mobile development life cycle. No matter the framework chosen, you will spend a considerable amount of time figuring out setup, time developing, and time resolving issues with the problems you encounter.<p>With that being said, and as @Envec83 said, why go through so much trouble when you'd spend the same amount of effort going Native? Look at the job market; yes, you'll find some jobs asking for such hybrid frameworks. However, most will want hands on native development with exposure to hybrid frameworks such as those mentioned above.<p>In my opinion, you being a first year CS student, and with the likeliness that you'll learn Java along the way, it's a great start to go about learning to build Android mobile apps the native way.
I don't think you'll get away with not learning native dev. But that doesn't mean you shouldn't use any of these technologies (well maybe PhoneGap is not a great idea :D). One of the things that gets people excited about React Native is that it doesn't go out of it's way to shield you from native code or APIs.<p>I actually found playing around with Rhino on Android pretty illuminating.