Forum: PC-Programmierung Android-Softwareentwicklung - Getting started


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,

der Titel sagt größtenteils auch schon alles: Auch wenn man meint, dass 
es schon für alles die passende Android-App gibt, ist es so, dass 
etliche Apps, die ich regelmäßig verwende, verwaist sind und keine 
Nachfolgeprojekte in Sicht sind. Also wird es wohl nötig, selbst Hand 
anzulegen.

Es bleibt die Frage: Wie steige ich am besten in die Android-Entwicklung 
ein?

Ich kann weder Java noch C++. Aber ich habe es nicht eilig und genug 
Zeit, eines davon zu lernen.

Ja - Google kennt 100 Antworten. Viele davon sind veraltet. Ich habe mal 
den Fehler gemacht, das Buch "Android Apps entwickeln" von Uwe Post zu 
kaufen, ein Jahr liegenzulassen und dann den Start zu versuchen - mit 
dem Ergebnis, dass kein einziges Codebeispiel (inklusive "Hallo Welt") 
ohne lange Recherchen in irgendwelchen Change Logs ans Laufen zu 
bekommen war, weil das SDK sich in der Zwischenzeit geändert hat. Ich 
habe dann aufgegeben.

Deswegen die Frage an diejenigen, die selbst Android-Apps entwickeln: 
Wie fange ich heute, Juli 2018, am besten mit der Android-Entwicklung 
an?

Viele Grüße
W.T.

von Cyblord -. (Gast)


Lesenswert?

https://developer.android.com/guide/

Sich durch die Tutorials direkt an der Quelle arbeiten.

Sobald man dann eigene Ideen werkelt, sucht man sich die Workarounds auf 
Stack Overflow zusammen für alle Dinge die laut Doku eigentlich so tun 
müssten wie gedacht, aber wegen Bug xyz nicht tun und nicht die nötige 
Prio haben jemals gefixt zu werden.

von Joerg W. (joergwolfram)


Lesenswert?

Eine Alternative wären vielleicht Web-Apps. Hierzu bräuchte man halt in 
erster Linie JavaScript und ggf. PHP.
Webserver gibt es auch unter Android und man bindet sich nicht an eine 
einzelne Plattform.

von Chris (Gast)


Lesenswert?

Clicky Clicky, Bunti Bunti vom MIT

http://appinventor.mit.edu/explore/

Apps per Drag 'n' Drop zusammenstellen und sofern im gleichen WLAN auch 
direkt live auf dem Handy Debuggen.

von Walter T. (nicolas)


Lesenswert?

Abradolf L. schrieb:
> https://developer.android.com/guide/
>
> Sich durch die Tutorials direkt an der Quelle arbeiten.

Das sieht schon deutlich besser aus als damals. Danke!

Chris K. schrieb:
> Clicky Clicky, Bunti Bunti vom MIT

Hast Du es selbst ausprobiert?

von Johnny B. (johnnyb)


Lesenswert?

Framework7
https://framework7.io/

oder

Ionic
https://ionicframework.com/

Mit diesen Frameworks kann man sich sogenannte Hybrid-Apps machen, 
welche ohne grossen Aufwand sowohl auf Android als auch auf iOS laufen. 
(war zwar nicht Deine Anforderung, aber ich würde mir das trotzdem nicht 
entgehen lassen)
Die Programmierung an sich erfolgt mit JavaScript, was sich rel. einfach 
erlenen lässt wenn man beispielsweise schon C kennt. Das GUI macht man 
mit HTML/CSS, wobei die GUI-Elemente schon in den Frameworks enthalten 
sind.

von Joachim S. (oyo)


Lesenswert?

Ich würde auch empfehlen, erst einmal zu überprüfen ob es unbedingt 
"native" Android Apps sein müssen, oder ob eine ("Progressive") Web App 
nicht ausreicht.
Es gibt heutzutage immer weniger Anforderungen, die eine native App 
zwingend erforderlich machen, neuere Web-APIs ermöglichen Web Apps immer 
mehr Möglichkeiten, die früher nativen Apps vorbehalten waren, z.B.
- reine Offline-Nutzung
- App-Symbol auf dem Startbildschirm bzw. im Anwendungsmenü
- Zugriff auf diverse Sensoren wie GPS, Kamera, Mikrofon usw. usw.
- Zugriff auf Bluetooth LE-Geräte

Web Apps haben im Gegensatz zu nativen Android Apps den Vorteil, dass 
sie idealerweise auf jedem System funktionieren - Android-Geräte, 
iOS-Geräte, Windows-, Linux- und Apple-Systeme.
Und man lernt dabei nicht nur, Apps für ein ganz bestimmtes 
Betriebssystem zu entwickeln, sondern man lernt automatisch auch alles, 
was man zur Entwicklung gewöhnlicher Webseiten benötigt 
(HTML/CSS/Javascript).

von H. R. (hacker_r)


Lesenswert?

buch lesen finde ich persönlich als die veraltete methode.
ich habe letztens eine bestehende app ändern müssen: paar buttons 
entfernen, firmen logo drauf, fertig
Ohne mich auszukennen oder java zu können, habe ich android studio 
installiert, und in 14h das notwendige ergooglet um diese App zum laufen 
zu kriegen. ich kann nur c.
Android stduio kommt mit ein haufen Beispiel krams.

von oerks (Gast)


Lesenswert?

> sondern man lernt automatisch auch alles,
> was man zur Entwicklung gewöhnlicher Webseiten benötigt
> (HTML/CSS/Javascript).

Mit HTML allein kommt man an die "interessanten" Subsysteme aka
Sensoren nicht heran.

Mein Tip wäre daher eher Python. Python läuft dort z.B.
als Interpreter unter SL4A "Script Languages for Android".
Die Androidimplementierung kommt leider nur mit einer eher
dürftigen Dokumentation daher.

Das Buch dazu:
Pro Android Python with SL4A -  Paul Ferrill

von Joachim S. (oyo)


Lesenswert?

oerks schrieb:
>> sondern man lernt automatisch auch alles,
>> was man zur Entwicklung gewöhnlicher Webseiten benötigt
>> (HTML/CSS/Javascript).
>
> Mit HTML allein kommt man an die "interessanten" Subsysteme aka
> Sensoren nicht heran.

Hat das irgendwer behauptet?

von Stephan G. (Firma: privat) (morob)


Lesenswert?

ich nehme appinventor für einfache dinge auf dem handy

von Johnny B. (johnnyb)


Lesenswert?

oerks schrieb:
> Mit HTML allein kommt man an die "interessanten" Subsysteme aka
> Sensoren nicht heran.

Hat nie jemand behauptet; man macht das mit JavaScript bzw. greift mit 
JavaScript mittels Cordova/Phonegap nativ auf die Hardware zu.
https://cordova.apache.org/

Das funktioniert einwandfrei und zuverlässig; ich habe damit schon Apps 
gemacht welche die Kamera nutzte, GPS-Daten, Kompass, etc.

Ich würde es unterlassen, für eine Mobile-App irgendwas exotisches 
einzusetzen, weil man stark auf Support angewiesen ist und wegen der 
Schnelllebigkeit der Geräte und der Betriebssysteme unbedingt auf 
Frameworks und Tools angewiesen ist, welche aktuell gehalten werden.
Selber hatte ich damals auf jQueryMobile als Framework gesetzt und ein 
halbes Jahr nachdem die App fertig war, wurde der Support dieses 
Frameworks mehr oder weniger eingestellt und man hätte praktisch die 
ganze App nochmals neu entwickeln müssen.
Meine vorgeschlagenen Framework7 und Ionic gibt's nun schon ein paar 
Jahre und erhalten laufend auch grössere Updates, was schon mal gut ist.

von Cyblord -. (Gast)


Lesenswert?

Johnny B. schrieb:
> Framework7
> https://framework7.io/
>
> oder
>
> Ionic
> https://ionicframework.com/
>
> Mit diesen Frameworks kann man sich sogenannte Hybrid-Apps machen,
> welche ohne grossen Aufwand sowohl auf Android als auch auf iOS laufen.

Laufen? Du meinst dahinkrücken. Für Basisfunktionalität mag das noch 
gehen, aber sobald es nur ein bisschen aufwändiger wird, merkt man als 
Nutzer wie unflüssig und krückig das daherkommt.

von Dirk (Gast)


Lesenswert?

Naja niemand zwingt dich dazu die neuste Version zu benutzen. Nimm die 
Version aus deinem Buch.

Ganz ehrlich gesagt ist es wie bei vielen Sachen und zwar: Learning by 
Doing

Also such Dir ein schönes, aber kleines Projekt und setzte es um, danach 
Lessons learned und das nächste Projekt.

von elvis (Gast)


Lesenswert?

Abradolf L. schrieb:
> Laufen? Du meinst dahinkrücken. Für Basisfunktionalität mag das noch
> gehen, aber sobald es nur ein bisschen aufwändiger wird, merkt man als
> Nutzer wie unflüssig und krückig das daherkommt.

Ja das Zeug fühlt sich an wie Kaugummi, dabei sind das nicht mal 
komplexe Anwendungen. "Aufwendige" GUI mit Standardelementen und das 
Zeug ist lahm wie ein alter Klepper. Und was der Browser nicht kann geht 
dann auch nicht, paar Plugins funktionieren dann in der nächsten Version 
dann wieder nicht mehr,... ein Krampf. Bei Android kann ich genau 
angeben auf welchem SDK die App laufen soll und das tut sie dann auch.

Das ist was für Webfritzen die auch den Appmarkt bedienen wollen. Schaut 
euch mal die Beispielanwendungen an, das meist bei Cordova sind eher 
Frontends für kostenpflichtige Serveranwendungen, da ist das vielleicht 
ok um ne Pseudoapp bereitzustellen, im Prinzip würde auch ne 
Linkaddresse auf die Webseite reichen aber das ist ja heute schon zu 
kompliziert.

von elvis (Gast)


Lesenswert?

Android wird bald in Rente geschickt als Hobbyist würde ich mich da 
nicht mehr reinfuchsen.

Schau dir Cordova an, das reicht für das meiste und läuft dann 
automatisch auch auf iOS. Wenn du nicht das allerneuste Feature des 
neuesten Handies nutzen willst dann reicht das dicke.

Das Androidstudio setzt auch einen dicken Rechner vorraus. Ich mach ja 
sonst Java und man hat schon dafür nen fetten Rechner und IDE aber das 
Ding ist noch mehr bloat, allein schon wenn du die Emulatoren startest 
um verschiedene Devices  / OS-Versionen zu testen.. das ist ne Qual.

von Manfred F. (manfred_f)


Lesenswert?

elvis schrieb:
> Android wird bald in Rente geschickt als Hobbyist würde ich mich da
> nicht mehr reinfuchsen.

Achso. Und wovon träumst du nachts?

von Wolfgang H. (Gast)


Lesenswert?

Visual studio installieren, Android sdk drauf und in c# vb c++ nach Wahl 
loslegen

von elvis (Gast)


Lesenswert?

Manfred F. schrieb:
> Achso. Und wovon träumst du nachts?

Schon mal was von Fuchsia gehört?

von Bastler (Gast)


Lesenswert?

Frage zu Web App:

Muss man da für den User nicht ständig einen Server zur Verfügung 
stellen? Muss ich als Anbieter also einen Server mieten? Braucht die Web 
App dann immer eine Onlineverbindung zum Server?

von wally (Gast)


Lesenswert?

Schon einmal Basic for Android B4A angeschaut.
Gibt es auch für iOS, JAVA und Arduino.
https://www.b4x.com/

von Joachim S. (oyo)


Lesenswert?

Bastler schrieb:
> Frage zu Web App:
>
> Muss man da für den User nicht ständig einen Server zur Verfügung
> stellen? Muss ich als Anbieter also einen Server mieten? Braucht die Web
> App dann immer eine Onlineverbindung zum Server?

(Progressive) Web Apps können so programmiert werden, dass sie auch 
offline funktioneren. Vom Benutzererlebnis ist das dann kaum noch von 
einer gewöhnlichen App unterscheidbar: Die Web App kann wie jede andere 
App über ein Icon auf dem Homescreen gestartet werden, selbst wenn das 
Smartphone gerade komplett offline ist. Man kann auch einstellen, dass 
die Web App im Vollbild-Modus gestartet wird und somit die sonst beim 
Aufruf von Webseiten angezeigten Bedienelemente (URL-Eingabe-Zeile etc.) 
nicht angezeigt werden, man also nicht sieht, dass hier eigentlich 
gerade eine Webseite angezeigt wird.

Einen Webserver brauchst Du allerdings trotzdem - nämlich zumindest für 
das erste Herunterladen/"Installieren" der Web App. Und dieser Webserver 
sollte idealerweise per HTTPS erreichbar sein, denn viele Möglichkeiten 
(z.B. Zugriff auf GPS-Daten etc.) sind mittlerweile nur noch nutzbar, 
wenn die Webseite/Web App über HTTPS ausgeliefert wird.

Ein eigener Webserver muss es dafür aber nicht zwingend sein - Du 
kannst z.B. einen Account bei GitHub anlegen und die von Deiner WebApp 
benötigten Dateien dort hochladen, und Deine WebApp somit quasi von 
GitHub hosten lassen.

https://de.wikipedia.org/wiki/Progressive_Web_App

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Johnny B. schrieb:
> wegen der Schnelllebigkeit der Geräte und der Betriebssysteme unbedingt
> auf Frameworks und Tools angewiesen ist, welche aktuell gehalten werden.
> Selber hatte ich damals auf jQueryMobile als Framework gesetzt und ein
> halbes Jahr nachdem die App fertig war, wurde der Support dieses
> Frameworks mehr oder weniger eingestellt

Verstehe ich nicht. Ist doch gerade ein Widerspruch.

Auf Frameworks setzen heisst: Dann aufgeschmissen zu sein wenn das 
Framework stirbt. Und die sterben immer schneller als das 
drunterliegende System.

Ausserdem: was heisst 'aktuell gehalten werden' ? Meine Erfahrung: alle 
Apps, die aktualisiert werden, werden so lange immer wieder 
aktualisiert, bis sie (auf eim und derselben nicht veränderten Plattform 
bzw. mobilen Endgerät) nicht mehr laufen.

Vielen Fank auch an die Deppen, die sich heute Softwareentwickler 
nennen, aber Kaputtmacher heissen müssten.

von Paul (Gast)


Lesenswert?

Was haltet ihr von Livecode?
https://de.wikipedia.org/wiki/LiveCode
https://www.informatik-aktuell.de/entwicklung/programmiersprachen/einfuehrung-in-livecode.html
Sinnvoll auch für komplexe Projekte, oder Spielzeug? Wie hoch ist der 
Speicherbedarf zur Laufzeit, wieviel Speicherplatz belegen die Apps?

von Florian S. (sevenacids)


Lesenswert?

Eine PWA (Progressive Web App) wäre, wie bereits angesprochen, 
sicherlich die sinnvollste Variante wenn man heute -- 2018 -- in die 
App-Entwicklung einsteigt. Denn das ist die Richtung, in die sich das 
Ganze entwickelt. Native Apps werden nach und nach in den Hintergrund 
treten, und nicht etwa, weil PWAs so progressiv (fortschrittlich) wären, 
sondern weil sie schlicht und einfach die kostengünstigste Lösung sind 
was die plattformübergreifende Verfügbarkeit angeht ohne mehrere 
Codebases pflegen zu müssen. Hier obsiegt allein das wirtschaftliche 
Interesse. Denn Anwendungen auf dem Fundament von HTML und JavaScript 
(eine Skriptsprache) zu entwickeln, zwei Technologien, die dafür nie 
gedacht waren, ist rein technisch gesehen, trotz aller Verbesserungen in 
den letzten Jahren, nicht gerade fortschrittlich - aber es ist eben 
alles schon da, halbwegs standardkonforme Engines und Front-Ends 
(Browser) gibt es auf allen relevanten Plattformen und niemand muss mehr 
Geld in die Hand nehmen für Lösungen, die am Ende dann doch wieder nur 
proprietär sind weil jeder lieber sein eigenes Süppchen kocht - sonst 
hätten wir ja heute nicht zwei, drei inkompatible App-Plattformen.

Ich persönlich hätte mir ja statt PWAs lieber sowas wie ein neues, 
deutlich erweitertes POSIX gewünscht: eine standardisierte, 
einheitliche, modulare, native Programmierschnittstelle für 
"vernetzbare" Anwendungen, inkl. Benutzerschnittstellendefinition. Denn 
der deutlichste Nachteil von PWAs ist aus meiner Sicht nach wie vor die 
Beschränktheit auf JavaScript und damit einen guten Interpreter bzw. 
JIT-Compiler, und unzählige Frameworks, die einen das komfortable 
Entwickeln auf dieser Basis überhaupt erst ermöglichen. Eine andere 
Programmiersprache nutzen? Geht nicht ohne Weiteres. Dafür gibt es dann 
so genannte Transpiler, die einem daraus ein mehr oder weniger gutes 
JavaScript-Äquivalent generieren. Und dann kommt da noch WebAssembly...

App-Entwicklung anno 2018 ist in meinen Augen ein totales Desaster. Wenn 
man es sich dennoch antun möchte, kann man eigentlich nur auf PWA 
setzen.

: Bearbeitet durch User
von Alex (Gast)


Lesenswert?

@florian

Wobei eigentlich Java als genau diese plattformunabhängige Lösung 
propagiert wurde. Write once, run everywhere oder so ähnlich wurde das 
beworben. Leider hat es nie wirklich so funktioniert. Woran liegts? Was 
denkst du?

Beitrag #5511495 wurde von einem Moderator gelöscht.
von Johnny B. (johnnyb)


Lesenswert?

MaWin schrieb:
> Johnny B. schrieb:
>> wegen der Schnelllebigkeit der Geräte und der Betriebssysteme unbedingt
>> auf Frameworks und Tools angewiesen ist, welche aktuell gehalten werden.
>> Selber hatte ich damals auf jQueryMobile als Framework gesetzt und ein
>> halbes Jahr nachdem die App fertig war, wurde der Support dieses
>> Frameworks mehr oder weniger eingestellt
>
> Verstehe ich nicht. Ist doch gerade ein Widerspruch.
>
> Auf Frameworks setzen heisst: Dann aufgeschmissen zu sein wenn das
> Framework stirbt. Und die sterben immer schneller als das
> drunterliegende System.
>
> Ausserdem: was heisst 'aktuell gehalten werden' ? Meine Erfahrung: alle
> Apps, die aktualisiert werden, werden so lange immer wieder
> aktualisiert, bis sie (auf eim und derselben nicht veränderten Plattform
> bzw. mobilen Endgerät) nicht mehr laufen.

Die Plattform bzw. das Endgerät ändert sich jedoch mit jedem Update das 
es vom Hersteller bekommt.
Vom Google Playstore und Apple Store bekommt man alle paar Monate ein 
Email mit neuen Anforderungen die eine App erfüllen muss und wenn man 
das nicht einbaut, dann wird die App aus dem jeweiligen Store entfernt.
Genannt sei z.B. die Kamera, da muss man neuerdings einen Text 
hinterlegen welcher den Nutzer darüber aufklärt, warum die App die 
Kamera nutzen will. Oder man muss ab und zu mal neue Icons hinzufügen um 
die aktuellen Geräte zu unterstützen, man muss die App wegen 
Sicherheitslücken im SDK mit dem aktuellen SDK neu builden etc. etc.; 
eine Mobile App ist sozusagen nie fertig, da muss man immer dran 
bleiben, vorallem wenn sie über einen offiziellen Store vertrieben wird.

von Manfred F. (manfred_f)


Lesenswert?

elvis schrieb:
> Schon mal was von Fuchsia gehört?

Ja. Ist aber wenn überhaupt erst in einigen Jahren ein Thema. Und dann 
ist es auch fraglich ob die Kunden ein derartig geschlossenes System 
überhaupt akzeptieren. Android lebt ja von der Offenheit des Systems; 
ansonsten kann man ja gleich Apple kaufen.

Alex schrieb:
> Wobei eigentlich Java als genau diese plattformunabhängige Lösung
> propagiert wurde. Write once, run everywhere oder so ähnlich wurde das
> beworben. Leider hat es nie wirklich so funktioniert.

Eigentlich funktioniert das doch ganz gut. Ich habe hier eine Menge 
Anwendungen die unter Windows, Linux und MacOS ohne Änderungen laufen. 
OK, um sie unter Android auszuführen wären dann doch einige Änderungen 
nötig, was aber weniger an Java liegt sondern an der anderen 
Bedienphilosophie (Maus vs. Touchscreen).

: Bearbeitet durch User
von qwertz (Gast)


Lesenswert?

Florian S. schrieb:
> App-Entwicklung anno 2018 ist in meinen Augen ein totales Desaster. Wenn
> man es sich dennoch antun möchte, kann man eigentlich nur auf PWA
> setzen.

Gibts dazu ein verständliches Tutorial oder Buch? Wo kann ich mehr 
darüber erfahren und lernen, auch wenn ich kein waschechter Informatiker 
bin? Ich möchte selbst solche PWAs erstellen, auch wenn es zunächst 
natürlich nur ganz einfache Sachen sein werden.

von Wolfgang H. (Gast)


Lesenswert?

Visual studio installieren, Android sdk drauf und in c# vb c++ nach Wahl 
loslegen

von Joachim S. (oyo)


Lesenswert?

qwertz schrieb:
> Florian S. schrieb:
>> App-Entwicklung anno 2018 ist in meinen Augen ein totales Desaster. Wenn
>> man es sich dennoch antun möchte, kann man eigentlich nur auf PWA
>> setzen.
>
> Gibts dazu ein verständliches Tutorial oder Buch? Wo kann ich mehr
> darüber erfahren und lernen, auch wenn ich kein waschechter Informatiker
> bin? Ich möchte selbst solche PWAs erstellen, auch wenn es zunächst
> natürlich nur ganz einfache Sachen sein werden.

Letztlich sind PWAs halt auch nur "Webseiten", die auf die Web-Standards 
HTML, CSS & vor allem Javascript setzen, die heutzutage auch von jeder 
Webseite benutzt werden. PWAs unterscheiden sich von 08/15-Webseiten im 
Grunde nur dadurch, dass sie irgendwelche neuen, sich häufig noch in 
starkem Wandel befindlichen Javascript-APIs wie z.B. "ServiceWorker" 
nutzen, die Webseiten Sachen wie Offline-Fähigkeit bieten, die 
klassischerweise den gewöhnlichen (nativen) Apps vorbehalten waren.

Ich weiss nicht, wie gut Deine Vorkenntnisse im Bereich Web-Entwicklung 
sind. Falls nicht oder nur minimal vorhanden, macht es keinen Sinn 
direkt ein Buch über PWAs zu kaufen - Du wirst dann trotzdem nichts 
verstehen.
Um PWAs entwickeln zu können, muss man erst einmal allgemein lernen wie 
man interaktive Webseiten mit HTML, CSS und vor Allem: Javascript 
erstellt.
Wenn man das erst einmal kann, ist der Schritt zu PWAs nur noch minimal, 
weil man sich dann im Grunde nur noch mit ein paar weiteren 
Javascript-API befasst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.