Xamarine is based on MS Visual Studio to build both IOS and Android Mobile apps with the same codes in C#.
Caveat is the language is C#, slightly less verbose than Java, not functional programming like Kotlin or Scala.
Explore Xamarine / C# if you are from the old Object-Oriented school of programming.
If you are a Mac user, then sorry Xamarine/Visio Studio/.Net / C# only run on PC Windows.
Android development in Java is a pain for programmers, although an alternative “Kotlin” (version 1.03) is supported officially since May 2017, Java is still the hate-and-love MUST tool if you want to develop Android apps for the near future.
If you want to develop mobile apps on android devices, you have no choice but to learn Java — the Android core lingo.
Here is the list of free Java and Android resources:
Free online BEST Java Book: Thinking in Java (3rd Edition)
Google’s new language Go is invented to replace Java, hence free from Oracle’s threat of Java license in all Android Smartphones.
Go Language is invented by Ken Thompson, the father of Unix and B language, which was transformed into the famous C language by his Bell Lab’s teammate Dennis Ritchie.
Go impresses me of its concurrency best suitable for parallel programming, given today’s most hardware including smartphones are made of multi-core CPU, yet none of today’s languages is designed inherently to take advantage of it, even Java.
If we can say Cobol is for the 1st generation Mainframe computing, C the 2nd generation Unix-based Minicomputer computing, Java the 3rd generation Client-Server computing, then Go will be the 4th generation Mobile-Cloud computing.
Try the Go simulator here:
Note 1: Do not confuse with another Agent-based language “Go! “, differs by “!” sign.
Note 2: Review of Go multicore concurrency feature: