Develop Android app using C#

205,157

Solution 1

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.

Solution 2

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:

  1. There is so much Java code out there for Android already; do yourself a favour and don't re-invent the wheel.
  2. IDEA is similar enough to Visual Studio as to be a cinch to learn; it is made by JetBrains and the intelli-sense is better than VS.
  3. IDEA is free.

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.

Solution 3

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

Solution 4

Mono Touch is the answer.

http://xamarin.com/monotouch

Solution 5

I have used the Unity 3D game engine for developing games for the PC and mobile phone. We use C# in this development.

Share:
205,157

Related videos on Youtube

CoolArchTek
Author by

CoolArchTek

Updated on May 09, 2020

Comments

  • CoolArchTek
    CoolArchTek almost 4 years

    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 android project template in my Visual Studio?

    • Dheeresh Singh
      Dheeresh Singh almost 12 years
      not sure about any way that C# can be used but you can try HTML5.....(but have some limitation)
    • Todd Davies
      Todd Davies almost 12 years
      C# is more similar to objective C than java. iPhone's use the former, Android uses the latter, and so it would make more sense to try out iPhone development than Android development if you already know C#.
    • Darren
      Darren almost 12 years
      @ToddDavies I would disagree entirely and say Java and C# are the most similiar languages. Infact I would say Objective C does not reflect C# at all.
    • Todd Davies
      Todd Davies almost 12 years
      Well, each to his own opinion, but I'm sure that Java is to Objective C as I am to my most hated fifth removed cousin :P
    • Danyal Aytekin
      Danyal Aytekin about 11 years
      +1 @DarrenDavies The Mono bindings for iOS struggle to represent their Objective-C equivalents in some places (e.g. protocols) but they are straightforwardly 1-1 against Android.
  • CoolArchTek
    CoolArchTek almost 12 years
    Is it free for commercial development? I want to develop an app that is for a company (their users).
  • CoolArchTek
    CoolArchTek almost 12 years
    Please take a look at the comment I added to Seva Alekseyev's reply.
  • FoamyGuy
    FoamyGuy almost 12 years
    They have it so that you can use lots of it for free. But there is a licence fee of some sort iirc
  • Darren
    Darren almost 12 years
    @CoolArchTek - you can download the evauluation for free, however Mono for Android Professional is $399 and Enterprise is $999. store.xamarin.com
  • CoolArchTek
    CoolArchTek almost 12 years
    Is Mono is the only way? Are there any opensource options avail?
  • Seva Alekseyev
    Seva Alekseyev almost 12 years
    Mono is open source IIRC. Also, do you realize the effort of porting the whole C# (CLR) runtime to a different platform, with little support from Microsoft? It's a miracle even Mono exists. Google and MSFT are direct competitors in the mobile space, C# is a MSFT-backed technology. Go figure.
  • cmroanirgo
    cmroanirgo over 11 years
    To write a few apps for yourself and your mates $399 is exceedingly prohibitive. I would wish there was something 'in between'. Considering that Android+Eclipse is FREE and Visual Studio Express is FREE, xamarin are missing out on a lot, simply because of their prices
  • Frank Rem
    Frank Rem about 11 years
    I don't think this is the right place to discuss pricing, but make sure to compare the correct licenses. I do want to note that dot42 comes with a free Community License for non-commercial use.
  • Dave81
    Dave81 about 11 years
    Frank, you are absolutely right and I must admit that I did not notice the community license.
  • citykid
    citykid about 11 years
    nice. any comments if you will ever consider creating c code for ios?
  • Frank Rem
    Frank Rem about 11 years
    @thomas You mean compile C# to iOS executables? If so, yes it is on the roadmap but it this point we can not give any realistic date. We have our hands full with all the feedback coming from the Android community since we launched. We first want to make sure we get this part right.
  • Den
    Den almost 11 years
    @FrankRem it's a shame your licensing doesn't make a difference between a commercial hobbyist and a sole developer from a large business.
  • Den
    Den almost 11 years
    @FrankRem are there any limitations at all, like docs.xamarin.com/guides/ios/advanced_topics/limitations
  • Frank Rem
    Frank Rem almost 11 years
    @Den re license model. although you could argue whether a commercial hobbyist is a contradiction in terms, I understand your point. we prefer to keep our license model simple, both for you and us. we have just 2 types: community (free) and professional ($). we can only hope it strikes a good balance.
  • Piotr Kula
    Piotr Kula over 10 years
    This is awesome! Are there any plans for putting in a UI designer? Or can I use another tool to do this? Excellent work !
  • Frank Rem
    Frank Rem over 10 years
    Actually, there are no such plans at the moment. You can use Android Studio for designing the UI. You can then import those resources in Visual Studio.
  • James
    James over 10 years
    @cmroanirgo Xamarin now supports a subscription based model with a free option - you no longer need to buy Mono for Android.
  • Redoman
    Redoman over 10 years
    @james that's only true for small apps which don't P/Invoke third-party libraries: store.xamarin.com
  • James
    James over 10 years
    @jj_ yeah I know, I wasn't going into the details of the free subscription the point I was making was you can release apps without having to purchase a license (where as before you did)
  • Sandeep Singh Rawat
    Sandeep Singh Rawat over 10 years
    too expensive to be useful for individual developers. I personally am gonna try dot42 first and if that doesn't work use native Java.
  • nightcoder
    nightcoder almost 10 years
    Thanks, your experience seems useful
  • Krupal Shah
    Krupal Shah over 9 years
    nice answer but what to do if android application have C# as backend?
  • Jesse Chisholm
    Jesse Chisholm over 9 years
    A link to which version of the Unity 3D Game Engine you use would be nice.
  • renakre
    renakre almost 9 years
    what if I want to create an app for a web application built with Web API ?
  • JabberwockyDecompiler
    JabberwockyDecompiler almost 9 years
    http://www.dot42.com/ has this on their site dot42 has been discontinued and is no longer supported. All sources are availabe on GitHub. The latest build is available as a binary setup. as of 5/29/2015. They did have a source download and a GitHub.
  • Mr doubt
    Mr doubt over 8 years
    Thanks, your means, if we work with android using java then i will get more blogs and materials from googling. Only start up will get heard later everything fine. Thank you, I am C# developer but i will start my app with using java.