App programmieren



  • Wo kann man sich das App-Programmieren selbst beibringen? Habe z.B. dies hier gefunden: http://www.androidpit.de/android-entwickler-studio-erste-app
    Sollte man wirklich in java programmieren?



  • Für welche Plattform möchtest du denn entwickeln? Nur Android oder auch iOS und WinPhone?

    Für Android ist Java die bevorzugte Sprache, du kannst aber auch mit dem Android NDK Teile der App nativ in C bzw. C++ entwickeln. Weitere Sprachen auf Grundlage der Dalvik-VM sind unter Which programming languages can I use on Android Dalvik? zu finden. (edited!)

    Für iOS wäre dann Objective C die Standard-Sprache.

    Für plattformübergreifende Entwicklung würde ich z.B. Xamarin (mit C#) empfehlen.
    Es gibt wohl auch noch Cordova - ich selber habe damit aber keine Erfahrung.



  • Was ist mit Qt? Wenn ich das installiere, ist auch was für Android und sogar iOS mit dabei, oder irre mich da? Ich selbst habe vor Zeiten einfach mal mit Eclipse und dem Android SDK angefangen. So weit ich noch weiß, kann man viel von den Google-Seiten selbst lernen und sich dann von Activity zu Activity hangeln. Mit Android deckt man schon mal ca. 85% des Marktes ab, was schon mal nicht schlecht ist, während man bei iOS eher die Geldsäcke im Gebäck hat, die auch Geld für Apps ausgeben.



  • Kann man mit der freien Version von Xamarin schon etwas anfangen?



  • an sich musst du keine neue sprache lernen, jede ernstzunehmende platform supported die meisten sprachen.

    was c++ angeht kannst du auf iOS dir einfach eine bridge bauen von objective-c -> c -> c++, auf android kannst du mit native client c++ apps erstellen (die entwicklung umgebungen machen dir die minimal java wrapper, du kommst damit also nie selbst in kontakt).

    wenn du es besonders einfach moechtest: https://www.madewithmarmalade.com/



  • Erhard Henkes schrieb:

    Sollte man wirklich in java programmieren?

    Ja.



  • Nö!



  • Nein!



  • Ja, wenn man ein Individualist sein will und deswegen seine Produktivität im Android Umfeld herunterschrauben möchte - bitte.



  • Ethon schrieb:

    Ja, wenn man ein Individualist sein will und deswegen seine Produktivität im Android Umfeld herunterschrauben möchte - bitte.

    Wenn du nur für Android programmierst, stimmt wohl die Aussage. Willst du aber mehrere Plattformen unterstützen, stimmt sie wohl nicht mehr.

    L. G.,
    IBV



  • Erhard Henkes schrieb:

    Sollte man wirklich in java programmieren?

    Wenn du im C++Forum fragst, natürlich nicht, sonst schon.



  • IBV schrieb:

    Ethon schrieb:

    Ja, wenn man ein Individualist sein will und deswegen seine Produktivität im Android Umfeld herunterschrauben möchte - bitte.

    Wenn du nur für Android programmierst, stimmt wohl die Aussage. Willst du aber mehrere Plattformen unterstützen, stimmt sie wohl nicht mehr.

    L. G.,
    IBV

    Dachte an Android, da er einen Android-Link gepostet hatte. 😉



  • Ich schrieb, wenn du nur für Android programmierst. I. d. R., will man doch seine App auf mehrere Plattformen sehen.

    L. G.,
    IBV



  • Ethon schrieb:

    Ja, wenn man ein Individualist sein will und deswegen seine Produktivität im Android Umfeld herunterschrauben möchte - bitte.

    Es gibt durchaus auch andere Sprachen mit denen man produktiv unter Android arbeiten kann, und dennoch keine Bibliothek vermissen oder Performancenachteile hinnehmen muss. Sogar wenn man ausschließlich für Android entwickelt ist das möglich.

    Sinnvoll sind die Alternativen aber vor allem dann, wenn man noch keine Java-Kenntnisse hat und eine der Alternativen bereits beherrscht, oder man für mehrere Plattformen entwickelt. Bei mir trifft der erste Punkt zum Teil zu (ich kann zwar Java, nicht aber besonders gut; mit C++ und C# habe ich weit mehr Erfahrung) und der zweite komplett zu (Zielplattformen in meinen Fall: iOS, Android, WP, WinRT, Windows). In meinen Fall programmiere ich komplett unter Visual Studio mit C#, für die mobilen Plattformen mit Ausnahme WinRT nutze ich Xamarin (vorzugsweise Xamarin.Forms). Und Xamarin erzeugt unter Android nativen Code.

    Es gibt aber auch andere Alternativen.



  • Was machst du, wenn Xamarin Bugs hat? Selbst Android hat Bugs, die Compatibility-Libs insbesondere. Ich bin mehrmals darauf gestoßen. D. h., du musst dich nicht nur mit Android-Bugs auseinandersetzen, sondern auch mit Xamarin-Bugs.

    Ich weiß nicht, ob das so gut ist, wie das in der Theorie klingt...

    L. G.,
    IBV



  • IBV schrieb:

    Was machst du, wenn Xamarin Bugs hat? Selbst Android hat Bugs, die Compatibility-Libs insbesondere. Ich bin mehrmals darauf gestoßen. D. h., du musst dich nicht nur mit Android-Bugs auseinandersetzen, sondern auch mit Xamarin-Bugs.

    1. Reagiert Xamarin nach meiner Erfahrung auf Bugeinträge.
    2. Möchte ich sehen wie man mehrere Plattformen anspricht, ohne durch mindestens einen weiteren Abstractionslayer eine potentielle Fehlerquelle einzubauen.
    3. Stellt sich dennoch die Frage was überwiegt: Die Gefahr eines zusätzlichen Fehlers, oder der Zeitgewinn dadurch das man (imho) sogar Produktiver arbeitet, ins besondere wenn man ohnehin C# kennt.
    4. In allen meinen bisherigen Firmenprojekten waren wir immer von externen Komponenten und Frameworks abhängig, wirkliche Probleme die man nicht im schlimmsten Fall wenigstens irgenwie umschiffen konnte (Bis eine Fehlerbehebung heraus gekommen ist), habe ich nicht erlebt*.

    * Selbst unter C++ mit der VCL haben wir notfalls in den VCL-Code eingegriffen.



  • Th69 schrieb:

    Für plattformübergreifende Entwicklung würde ich z.B. Xamarin (mit C#) empfehlen.
    Es gibt wohl auch noch Cordova - ich selber habe damit aber keine Erfahrung.

    Gibt auch noch Kivy (Cross-Platform App Framework auf Python Basis).



  • asc schrieb:

    2. Möchte ich sehen wie man mehrere Plattformen anspricht, ohne durch mindestens einen weiteren Abstractionslayer eine potentielle Fehlerquelle einzubauen.

    kannst du mit c++ und android/ios dir direkt anschauen, beide sind mit c++ und opengl ES relativ gleich programmierbar. es gibt beim entry punkt natuerlich unterschiede, input handling und file access, aber das ist nicht wirklich viel code.

    [edit]
    ach ja, das ist weshalb mir marmalade gefaellt, zwischen native code und marmalade ist nicht soviel unterschied. man kann der einfachheit halber marmalade nutzen, aber ist nicht davon abhaengig, zur not kann man native arbeiten und muss dann die schnittstellen wrappen (so wie man es sonst gemacht haette).

    https://www.madewithmarmalade.com/showroom
    wird scheinbar auch von namenhaften genutzt.

    ( 'ne andere sprache nutzen nur um sich den wrapper zu sparen 🤡 )



  • rapso schrieb:

    asc schrieb:

    2. Möchte ich sehen wie man mehrere Plattformen anspricht, ohne durch mindestens einen weiteren Abstractionslayer eine potentielle Fehlerquelle einzubauen.

    kannst du mit c++ und android/ios dir direkt anschauen,...

    Und was ist mit Windows Phone, WinRT...? Davon abgesehen ist OpenGL nicht zwangsweise für jede Anwendung die sinnvolle "Abstraktion", ich möchte keine Controls selbst zeichnen (Anwendungen im Businessbereich) sofern bereits welche existieren. Zudem möchte ich für Controls ggf. auch schlicht auf Fremdanbieter zurückgreifen können...

    Es gibt nicht DIE Lösung, es ist immer abhängig von mehreren Umständen was die jeweils für den Fall beste Lösung ist.


Anmelden zum Antworten