4 ms·
Ask HN: Is native Android development worth learning today?
With cross development frameworks like Xamarin, Ionic, PhoneGap/Cordova and React Native around, is it still worth learning native Android development?
- skillachie 11y agoBased on previous experience it all depends on what your app will be doing/used for. For some use cases your application might need to be integrated with C/C++ for performance reasons [https://developer.android.com/tools/sdk/ndk/index.html https://developer.android.com/tools/sdk/ndk/index.html] in that case yes However if your just building apps to display a few pictures, articles and minor social aspects probably not. In my opinion it would be good to know native Android development instead of being at the mercy of frameworks. There will be a time when you meet some limitation but have no choice but to accept it or start writing native good which will delay your app significantly. At least with native Android you have more control.
- smt88 11y agoI haven't used the others, but Appcelerator's Titanium compiles to native code and allows you to hook in native modules. You can use modules that other people have written or write your own. I first used it in 2011 when it was incredibly buggy, but even then it felt ridiculous to learn native development instead of creating an 80%+ shared code base for iOS and Android.
- jaegerpicker 11y agoI'll be more moderate than I thought I'd ever be and say it depends on your needs for the app you are building. Also depends on your definition of Native. First Native can mean a lot of things in Android Land. For instance you mention Xamarin and React Native. Both of those are generating actual native binaries (googles byte code version of Java byte code) or rather React Native for android will when it's actually a thing, it's not released yet but should be somewhat soon. They are both a way of writing Native code in another language (C#, Js) rather like Scalriod let's you write a native Android App in Scala. The are a fundamentally different approach than Ionic or PhoneGap which are HTML5/JS/CSS based webapps that are packaged to be app-like. Also in android development Native is sometimes used to refer to C++ ndk development. Go is also being used sometimes (go 1.5 needed to support it) for native (meaning cpu native binary instead of byte code) code. If you plan on being a Mobile developer as your day job than I say absolutely. If I'm hiring a dedicated Android dev, I'd expect that they are an expert in Android Java. Bonus points for knowing C++ ndk or Go ndk development because then I'm not really restricted as to what I could ask them to do on the platform. Some things like converting video in real time or intense calculations will absolutely require ndk level of performance. If your app is mostly using a rest api or collecting form data, then ndk is way overkill. Rather it's a native experience depends on your goal. If you want the latest in Android API's or features or you want the smoothest most native feeling app, then Java is really the only choice. If you are more concerned about sharing code with and iOS project then Xamarin or soon React Native are the best choices. Lastly if all you really care about is having an "app" for a SaaS or other webapp then PhoneGap or Ionic would be a valid choice. For me I'd never use them but I'd rather have a great app or no app at all. I would consider Xamarin or React Native though, I think the user experience is close enough to a standard sdk app on both platforms that if you aren't a mobile game or mobile app based startup that it is probably good enough. Games are exception in that, there are a ton of cross platform options that are awesome. Unreal, Unity, Cocos, even phonegap or ionic packaging up a html5 game engine like phaser are all very good choices.
- gusmd 11y agoIMHO, these frameworks still cannot match the UX of a native app. Just like a HN post one of these days about desktop apps still being relevant despite web apps, native mobile apps have their use cases and if you really care about great UX you will want to develop native. Another point is that, with any 3rd party framework, you might eventually come across some limitation that will make you regret your decision of not going native from the beginning.
- ducktypedlogic 11y agoJust like a HN post one of these days about desktop apps still being relevant despite web apps Interesting. Do you have a link to that post? Thanks
- gusmd 11y agoSorry for taking so long, here it is: https://news.ycombinator.com/item?id=9861042 https://news.ycombinator.com/item?id=9861042 By the way, it would be great if HN had some sort of notification for when you get replies.
- on_and_off 11y agoNobody knows where the mobile ecosystem will be in 5 years, but right now native is the way to go for 'ambitious' apps. Not only do all the major mobile teams I know write their app in Native Obj-c/Java, but also those that tried to use cross development platforms sooner or later decided that it was not worth it and restarted from scratch with native technology. Maybe we will have some day a cross platform toolkit without any serious downside, but right now native is still the way to go. If you are building a small app with limited resources, something like Xamarin might be a good compromise.
- alistproducer2 11y agoIf you want to make a living doing mobile, yes. If you are making personal apps then, no.