The Platform of the Century will power cameras, credit cards, cellphones, computers, consoles, clocks
This is why I've decided to crosstrain from iOS to Android. I think Apple is going to continue to do well for many years but Android is going to be much bigger than just phones.
I expect solid Android experience to be very much in demand.
I do Android freelancing, and I'm starting to see requests for apps that look more like traditional embedded software than smartphone apps. Controllers for industrial equipment, personal medical devices, props in simulations. Real Technology stuff.
That's not exactly new, but my perception is that it's picked up a lot in the last few months. And I think it's just the tip of the iceberg. For anything you can imagine wanting to control with a touchscreen, putting a cheap Android display in a case and connecting up over USB or Bluetooth seems to be making a lot of sense to people.
I fully expect Android skills to be profoundly in demand in a year or two. Study up now; it's not really a quick system to master.
You've hit the nail in the head regarding Android spilling over beyond just phones. Take a look at the ARM development boards, there is a new one coming out almost every week, and guess what almost all of them have in common? They all run some flavor of Android.
Let's say you are developing some expensive piece of industrial technology and would like to provide some sort of interface through a tablet. Sure there is the iPad and many opt to use that, but in the end is a closed garden, you can't change it significantly. Where are you going to go? Android of course, since it already has almost everything you need and it is customizable to your heart's desire. In the long run, iOS will keep on being one of the champions of the mobile market (and that is exactly where Apple wants it to be) but Android will evolve beyond that reaching many other sectors.
Exactly. I've got a couple of apps about to hit the app store so I'm gradually making my way up the curve. I agree it's not the easiest API to learn. The basics are actually pretty straightforward but the details you have to consider once you start doing real apps can be tricky.
I'm really hoping Kotlin takes off as an alternative Android development language though. Java's OK but a more modern and flexible language would certainly help.
Do you have any good pointers or references for Android dev in these kinds of environments?
Do you have any good pointers or references for Android dev in these kinds of environments?
No, not really. I haven't really done much of it myself, just seen a lot of chatter about it. The specs I see, compared to the average smartphone app, have a lot more in the way of very specific UI specs and binary protocols, and less in the way of reposting tagged pictures to Facebook. So it's a different part of the system to study.
I can recommend http://commonsware.com/ for coming up to speed on the system in general. One of the best references out there, and it stays up to speed with a rapidly-evolving ecosystem.
I'm not so sure about that. Most of the pain points in Android development have to do with the complexity of the API and state management. Clojure would cost you the tight tooling integration and not do much to help. You don't often encounter the kind of gnarly concurrent algorithm stuff where Clojure shines in mobile dev.
Kotlin, on the other hand, modernizes Java, but should fit the Android toolkit like a glove thanks to Jetbrains backing. Presumably they're also designing it with Dalvik in mind, unlike Scala and Clojure.
I could be wrong though. If some of the memory/efficiency issues get ironed out I'll certainly try it.
Clojure on Android offers the possibility someday of live debugging on a customer's phone, very similar to the way pg talked about fixing customers' bugs while they are on the phone with tech support by attaching to the server with a REPL and fixing it live. I can imagine a popup on a phone saying "This app is having problems. Press here to connect to our tech team for live repair."
> You don't often encounter the kind of gnarly concurrent algorithm stuff where Clojure shines in mobile dev.
Perhaps this is an issue specific to me. I've been working on algorithm development for an Android app, and being tethered to Java has been driving me up the wall.
This is why I've decided to crosstrain from iOS to Android. I think Apple is going to continue to do well for many years but Android is going to be much bigger than just phones.
I expect solid Android experience to be very much in demand.