It does a really good job at fixing java's issues and since it outputs bytecode, you can write entire Android apps with it without writing a single line of java.
Not in a year, but it wasn't different enough to me - less verbose, but the same when I long for a Lisp or ML or Haskell for Android! Scala was a thought. And I am now looking at F# again with the recent OS works by MS and the Xamarin situation.
As I wrote downstream, I just need to commit to Java (or Kotlin!) I think!
Well, Scaloid is a thing, so you might want to check it out. AFAIK, it is not really popular for Android development, but it makes some people really happy, like predictive keyboards creators.
As for Xamarin, it really depends on what you want to do. If this is just a hobby project, well go for it.
Otherwise, the only use case where it is really interesting is when you need to write an app for both iOS & Android on the cheap.
I did, and they are great. I even have the Continuous App on my iPad Pro which is an F# development environment. It's incredible, but I am concerned about having to still drill down to the Android API, which means Java.
I am thinking more and more against my wish, that biting the bullet and just going Java all the way is the key. Kotlin, Xtend, you still have to read Android SDK code in Java, correct?
In terms of books, a friend bought me "Android 6 for Programmers: An App-Driven Approach (3rd Edition) (Deitel Developer Series)" to get me off the fence. I am going to work through it as much as I can to give Java a fair shake. I used to program in Java 5 for little side projects, but never mobile except for demo or tutorial apps years later.
Is this a good Android/Java book, or should I stay on board with my interests and do an Android Game or Android AI book slant?
I don't know that book, so I cannot judge it, but it is important to try to use your interests as an idea for a possible app that you could use as learning process.
If you stay on Java side than using something like LibGDX will help on the game programing ideas. Or if you prefer to jump into the "wonders" of NDK, then something like SDL or Cocos2D-x.
For the Xamarin side, have you read the Petzold book?
Regarding about using wanted programming languages, my experience with Turbo Pascal, Delphi, Oberon, Smalltalk and many other languages is that straying away from the true path of OS SDK supported languages usually ends in pain as the productivity gains get wasted battling interoperability issues, lack of tool support from the OS vendor and writing FFI bindings.
So nowadays although I dabble in lot of languages, for production code I only use the OS SDK supported languages.
It does a really good job at fixing java's issues and since it outputs bytecode, you can write entire Android apps with it without writing a single line of java.