

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

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.<p>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.<p>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.<p>Would you be interested in such a book, and, if so, what sorts of information do you think ought to be included?<p>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.<p>Thank you for your help.
======
diolpah
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.

~~~
daniel_solano
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.

