Inhaltsverzeichnis:
- Joe Simpson (@kennydude) - Boid
- Christophe Versieux - BeTrains - SNCB Belgien; HoloÜberall
- Matthew Runo - Zappos
- Josh Burton - jRemote
Android läuft auf einer Vielzahl von Geräten, was bedeutet, dass es auch auf einer Vielzahl von Bildschirmgrößen und Auflösungen läuft. Viele Leute nennen das "Fragmentierung". Dabei spielt es keine Rolle, dass sie auf ihrem Desktop seit Jahren Produkte verwenden, die auf die gleiche Weise entwickelt und entwickelt wurden. Anscheinend, wenn nicht alles genau gleich ist, erhält es das Etikett "Fragmentierung".
Es gibt verschiedene Möglichkeiten, um die Probleme zu lösen, die bei der Verwendung von Bildschirmen mit unterschiedlichen Größen und Dichten auftreten. Apple bietet separate Angebote für Apps für das iPhone und das iPad. Microsoft schafft ein neues Ökosystem für seine Großbildgeräte. Android bietet Entwicklern die Möglichkeit, dieselbe App für verschiedene Bildschirme unterschiedlich zu nutzen. Jede Methode ist gut und schlecht, aber wir werden uns hier auf Android konzentrieren.
In Android können Anwendungen das Layout für Bildschirme unterschiedlicher Größe und Auflösung anpassen. Dies ist alles eingebaut, aber es gibt ein paar Dinge, die Entwickler in ihrem Code deklarieren müssen, damit die App gut aussieht. Beachten Sie, wie sich die Bildschirmgröße und -dichte auf das Erscheinungsbild der App auswirken. Das Droid DNA verfügt über einen Bildschirm mit höherer Auflösung als das Motorola XOOM-Tablet, wir möchten jedoch kein Tablet-Layout für Apps auf dem Bildschirm in Handygröße anzeigen.
Ein Entwickler muss Assets (Bilder) bereitstellen, deren Qualität hoch genug ist, um bei hoher Auflösung scharf auszusehen (egal, bei wahnsinnig hoher Auflösung), und beim Entwerfen des Layouts dichteunabhängige Pixeleinheiten verwenden. Dies verhindert, dass Tasten und andere Steuerelemente auf Bildschirmen mit geringer Dichte wie dem Galaxy S2 oder auf Bildschirmen mit hoher Dichte wie dem DNA sehr klein sind.
Es klingt kompliziert, aber das meiste davon wird für Sie erledigt, wenn Sie eine App codieren. Der Entwickler muss lediglich die richtigen Erklärungen abgeben und die richtigen Elemente bereitstellen, um jede Größe (sowohl physische als auch Auflösung) oder jedes Layout zu unterstützen. Sogar Apps mit mehreren Layouts wie die Google+ App verwenden denselben Code, um jeden erdenklichen Bildschirm abzudecken.
Wir versuchen hier nicht, Entwickler zu beurteilen. Apps zu schreiben ist schwierig. Die Android-Entwickler haben das alles seit der Veröffentlichung von Gingerbread gepredigt, aber wie praktisch ist das? Wir haben ein paar Entwickler danach gefragt, was sie nach der Pause zu sagen hatten.
Mehr: Googles Android-Entwickler-Site.
Wir haben eine Handvoll Entwickler (sowohl große als auch kleine) ein paar grundlegende Fragen zu diesem Thema gestellt.
- Wie schwierig ist es, die Richtlinien einzuhalten?
- Auf dem Papier sieht es einfach aus, aber gibt es spezielle Probleme, die Sie gesehen haben, oder Teile, die Google nicht behandelt hat?
- Wie hat sich dies auf die Entwicklungszeit und -kosten ausgewirkt, wenn überhaupt?
- Noch etwas zu dem Thema, das Sie teilen möchten?
Ich habe versucht, die Fragen so neutral wie möglich zu gestalten, damit wir nicht unparteiisch darauf eingehen. Wenn Sie Zweifel haben, fragen Sie die Leute, die es wissen, oder? Ich habe viel programmiert, aber das Codieren in Java und das Erstellen von Android-Apps unterscheidet sich stark vom Schreiben von Code in C oder Maschinencode oder sogar in Perl. Es gibt Nuancen, die ich nicht verstehe, auch wenn ich die allgemeinen Methoden zum Erstellen einer App verstehe.
Ich stelle mir vor, viele von euch sind wie ich und kennen die Feinheiten beim Erstellen von Android-Apps nicht. Wir sehen nur, was die Android-Entwickler sagen, und sie lassen es einfach klingen. Für sie ist es wahrscheinlich - sie haben dieses Zeug von Grund auf seit 2007 geschrieben. Mal sehen, was die Leute zu sagen haben, die in der Lage waren, ihnen zu folgen.
Joe Simpson (@kennydude) - Boid
Joe ist Mitglied von Team Boid und veröffentlicht Anwendungen auch selbst. Er (und der Rest seines Teams) sind ein großartiges Beispiel für unabhängige Entwickler mit einer Leidenschaft für Android, die einige erstaunliche Anwendungen entwickelt haben.
Das Befolgen der Richtlinien ist ziemlich schwierig, vor allem, wenn Sie eine schlanke App möchten, die Benutzer jedoch eine Kompatibilität mit der Vergangenheit wünschen. Eine der nervigsten Dinge ist, zu sehen, wie etwas auf d.android.com/design aussieht, aber nichts darüber, wie man das tatsächlich macht.
Eine Schwachstelle ist erfrischend, wenn Sie GCM aufgrund von Twitter physisch nicht verwenden können und PtR nicht verwenden möchten. Auch die Apps von Google stellen ihre eigenen Richtlinien auf. Nehmen wir zum Beispiel den Slide-In-Bereich, Google+ macht das anders als YouTube (obwohl ich weiß, dass die Support-Bibliothek dies hoffentlich regeln wird).
Sie können auch zu einem Punkt gelangen, und es gibt keine Dokumentation zu etwas (z. B. EdgeEffect).
Ich bin ein Student, also sind die Kosten etwas, was ich nicht sehe, und ja, es braucht Zeit, aber Ihre Benutzer werden Sie lieben. Grundsätzlich sind die Live-Shows (ADiA, App Clinic, Office Hours) ein Muss (leider), obwohl sie kein Feedback zu Googles Apps bieten können.
Boid ist in Kürze Open Source (yay!) Und Sie können die App selbst in Google Play finden. Hier finden Sie auch alle Apps von Joe (es gibt einige Juwelen).
Christophe Versieux - BeTrains - SNCB Belgien; HoloÜberall
Christophe hat zahlreiche Android-Anwendungen erstellt, darunter BeTrains - SNCB Belguim - eine App mit einem wunderschönen Layout, das zeigt, was mit einer gut erstellten Anwendung getan werden kann. Während die meisten in den USA es nie benutzen werden (es ist eine Zugfahrplan-App für belgische Eisenbahnen), lohnt es sich, es zu installieren, um zu sehen, wie gut es gemacht ist. Die Leute in Westeuropa wissen bestimmt Bescheid.
Darüber hinaus hat er HoloEverywhere mitentwickelt, eine Bibliothek, mit der andere Entwickler Anwendungen im Holo-Stil für Android 2.1 und höher erstellen können. Da auf vielen Handys immer noch Gingerbread ausgeführt wird, ist dies eine echte Wohltat für Entwickler, die ihre Apps auf dem neuesten Stand halten möchten.
Es ist überhaupt nicht schwierig. Ernst. Der schwierige Teil kommt, wenn der Kunde darum bittet, von diesen Richtlinien abzuweichen!
Ich erinnere mich an einen Kunden, der wollte, dass ich Registerkarten am unteren Rand des Bildschirms anbrachte, iPhone-Schaltflächen überall, das Umschalten im iPhone-Stil und dieses Projekt war wirklich schwer zu realisieren und ich habe wirklich viel Zeit und Geld dafür verloren.
Ich war wirklich sauer auf ihn, als er all diese dummen Sachen fragte, und er dachte nur, ich wäre ein fauler Entwickler.
Ich habe jetzt viel Kontakt mit ihm und wir schreiben seine App komplett neu, erstellen fantastischen Code, indem wir all diese nutzlosen Funktionen entfernen und eine "reine" Android-App erstellen. Ich bin der festen Überzeugung, dass Kunden und Unternehmen diese Richtlinien nur kennen müssen.
Bibliotheken wie ActionBarSherlock, HoloEverywhere (meine Kreation), UnifiedPreferences und SlidingMenu sind sehr einfach zu verwenden und bieten in wenigen Codezeilen eine großartige Benutzererfahrung.
Zeit und Kosten werden, wie gesagt, durch die Einhaltung der Google-Richtlinien minimiert. Fragmente und Layoutordner sind sehr einfach zu verwenden (und vor allem wiederzuverwenden): Eine Tablet-App greift einfach auf den Code des Telefonlayouts zu und es muss nichts neu geschrieben werden. Kleine Änderungen in der Telefon-App wirken sich sofort auf die Tablet-App aus, da dasselbe Fragment verwendet wird.
Einige erstaunliche Projekte werden von der Community erstellt, nicht immer von Google. Einige Leute, die auf Google+ sehr aktiv sind, wie Roman Nurik (Google), Reto Meier (Google), Juhani Lehtimäki, Jake Wharton, Taylor Ling, … (ich habe immer Angst, wichtige Leute zu vergessen), sind sehr lehrreich. Entwickler müssen nur wissen, wo sie suchen müssen, und die Android-Entwicklung wird für sie einfach sein!
Sie finden BeTrains auf Google Play, und Sie sollten sich HoloEverywhere ansehen, wenn Sie an der Android-Entwicklung interessiert sind.
Matthew Runo - Zappos
Im Gegensatz zu einigen der kleineren unabhängigen Entwickler, mit denen wir gesprochen haben, haben wir auch von Matthew bei Zappos gehört. Zappos ist ein Web-Einzelhandelsunternehmen und hat wahrscheinlich sowohl für seine Website als auch für seine Anwendungen ein eigenes Budget. Es ist auch eine Firma, die ich regelmäßig kaufe, aber dies hatte keine Bedeutung und Matthew wusste nicht, dass ich ein häufiger Kunde bin, als er sich freiwillig meldete.
Bei Zappos müssen wir als Einzelhändler in erster Linie an unserer eigenen Marke festhalten. Verrückt, lustig und ein bisschen abseits der Wand. Trotzdem glauben wir beide fest an die Android-Designrichtlinien - und alles, was wir in der Benutzeroberfläche tun, basiert auf dem Geist dieser Regeln. Vor einem Jahr war unsere App hauptsächlich ein iOS-Port, so wie er aussah und funktionierte. Heute ist es (glaube ich) ein Juwel dessen, was Sie in Android tun können. Wir halten uns, wann immer möglich, an die Richtlinien - und unsere Designer arbeiten von diesen aus.
Die Design-Richtlinien sind nicht das A und O - am Ende sind sie nur dazu da, das Design von Android-Apps voranzutreiben, damit sie einheitlicher werden. Wir haben festgestellt, dass die meisten der von uns verwendeten "neuen" Open-Source-Bibliotheken Teil der Richtlinien sind (Schiebemenü, Crouton).
Die Richtlinien sollten niemals ein Hindernis sein. Bestimmte Dinge - die allgemeine Navigation - müssen konsistent sein, damit Ihre App "nur funktioniert". Alles andere - beginnen Sie mit den Richtlinien und fahren Sie mit Ihrem Design fort. Wir möchten, dass unsere App UNSERE APP ist - daher können wir nicht nur das Holo-Basisthema erstellen.
In diesem Jahr haben wir im Grunde genommen mit einem grundsätzlichen Umschreiben unserer App begonnen, um mit Fragmenten zu arbeiten. In den letzten 6 Monaten haben wir hart daran gearbeitet, 7-Zoll-Tablet-Support hinzuzufügen, und wir arbeiten derzeit an 10-Zoll-Support. Am schwierigsten ist es, Geräte zu testen, aber wir haben ein großartiges QA-Team, das dabei hilft. Seit ungefähr August haben 2 Personen Vollzeit an unserer App gearbeitet, davor war es 1 Vollzeitperson.
Meiner Meinung nach helfen uns die Richtlinien für das Android-Design, unseren Prozess zu rationalisieren - und damit die Kosten zu senken. Seien wir ehrlich, die meisten Designer von iOS - eine großartige Ressource wie design.android.com ist also eine wunderbare Hilfe, um sie in das Android-Ökosystem einzuführen.
Ich kann sagen, dass die Designentscheidungen von Zappos gut funktionieren, und meine Frau hat einen Schrank voller Kleider, Geldbörsen und Stiefel, die meinen Anspruch bekräftigen. Schauen Sie sich die Android-App von Google Play an.
Josh Burton - jRemote
Josh hat zahlreiche kleine Anwendungen für Android entwickelt und seine jRemote-Anwendung (ein Controller für das beliebte jDownloader-PC-Programm) ist ein perfektes Beispiel für die Verwendung von Layouts, um eine App zu erstellen, die sowohl auf dem Telefon als auch auf dem Tablet gut aussieht. Es maximiert die Nutzung des Gerätebildschirms und gibt Ihnen die Informationen, nach denen Sie suchen, genau so, wie Sie es erwarten würden.
Das Einhalten der Gestaltungsrichtlinien ist ziemlich einfach, solange Sie sich von Anfang an an diese halten. Das Entwickeln einer vollständigen App und das anschließende Zurückkehren und Implementieren von Fragmenten / Tablet-Layouts usw. ist eine Verschwendung von Zeit, Mühe und Frustration. Wenn Sie jedoch Ihre App planen, von Anfang an mit Fragmenten entwickeln und Ihre Ressourcen für alle richtigen dpi-Buckets erstellen, wird die Entwicklung zum Kinderspiel, und Sie müssen wirklich nicht lange über die Richtlinien nachdenken. Und wenn Sie nicht weiterkommen, sind die Designdokumente nur einen Klick entfernt. Sie sind eine großartige Ressource.
Es frustriert mich wirklich, dass so viele Geräte keine Tablet-Layouts haben. Wenn Ihre App aus Fragmenten besteht, können Sie innerhalb von 30 Minuten ein Tablet-Layout hinzufügen. Ehrlich gesagt ist es so einfach.
Ich denke, für viele Entwickler gibt es keine Tablet-Geräte, auf denen sie testen können, und die Verwendung des Emulators kann schmerzhaft sein. Die neuen ADT-Tools vereinfachen dies jedoch erheblich. In der Ansicht für mehrere Konfigurationen im Layout-Editor können Sie auf 5-6 verschiedenen Bildschirmgrößen gleichzeitig sehen, wie Ihr Layout aussieht. Und es ist schnell. Natürlich müssen Sie eventuell noch auf einem Emulator / Gerät testen, aber es beschleunigt definitiv den Workflow.
jDownloader ist ein praktisches Programm, das Sie auf Ihrem Desktop verwenden können, und jRemote scheint eine wunderbare Möglichkeit zu sein, es zu steuern. Wenn nichts anderes, laden Sie es von Google Play herunter und schauen Sie, wie einfach und schön eine App gleichzeitig sein kann.
Wir haben von vielen anderen Entwicklern gehört, die so ziemlich das Gleiche sagen. Wir haben hier keinen Platz mehr, um sie alle aufzulisten. Wenn Sie im Voraus planen, funktionieren die Richtlinien für Android-Entwickler in den meisten Fällen tatsächlich. Wir freuen uns, das zu hören und werden weiterhin großartige Apps genießen und hart arbeitende Entwickler unterstützen.