Ask HN: A non-Java Android book, what would you like in it?

11 points by daniel_solano ↗ HN
I am currently working on an Android book to teach people on how to develop for Android using a non-traditional language, such as Scala, JRuby, or Clojure.

My idea is to lead the reader from essentially zero knowledge of Android to developing a relatively simple application, learning Android basics along the way.

The twist, in comparison to other books, is that it would allow the reader to develop in a language of his or her choice. The book will include information on how to set up a build environment, using the available frameworks/tools for a given language, etc.

Would you be interested in such a book, and, if so, what sorts of information do you think ought to be included?

Also, since the book would guide the reader into building some sort of application, what kind of application would be good to create? I have in mind a shopping list: something relatively simple to implement, yet potentially useful.

Thank you for your help.

2 comments

[ 3.1 ms ] story [ 18.8 ms ] thread
Even if you don't include any Java-the-language material, I highly suggest adding some solid foundation on Java-the-platform. Android developers should always understand the rudiments of the jvm, java bytecode, dalvik bytecode, the differences between stack and register based execution, DX and .dex, and the entire toolchain involved in the build process.

As for the application to build, you should extend your shopping list to include some sort of network synchronization capability. Teaching Android development without networking is overlooking an extremely important part of the platform.

Thank you for the feedback. I do plan to include some information about the platform. In particular, it is important to explain why some JVM languages work and others do not. Some of the more detailed discussion will likely end up in an appendix.

I'll have to think about your idea to include networking synchronization. The tricky part with that is exactly how to implement it. Off-hand, there are two basic approaches: server/client and peer-to-peer. The problem with server/client is that either I have to choose someone else's platform as a server or provide a server (either as a service or as an included program you can run from a home computer). The alternative is to use something like Bluetooth or NFC to allow synchronization between two devices.

The second issue that I need to figure out is exactly how much material to present. There are some absolutely necessary basics such as activities, services, and resources. Beyond that, there is a question of which platform features are most important. Certainly, something like location is more important than NFC, but deciding on what to include won't be easy.