Die Android- und Mobile-Entwicklung ist ein spannender Entwicklungsbereich. Was würde man von einem Android-Entwickler erwarten, um kommerziell robuste Anwendungen in Bezug auf Fähigkeiten zu erstellen, da es sich um eine neue Disziplin handelt? Das Problem, das ich und ich denke, viele andere "Neulinge" in der Technologie gerne wissen würden, sind die Bereiche der technischen Fähigkeiten und die Weiterentwicklung zu den erforderlichen fortgeschrittenen Themen, die über die Grundlagen hinausgehen, die Google bereitstellt. Es gibt viele nützliche Informationen, die jedoch weder in Disziplin- noch in Ordnungskategorien unterteilt sind.
Update : Schau es dir so an. Was würden Sie tun, wenn Sie ein erfahrener Entwickler sind und einen Kollegen für ein bestimmtes Projekt auf Android auf den neuesten Stand bringen möchten (dies liegt in Ihrem Ermessen bei dieser Frage)?
Antworten:
Diese Frage hat mehrere Facetten:
Aus technischer Sicht , die Beantwortung der Frage "Wie?"
Es gibt mehrere Technologien zu beherrschen und eine Reihe von "nice to have".
Die Nummer eins ist Java . Das Android SDK basiert auf der Annahme, dass alle Apps in Java geschrieben sind . Obwohl es wohl einige neu aufkommende Lösungen von Drittanbietern gibt, die in .net entwickelt werden sollen (siehe monodroid ), ist das zugrunde liegende Betriebssystem doch Linux.
Die zweite ist die Sonnenfinsternis . Obwohl es eine Reihe von SDKs von Drittanbietern gibt , einige besser als ADT, Intellij oder Netbeans , konzentrieren sich die Bemühungen von Google offiziell vorerst nur auf Eclipse.
Edit: Seit Januar 2016 unterstützt Google offiziell Android Studio als offizielle IDE.
In der Android-Architektur gibt es eine Reihe von Bausteinen, für die ein wenig Belichtung immer hilfreich ist:
SQLite
Allgemeine Begriffe zu Video- und Audio-Streaming, Codecs. Für OpenCore (android.media).
OpenGL-Zeichnung.
REST-basierte Webdienste, XML oder JSON.
Begriffe zur ARM-Architektur für die Entwicklung von nativem Code.
Außerdem sollten Android-Entwickler, die in meiner Kristallschale lesen, auch mit Linux vertraut sein und die Muttersprachen beherrschen, wenn Google Java austauscht und es durch go oder andere Dinge ersetzt, die sie möglicherweise irgendwo brauen (siehe ihre " Native Client " -Initiative) in der Browser-Domain). Google hat bereits ein NDK (Native Development Kit) für c und C ++ veröffentlicht, das den Standard-JNI-Mechanismus zur Ergänzung von Dalvik verwendet.
Aus kommerzieller Sicht , die Beantwortung der Frage "Was?".
Android-Entwickler sollten natürlich selbst Android-Nutzer sein. Allerdings nicht nur Standard-Handynutzer, sondern auch Tablet-Nutzer. Eigentlich sollten sie eine jobsianische Haltung einnehmen und sich immer fragen: "Wie könnte ich das besser mit meinem Telefon, meinem Tablet oder einem noch nicht auf dem Markt befindlichen Unterhaltungselektronikgerät machen?".
Es gibt viele Android-Anwendungen, die noch keinen Marktführer haben, nicht unbedingt in Bezug auf Mobilität (oder die übliche langweilige App "Wo ist die nächste Pizza?"). Hier sind ein paar, die ich persönlich nicht vergessen kann (bis ich mehr Zeit habe ;-).
Bringen Sie Ihrem Kind das Zeichnen und Lesen bei.
Lernkarten zum Erlernen von Fremdsprachen.
UK-FreeSat TV-Guide + Fernbedienung.
Ihre hier (Küchenrezepte ... etc).
quelle
Um ehrlich zu sein, ich denke, Sie müssen nur Google und einige Nachforschungen anstellen.
Hier sind einige interessante Links, die ich gefunden habe und die einen guten Ausgangspunkt bieten können.
Neben der von Ihnen besprochenen Google-Dokumentation gibt es noch viele andere.
Ich hoffe, Sie können loslegen und die gewünschten Details finden!
Viel Glück
quelle
Googles offizieller Entwicklerleitfaden
Ich werde einen Blick auf Googles Entwicklerhandbuch für Android werfen, das bewährte Vorgehensweisen und Richtlinien enthält, um Ihre App mit dem Erscheinungsbild einer Android-App in Einklang zu bringen.
quelle
Zwei Dinge, die ich mir ansehen würde. Eine davon sind Apples Design-Richtlinien zum Erstellen von Apps. Ich weiß, dass die Frage nach Android Apps lautete, aber die übergeordneten Prinzipien gelten und Sie dazu bringen, in einer „App“ -Design-Weise zu denken, die sich von einer Desktop-App-Design-Perspektive tatsächlich deutlich unterscheidet.
Außerdem möchte ich einen Blick auf Appcelerator Titanium werfen, ein Tool, mit dem Sie Code aus einer Umgebung mit Javascript- / Web-Entwicklertypen in systemeigenen Code auf iPhone, iPad und Android portieren können. Ich fand es eine nützliche Möglichkeit, kleine Apps schnell zu erstellen. Sie können das 'Kitchen Sink'-Beispiel herunterladen, das, wie der Name schon sagt, alle verfügbaren nativen Funktionen demonstriert. Ich würde dieses Hotel auf jeden Fall als Ausgangspunkt empfehlen.
quelle
Ich finde oft 3 Dinge, die neuen mobilen Entwicklern fehlen, nachdem sie grundlegende Kenntnisse in der / den erforderlichen Programmiersprache (n) und Kenntnisse der SDK-Tools und -Bibliotheken (die keine Raketenwissenschaft sind ... Berichten zufolge haben 14-Jährige Apps entwickelt).
Entwickeln für eingeschränkte Umgebungen. CPU, Speicher, Anzeigepixel und die verfügbare Akkuleistung beeinträchtigen mobile Geräte erheblich. Einige Programmierer waren noch nie mit schnellen und winzigen Programmen konfrontiert. Sie können Probleme nicht auf die gleiche Weise lösen wie wenn Sie ein Rack mit 5 kW Leistung und Kühlung zur Verfügung haben. Lernen Sie einige der Tricks, die Oldtimer verwendet haben, um großartige Spiele auf einer 1-MHz-CPU mit 48 kB zu codieren der Erinnerung oder so etwas. Vielleicht üben Sie das Codieren auf einem Arduino oder einem anderen winzigen Controller.
UI Vertrautheit. Ein Benutzer interagiert normalerweise auf andere Weise mit seinem Mobilgerät als mit Desktop-Systemen. Tragen Sie einen herum. Vielleicht mehrere Modelle. Benutze sie. Verwenden Sie viele Apps und kritisieren Sie (nicht Features, aber), wie einfach sie zu verwenden sind, bei schlechten Lichtverhältnissen, beim Springen von sich bewegenden Fahrzeugen usw. Lesen Sie die verschiedenen mobilen HIGs und lesen Sie sie erneut. Wissen, was Benutzer an der bestimmten UI-Plattform, für die Sie codieren, mögen und was nicht.
Skurrile Vertrautheit. Einige der Tools und Bibliotheken sind neu und haben "Macken". Lesen Sie die Entwickler-Boards nach Problemen und Lösungen, damit Sie nicht den gleichen Fehler machen, auf den Millionen anderer Entwickler gestoßen sind. Ich sehe zu viele Fragen zum Stackoverflow, wie man Dinge macht, die die Hardware, die APIs oder die App-Verteilungsmodelle nicht einmal erlauben. Ganze Unternehmen haben ihre Zeit damit verschwendet, das Unmögliche für den iPhone App Store zu tun.
quelle
Ich habe meine Junioren auf diese Weise ausgebildet.
quelle
Viel wichtiger als die technischen Details (die man lernen kann und die sowieso nicht zu schwierig sein sollten) ist es, zu wissen, was zu tun ist, für wen und ob man genug davon verkaufen kann. Dieser letzte Teil ist immer noch ein Problem für Android, im Gegensatz zu iOS.
Machen Sie sich vor dem Erlernen der Android-Entwicklung ein klares Bild davon, was Sie erreichen möchten, wie Sie es erreichen und ob dies tatsächlich nachhaltig ist.
quelle