Entwickeln Sie eine Android-App mit C #


104

Ist es möglich, eine Android-App mit C # zu schreiben? Gibt es eine API oder so? Ist es kostenlos für die persönliche und kommerzielle Entwicklung?

Was muss ich installieren, um eine Android-Projektvorlage in meinem Visual Studio zu haben?



C # ist dem Ziel C ähnlicher als Java. Das iPhone verwendet das erstere, Android das letztere. Daher ist es sinnvoller, die iPhone-Entwicklung auszuprobieren als die Android-Entwicklung, wenn Sie C # bereits kennen.
Todd Davies

82
@ToddDavies Ich würde überhaupt nicht zustimmen und sagen, dass Java und C # die ähnlichsten Sprachen sind. Tatsächlich würde ich sagen, dass Ziel C C # überhaupt nicht widerspiegelt.
Darren

Nun, jeder nach seiner eigenen Meinung, aber ich bin sicher, dass Java zu Ziel C gehört, da ich zu meinem am meisten gehassten fünften entfernten Cousin bin: P
Todd Davies

1
+1 @DarrenDavies Die Mono-Bindungen für iOS haben an einigen Stellen (z. B. Protokollen) Schwierigkeiten, ihre Objective-C-Entsprechungen darzustellen, aber sie sind direkt 1: 1 gegen Android.
Danyal Aytekin

Antworten:


63

Sie könnten verwenden Mono for Android:

http://xamarin.com/monoforandroid

Eine Alternative ist dot42:

http://www.dot42.com/

dot42 bietet eine kostenlose Community-Lizenz sowie eine professionelle Lizenz für 399 US-Dollar.


Bitte werfen Sie einen Blick auf den Kommentar, den ich zu Seva Alekseyevs Antwort hinzugefügt habe.
CoolArchTek

@CoolArchTek - Sie können die evauluation kostenlos herunterladen, Mono für Android Professional kostet jedoch 399 US-Dollar und Enterprise 999 US-Dollar. store.xamarin.com
Darren

13
Es ist äußerst unerschwinglich, ein paar Apps für sich und Ihre Freunde zu schreiben. Ich würde mir wünschen, es gäbe etwas "dazwischen". In Anbetracht der Tatsache, dass Android + Eclipse KOSTENLOS und Visual Studio Express KOSTENLOS ist, verpassen Xamarin aufgrund ihrer Preise viel
cmroanirgo

1
@cmroanirgo Xamarin unterstützt jetzt ein abonnementbasiertes Modell mit einer kostenlosen Option - Sie müssen Mono nicht mehr für Android kaufen.
James

4
http://www.dot42.com/ hat dies auf ihrer Website dot42 has been discontinued and is no longer supported. All sources are availabe on GitHub. The latest build is available as a binary setup.ab dem 29.05.2015. Sie hatten einen Quelldownload und einen GitHub .
JabberwockyDecompiler

78

Nachdem ich Mono verwendet habe, würde ich es NICHT empfehlen. Die Mono-Laufzeit wird mit Ihrer App gebündelt, sodass Ihre apk bei mehr als 6 MB aufgebläht ist. Eine bessere Programmierlösung für C # wäre dot42 . Sowohl Mono als auch dot42 sind lizenzierte Produkte.

Persönlich würde ich empfehlen, Java mit der IntelliJ IDEA- Entwicklungsumgebung zu verwenden. Ich sage das aus 3 Gründen:

  1. Es gibt bereits so viel Java-Code für Android. Tun Sie sich selbst einen Gefallen und erfinden Sie das Rad nicht neu.
  2. IDEA ähnelt Visual Studio so sehr, dass es ein Kinderspiel ist, es zu lernen. Es wird von JetBrains hergestellt und der Intelli-Sense ist besser als VS.
  3. IDEE ist kostenlos.

Ich bin seit 12 Jahren ein C # -Programmierer und habe angefangen, mit C # für Android zu entwickeln, bin aber am Ende vom Schiff gesprungen und habe die Java-Route eingeschlagen. Die Sprachen sind so ähnlich, dass Sie wirklich keine große Lernkurve bemerken.

PS Wenn Sie LINQ, Serialisierung und andere nützliche Funktionen verwenden möchten, die für C # typisch sind, müssen Sie nur nach der entsprechenden Java-Bibliothek suchen.


4
Vielen Dank, Ihre Erfahrung scheint nützlich
Nightcoder

nette Antwort, aber was tun, wenn Android-Anwendung C # als Backend haben?
Krupal Shah

Was ist, wenn ich eine App für eine mit der Web-API erstellte Webanwendung erstellen möchte?
Renakre

Vielen Dank, Ihre Mittel, wenn wir mit Android mit Java arbeiten, dann werde ich mehr Blogs und Materialien von googeln bekommen. Erst beim Starten wird später alles gut gehört. Vielen Dank, ich bin C # -Entwickler, aber ich werde meine App mit Java starten.
Mohd Mazhar Khan

21

Hier ist eine neue (Hinweis: in der Tech Preview-Phase): http://www.dot42.com

Grundsätzlich handelt es sich um ein Visual Studio-Add-In, mit dem Sie Ihren C # -Code direkt in DEX-Code kompilieren können. Dies bedeutet, dass keine Laufzeitanforderung wie Mono besteht.

Offenlegung: Ich arbeite für diese Firma


UPDATE: Alle Quellen befinden sich jetzt unter https://github.com/dot42


6
Ich denke nicht, dass dies der richtige Ort ist, um die Preisgestaltung zu besprechen, aber stellen Sie sicher, dass Sie die richtigen Lizenzen vergleichen. Ich möchte darauf hinweisen, dass dot42 mit einer kostenlosen Community-Lizenz für nichtkommerzielle Zwecke geliefert wird.
Frank Rem

4
Frank, du hast absolut Recht und ich muss zugeben, dass ich die Community-Lizenz nicht bemerkt habe.
Dave81

1
nett. Gibt es Kommentare, wenn Sie jemals in Betracht ziehen, C-Code für iOS zu erstellen?
Citykid

2
Das ist fantastisch! Gibt es Pläne, einen UI-Designer einzusetzen? Oder kann ich dazu ein anderes Tool verwenden? Ausgezeichnete Arbeit !
Piotr Kula

2
Derzeit gibt es solche Pläne nicht. Sie können Android Studio zum Entwerfen der Benutzeroberfläche verwenden. Sie können diese Ressourcen dann in Visual Studio importieren.
Frank Rem

8

Mono Touch ist die Antwort.

http://xamarin.com/monotouch


Ist es kostenlos für die kommerzielle Entwicklung? Ich möchte eine App entwickeln, die für ein Unternehmen (dessen Benutzer) bestimmt ist.
CoolArchTek

Sie haben es, so dass Sie viel davon kostenlos nutzen können. Aber es gibt eine Art Lizenzgebühr iirc
FoamyGuy

Ist Mono der einzige Weg? Gibt es OpenSource-Optionen?
CoolArchTek

5
Mono ist Open Source IIRC. Ist Ihnen auch klar, dass Sie die gesamte C # (CLR) -Laufzeit mit wenig Unterstützung von Microsoft auf eine andere Plattform portieren müssen? Es ist ein Wunder, dass es sogar Mono gibt. Google und MSFT sind direkte Konkurrenten im mobilen Bereich. C # ist eine von MSFT unterstützte Technologie. Stelle dir das vor.
Seva Alekseyev

6

Ich habe die Unity 3D-Spiele-Engine zum Entwickeln von Spielen für PC und Mobiltelefon verwendet. Wir verwenden C # in dieser Entwicklung.


1
Ein Link zu der von Ihnen verwendeten Version der Unity 3D Game Engine wäre schön.
Jesse Chisholm


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.