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.
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.
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.
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.
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?
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.
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).
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.
> 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
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?
ich nehme appinventor für einfache dinge auf dem handy
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.
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.
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.
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.
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.
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?
Visual studio installieren, Android sdk drauf und in c# vb c++ nach Wahl loslegen
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?
Schon einmal Basic for Android B4A angeschaut. Gibt es auch für iOS, JAVA und Arduino. https://www.b4x.com/
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
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.
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?
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
@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.
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.
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
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.
Visual studio installieren, Android sdk drauf und in c# vb c++ nach Wahl loslegen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.