Is it possible to write an android app using C#? Is there an API or something? Is it free for personal and commercial development?
What do I need to install to have
You could use Mono for Android
:
http://xamarin.com/monoforandroid
An alternative is dot42
:
http://www.dot42.com/
dot42 provides a free community licence as well as a professional licence for $399.
Having used Mono, I would NOT recommend it. The Mono runtime is bundled with your app, so your apk ends up being bloated at more than 6MB. A better programming solution for C# would be dot42. Both Mono and dot42 are licensed products.
Personally, I would recommend using Java with the IntelliJ IDEA dev environment. I say this for 3 reasons:
I have been a C# programmer for 12 years and started developing for Android with C# but ended up jumping ship and going the Java route. The languages are so similar you really won't notice much of a learning curve.
P.S. If you want to use LINQ, serialization and other handy features that are native to C# then you just need to look for the equivalent java library.
There are indeed C# compilers for Android available. Even though I prefer developing Android Apps in Java, I can recommend MonoForAndroid. You find more information on http://xamarin.com/monoforandroid
I have used the Unity 3D game engine for developing games for the PC and mobile phone. We use C# in this development.
You should try something running Mono (its compatible with .NET).
For game development, I recommend unity: http://unity3d.com/
for general aplications: http://xamarin.com/monoforandroid
Here is a new one (Note: in Tech Preview stage): http://www.dot42.com
It is basically a Visual Studio add-in that lets you compile your C# code directly to DEX code. This means there is no run-time requirement such as Mono.
Disclosure: I work for this company
UPDATE: all sources are now on https://github.com/dot42