Was sollte ein Entwickler wissen / wissen, um kommerzielle Android-Apps zu erstellen? [geschlossen]

21

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)?

angryITguy
quelle
Mit kommerzieller Qualität meinen Sie "kommerzielle Qualität" oder "Geld verdienen" und wenn ja, mit späterer, indem Sie einen Job in der Region bekommen oder Apps für sich selbst schreiben und verkaufen?
Jon Hopkins
@ Jon. Keine dieser Bereiche ausschließen. Aber (glaube ich) es gibt eine Menge Entwickler wie mich, die ihre aktuelle Organisation effektiv auf Geräte ausweiten möchten. Es geht also nicht darum, Geld zu verdienen oder einen neuen Job zu bekommen, sondern das Unternehmen einfach für informationshungrige Führungskräfte / Road Warriors zu erweitern.
angryITguy
Was ich suche, ist ein Rat von den leitenden Entwicklern in Android, die die "ooh! Sie sollten dies zuerst lesen und dann dies für HTTP, oder dies für ansprechendes Interface-Design und dies für das Zeichnen von 2D / 3D ..." - Momenten. Ich habe meine Frage aktualisiert, um dies widerzuspiegeln.
AngryITguy

Antworten:

16

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".

  1. 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.

  2. 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:

  1. SQLite

  2. Allgemeine Begriffe zu Video- und Audio-Streaming, Codecs. Für OpenCore (android.media).

  3. OpenGL-Zeichnung.

  4. REST-basierte Webdienste, XML oder JSON.

  5. 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 ;-).

  1. Bringen Sie Ihrem Kind das Zeichnen und Lesen bei.

  2. Lernkarten zum Erlernen von Fremdsprachen.

  3. UK-FreeSat TV-Guide + Fernbedienung.

  4. Ihre hier (Küchenrezepte ... etc).

Alain Pannetier
quelle
Ihre Antwort gefällt mir. Können Sie einige Links bereitstellen, die Sie für SQLLite, Webservices / REST / JSON und OpenGL verwendet haben?
angryITguy
12

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
hi, sorry wenn das doof ist aber ich bin neu hier! Warum sollte dies abgelehnt werden? Der Grund, den ich frage, ist, dass mir aufgefallen ist, dass niemand diese Frage beantwortet hat, und manchmal (ich denke es jedenfalls) musst du einfach weggehen und die Antwort selbst ausarbeiten. Das ist alles, was ich mit einigen grundlegenden Startpunkten vorgeschlagen habe, also was ist daran falsch?
+1, um das Negative zu kontern. Plus es gibt einige gute Links :)
Darren Young
@ Darren Young - danke, aber ich war nur daran interessiert, warum es möglicherweise abgelehnt wird. Damit ich die Seite besser nutzen kann ist die +1 aber immer willkommen!
@Gräber. Danke für diese Info. Dies ist das Einstiegszeug, das ich bereits gefunden habe. Ich hatte gehofft, dass die erfahreneren Entwickler einspringen und diese Antwort ein wenig weiter führen würden. +1
angryITguy
@giulio - danke, hoffe, du findest die Informationen, die du suchst.
5

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.

Ryan Hayes
quelle
Vielen Dank. Ich habe das Google SDK und den Entwicklerleitfaden ( developer.android.com/guide/index.html ) bereits entdeckt . Es wurde jedoch festgestellt, dass für die Entwicklung und Bereitstellung von kommerziellen Anwendungen viel fehlt.
angryITguy
3

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.

AlexC
quelle
Danke habe mir Titanium angeschaut. Ich habe die Frage aktualisiert, um den Antwortenden bei der Suche nach einer Antwort zu helfen.
AngryITguy
2

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).

  1. 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.

  2. 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.

  3. 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.

hotpaw2
quelle
Interessant. Können Sie Verweise auf Websites bereitstellen, die diese Themen behandeln?
angryITguy
1

Ich habe meine Junioren auf diese Weise ausgebildet.

Schritt 1: Ich bitte sie, eine kostenlose Anwendung im Android Market und auch die API-Demos zu sehen, da sie auch Ideen sammeln können. ( Http://developer.android.com/resources/samples/ApiDemos/index.html ) und auch http://www.androidpeople.com/

Zum Beispiel: Die IBNLive-App für Android. Wenn sie diese Anwendung sehen, können sie sich eine ungefähre Vorstellung davon machen, dass dies möglich ist. Warum können wir so etwas nicht zertifizieren / verwenden, gestalten oder steuern?

Schritt 2: Sobald sie eine Hoffnung bekommen haben, können sie anhand der vorhandenen Anwendung sowohl in Google als auch im Android-Entwicklerhandbuch suchen, das als Bibel für Android fungiert, und sie kennenlernen.

Zum Beispiel: Meine Junioren haben eine Idee, eine erweiterbare Listenansicht und Push-Benachrichtigungen, dann gesucht, wie wir diese Dinge tun können, dann finden sie Push-Benachrichtigungen, wir können Cloud 2 Device Messaging verwenden, dann haben sie das studiert und es getan in einer ausgezeichneten Weise.

Sankar Ganesh
quelle
0

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.

fzwo
quelle