Da alle mobil werden, konnten wir nicht zurückbleiben. Das bedeutete, dass wir eine Android-Anwendung entwickeln mussten, weil wir (Bram Neijt, Arno den Hond und Ihr Chronist) keines dieser schicken iPhones besitzen. Außerdem ist Android viel cooler.
Um unsere Reise als Android-Entwickler zu beginnen, beschlossen wir, Quizzz zu erstellen: eine App, mit der Sie die Namen Ihrer Kollegen lernen können. Da es uns etwas unangenehm war, das Bild eines jeden in den Android Appstore zu stellen, haben wir beschlossen, stattdessen Bilder von Tieren zu verwenden. In diesem Fall indische Vögel, um unsere Verbundenheit mit unseren indischen Kollegen zu betonen. So bekamen wir eine einfache Anwendung, die nur eine kleine Teilmenge der Android-API benötigt. Außerdem wollten wir uns mit dem Android-Entwicklungszyklus vertraut machen, vom Interaktionsdesign über die Entwicklung und das Testen bis hin zur Bereitstellung.
Nachdem wir die Android-Entwicklungsumgebung installiert hatten, standen wir vor dem Problem, unsere Anwendung zu entwerfen. Design Die Idee von Quizzz besteht darin, einen Bildschirm mit einem Bild zu zeigen, ursprünglich von unserem Xebia-Facebook, aber im Moment ist es das Bild eines Vogels, und dann dem Benutzer drei Namen zur Auswahl zu geben. Auf einer weißen Tafel sieht das so aus:
Der obere linke Teil zeigt den Startbildschirm: drei Schaltflächen mit zufälligen Namen, von denen eine der Name des Vogels ist, der im Bild oben zu sehen ist. Wenn Sie den richtigen Namen wählen, landen Sie auf dem Bildschirm oben rechts. Wenn Sie die falsche Taste drücken, landen Sie im unteren rechten Bildschirm, der Ihnen die richtige Antwort anzeigt und eine Taste, die Sie zum oberen rechten Bildschirm bringt, wo Sie das Bild und den Namen des von Ihnen gewählten Vogels sehen können.
Wir haben uns entschieden, die Anwendung als eine einzige Aktivität zu implementieren. Aktivitäten sind Teilbereiche einer Anwendung, die zu einem Arbeitsablauf kombiniert werden können, indem man von einer Aktivität zur nächsten geht. Die Zurück-Taste auf dem Telefon bringt Sie zur vorherigen Aktivität (nicht unbedingt zum vorherigen Inhalt des Bildschirms), so dass Aktivitäten die Art und Weise strukturieren, wie der Benutzer durch die Anwendung navigiert. Da es in unserer Anwendung keine Zurück-Funktion gibt, haben wir beschlossen, den gesamten Arbeitsablauf in einer einzigen Aktivität zu erstellen. Wir verwenden Layoutwechsel, um dem Benutzer verschiedene Bildschirme zu präsentieren. Das gilt natürlich nicht für alle Bereiche. In späteren Versionen werden wir weitere Activities und Intentions und so weiter hinzufügen, aber im Moment halten wir die Dinge einfach. Code Um den Code herunterzuladen, besuchen Sie GitHub - xebia/quizzz: oder klonen Sie das Repository :
[code]
git clone https://github.com/xebia/quizzz
cd quizzz
git checkout release1.0
[/code]
Wir haben zwei Layouts definiert, main.xml und result.xml. Das erste zeigt die linke Seite des Entwurfs und das zweite den rechten Teil des Entwurfs (siehe Abbildung unten).
Wenn Sie die App starten, wird die QuizActivity gestartet. Das Android-Framework ruft die Methode onCreate() auf, um die erforderliche Initialisierung durchzuführen. In unserem Fall beinhaltet dies das Laden eines Satzes von Bildern aus einem Verzeichnis. Wir wählen eine Liste von Vögeln, die in Indien vorkommen, als Beispiel aus, aber jede beliebige Menge von Bildern ist geeignet.
[java] @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
quizSet = QuizList.fromAssetsDirectory(this, "sets/Birds of India");
layoutQuestion();
}
[/java]
Der Satz von Bildern für das Quiz wird von einer Hilfsklasse namens QuizList geladen. Das fromAssetsDirectory verwendet die Android-Plattform, um Bilddateien aus einem Verzeichnis namens 'assets' im Stammverzeichnis des quizzz-Projekts zu laden. Die Liste ist jetzt statisch, da sie zusammen mit der Anwendung bereitgestellt wird. Wir werden dies in einer zukünftigen Version ändern.
[java] public static QuizList fromAssetsDirectory(Context context, String directory) {
QuizList quizList = new QuizList();
try {
String[] list = context.getResources().getAssets().list(directory);
for (String pictureAssetName : list) {
quizList.add(new AssetQuizItem(directory + "/" + pictureAssetName));
}
} catch (IOException e) {
//Empty quizset
}
return quizList;
}
[/java]
Der letzte Akt von onCreate() ist der Aufruf von layoutQuestion(). Diese Methode wählt nach dem Zufallsprinzip drei Bilder aus dem zuvor geladenen Satz aus, weist sie den Schaltflächen zu und klinkt sich dann in die setOnClickListener()-Methode jeder Schaltfläche ein. Die Schaltflächen werden in einer HashMap gespeichert, so dass sie später in der Methode onClick() abgerufen werden können. onClick() verwendet die angeklickte Schaltfläche als Index in der oben erwähnten HashMap, um die von den Benutzern gewählte Antwort zu finden und delegiert entweder an layoutIfAnswerIsCorrect() oder layoutIfAnswerIsWrong(). Beide Methoden füllen die Daten in einer neuen Ansicht auf der Grundlage der vom Benutzer gegebenen Antwort aus. Die Methoden enden mit einem Codeblock, der eine neue Schaltfläche und einen Listener einrichtet, damit der Benutzer den nächsten Schritt machen kann.
Jetzt wartet die App darauf, dass eine Schaltfläche gedrückt wird. Sobald dies geschieht, wird die Methode onClickListener() der Schaltfläche ausgeführt. Dadurch wird onClick() aufgerufen und die App führt je nach Auswahl des Benutzers die entsprechende Aktion aus.
Beachten Sie, dass wir die anderen Methoden des Lebenszyklus einer Aktivität (onPause(), onStop() und onDestroy()) nicht implementiert haben. Wir verschieben dies auf später.
Ergebnis
Um unsere Arbeit zu testen, haben wir den Emulator in Eclipse verwendet. Klicken Sie mit der rechten Maustaste (oder doppelklicken Sie auf das quizzz-Projekt in Eclipse) und wählen Sie RunAs -
Ich habe eine Weile gebraucht, um herauszufinden, wie man einen Screenshot vom Desktop Ihres Telefons macht. Es stellt sich heraus, dass es dafür eine Funktion gibt: Halten Sie die Zurück-Taste gedrückt und drücken Sie dann die Taste daneben.
Android bestätigt, dass ein Bildschirmfoto gemacht wurde und speichert das Bild im Verzeichnis ScreenCapture.
Nächste Schritte Nachdem die Grundlagen nun funktionieren, möchten wir die folgenden Funktionen hinzufügen (die Liste ist in keiner bestimmten Reihenfolge):
- Fügen Sie eine Optionsschaltfläche hinzu, um eine Reihe von Bildern zu laden (damit wir das Kollegen-Quiz doch noch bekommen können).
- Implementieren Sie alle Lebenszyklusmethoden.
- Erstellen Sie die App mit Maven.
- Finden Sie heraus, wie man Android als Einheit/Integration testet
Verfasst von

Jan Vermeir
Developing software and infrastructure in teams, doing whatever it takes to get stable, safe and efficient systems in production.
Contact



