Mon Jan 04 15:51:45 CET 2016 | zutrinken | Kommentare (3)
Wer sich noch vage an den Beginn letzten Jahres erinnern kann, der weiß, dass die MOTOR-TALK App einst unsere mobile Website angezeigt hat und lediglich den Header und Footer wegließ. Das war eine Notlösung, um ein halbes Jahr an Entwicklungsarbeit zu überbrücken. Mit der Version 1.2 kamen dann endlich einige Veränderungen bezüglich Aussehens und Usability und die waren nicht gerade marginal.
Weg mit den Pfeilen
Pager alt und neu In Threads sind die Änderungen am spürbarsten. Während man vorher nach 15 Beiträgen noch manuell eine neue Seite öffnen musste, geht das jetzt automatisch beim Scrollen.
In der NavBar (die fixe Kopfzeile oben) wird dann immer die aktuelle Seite angezeigt, damit man auch ohne Pfeildrücken weiß, dass man schon eine Seite weiter ist. Möchte man dann auf eine bestimmte Seite springen, so öffnet sich beim Tap (Klick) auf die Seitenzahl in der NavBar ein Pager, der alle Seiten anzeigt.
Die alten Navigation hingegen konnte nicht einmal alle Seiten auf einmal anzeigen und war auch nicht immer erreichbar. Erst am Ende oder auch am Anfang einer Seite konnte man die aktuelle Seite sowie eine kleine Seitenauswahl sehen.
Vorwärts immer, rückwärts... aber auch mal
Nachladen Platzhalter Unsere letze Verbesserung war dann, die Richtung des Nachladens wählbar zu machen (Android noch Beta). Springt man nämlich auf z. B. Seite 42 und scrollt nach oben, so kommt man direkt auf Seite 1. Anstatt, dass jetzt Seite 2 hinzugeladen wird, kann man abhängig von der Scroll-Position die Richtung des Nachladens verändern und somit auch Seite 41 oder Seite 2 nachladen. An der Ausrichtung des kleinen Pfeils sieht man, in welche Richtung nachgeladen wird. Der dreht sich lustig, sobald man über die Mitte des Screens hinweg scrollt. Für Seiten zwischendrin erreicht man ja jederzeit den Pager in der NavBar.
Editoren ohne Grenzen
Editor klein und groß Auch immer erreichbar ist der Quickpost, der am unteren Ende fixiert ist. Ich kann also lässig meine Antwort verfassen und dabei weiterhin durch das Thema scrollen, um eventuelle Informationen nochmals nachzulesen. Somit ist das Schließen des Editors nicht nötig. Auch kann der Quickpost mit Tab auf den vergrößern Pfeil links vergrößert werden, wo dann auch Erwähnungen, Bilder und Entwürfe zur Verfügung stehen. Das Schöne ist, dass der bereits verfasste Text mit übernommen wird.
Eine Frage stellen wir uns noch: Braucht man wirklich das Konzept von Seiten? Naja, zumindest kann man nun hoffentlich nachvollziehen, warum wir das alte Vor-/Zurück-Konzept per Pfeil grundlegend überdacht haben für die App. |
Tue Dec 01 13:26:20 CET 2015 | plaetzchen | Kommentare (2) | Stichworte: app, AppStore, ios, motor-talk
Wie Ihr vielleicht schon mitbekommen habt, gab es letzte Woche Probleme mit der iOS-Version der MOTOR-TALK-App: Wenn ein Nutzer versuchte, sich anzumelden, passierte entweder gar nichts oder er sah nur eine graue Seite. Am Ende gab es keinen Weg, sich bei der App anzumelden und damit auch keine Möglichkeit, Beiträge zu schreiben, PNs zu lesen und so weiter. In diesem Artikel will ich erklären wie es dazu kam, warum es so lange gedauert hat und was wir getan haben um sicherzustellen, dass so etwas nicht wieder passiert.
Es begann mit einem Update auf Version 1.2.5 im AppStore, das die MOTOR-TALK-Aktionen in die App brachte und einige Fehler behob. Der größte davon war, dass seit iOS 9.1 es nicht mehr möglich war, Bilder beim Erstellen eines Themas hochzuladen. Diese Version luden wir am 17.11. in den AppStore hoch, am 19.11. wurde sie durch Apple freigegeben und wir haben sie veröffentlicht.
Drei Tage später, am Sonntag den 22.11., meldeten sich mehrere Nutzer bei uns, die sich nicht mehr in der App anmelden konnten, sowohl unter iOS als auch unter Android. Da es mir unwahrscheinlich erschien, dass beide Versionen gleichzeitig einen Bug haben, nahm ich zunächst an, dass unser Login-Server ein Problem hat (wir hatten am Freitag eine neue Version ausgerollt, die ein paar Probleme beheben sollte). Also ging ich nach unserem Notfallplan vor, informierte meine Technikkollegen und zusammen schauten wir am Sonntagabend, ob es ein Problem mit dem Login-Server gibt. Das gab es allerdings nicht. Da die Beta-Version der App funktionierte, schaute ich mir dann an, welchen Unterschied es zwischen Beta und AppStore Version gibt. Denn eigentlich gab es keine, außer, dass die AppStore-Version auf einem anderen Computer (wir sprechen von einem Build-Server) kompiliert wurde (also aus dem Code die Binärdatei gemacht wurde).
Nach weiterem Suchen stellte sich noch am Sonntagabend heraus, dass der Build-Server zwar eine Version gebaut hatte und diese auch zu Apple gesendet hatte, allerdings beim Bauen eine veraltete Version der Login-Bibliothek für iOS genutzt hatte, die einen Bug hatte. Eigentlich ist dieser längst behoben und eine neue Version in unser interneren Bibliotheken-Verwaltung veröffentlicht, aber diese wurde nicht genutzt. Eigentlich wird so etwas durch eine Datei im System verhindert, in der steht, welche Version verwendet werden soll. Diese sogenannte Lock-Datei wurde allerdings nicht auf den neuen Build-Server übertragen. Mein Fehler.
Also: Der Fehler wurde gefunden, noch am Sonntagabend behoben, eine neue Version (1.2.6) gebaut und zu Apple übertragen. Dort gibt es für solche Fälle eine spezielle Kontaktmöglichkeit, um einen "Expedited Review" zu beantragen. Normalerweise bedeutet das, dass das Update innerhalb von 1-2 Tagen im AppStore zur Verfügung steht.
Leider war es auch Dienstag noch nicht veröffentlicht und ich bekam auch keine Nachricht von Apple, also kontaktierte ich Apple noch mal über das Formular. Am Mittwoch noch mal über die Hotline von Apple. Am Freitag kontaktierte ich direkt einen Mitarbeiter von Apple, dieser versprach mir, sich darum zu kümmern. Gestern Abend wurde das Update dann endlich freigegeben und steht seit ca. 23:30 Uhr im AppStore.
Fehler passieren und bugfreie Software wird es vermutlich nie geben. Aber wie verhindern wir, dass wieder eine Version in den AppStore gerät, die so kaputt ist? Wir haben Folgendes unternommen um das sicherzustellen:
Ich entschuldige mich für den Fehler und die Unannehmlichkeiten, ich hoffe so etwas passiert nicht noch mal und wir haben aus dem Fehler viel gelernt.
Viele Grüße, Philip |
Mon Nov 23 13:47:02 CET 2015 | Tim Nowaczynski | Kommentare (0) | Stichworte: motortalk, MOTOR-TALK
Übersicht der Berechtigungen im Play Store
Allgemeines zum Rechtesystem auf AndroidDamit eine App nicht beliebig auf alle Komponenten des Telefons und Daten eines Nutzers zugreifen kann, gibt es auf Android ein entsprechendes Rechtesystem. So braucht beispielsweise ein Taschenrechner keinen Zugriff auf meine SMS (und wenn doch, wäre ich auf die Erklärung gespannt). Was zunächst einfach klingt, gestaltet sich in der Praxis jedoch oftmals etwas komplizierter. Und so kommt es, dass wir auch in der MOTOR-TALK App Zugriff auf eine Berechtigung haben wollten, die wir eigentlich gar nicht brauchten.
Aber zunächst mal grundsätzlich dazu, wie Berechtigungen funktionieren. Hier muss man nun etwas differenzieren, denn mit der Veröffentlichung von Android M wurde da Vieles zum Positiven verändert. Dummerweise dauert es auf Android in der Regel sehr lange, bis der Großteil an Nutzern auf eine gerade veröffentlichte Version umsteigt.
Daher zunächst noch mal zum alten System, denn das hat ein paar Schwächen:
Eine Anwenderin wird bei der Installation gefragt, ob eine App beispielsweise vollen Netzwerkzugriff haben darf. Aber was heißt das eigentlich genau? Beziehungsweise was wäre dann eingeschränkter Netzwerkzugriff? Die Bezeichnung jedenfalls ist nicht sehr aufschlussreich. Und wofür braucht die App das? Im Play Store wird dazu nichts geschrieben. Und schlimmer noch: Man konnte nur allen Berechtigungen auf einmal zustimmen oder die App nicht installieren.
Android M geht da nun glücklicherweise einen anderen Weg: Einige Berechtigungen gelten als so harmlos, dass sie keine Zustimmung mehr benötigen. Der volle Netzwerkzugriff gehört beispielsweise dazu (denn das heißt im Grunde nichts Anderes, als dass die App auf das Internet zugreifen darf).
Alle anderen Berechtigungen werden zu der Zeit abgefragt, wo sie gebraucht werden und nicht länger bei der Installation. Unter Android M fragt die MOTOR-TALK App so zum Beispiel beim Speichern eines Bildes von der Kamera nach, ob sie berechtigt ist, auf den Speicher zu schreiben. Sollte einmal der Zusammenhang nicht unmittelbar klar sein, kann man als Entwickler dann auch an entsprechender Stelle eine Erklärung hinterlegen. Besser noch: Als Nutzer kann man sogar einer App diese Rechte im Nachhinein wieder entziehen.
Die Berechtigungen der MOTOR-TALK AppSo, nun konkret zu den Berechtigungen der aktuellen App-Version (1.2.6). Hier hat sich schon des Öfteren in der Vergangenheit etwas getan, einige Berechtigungen sind dazugekommen, andere wieder verschwunden, weil sie durch technische Änderungen überflüssig wurden.
Um mit unseren Servern zu kommunizieren, brauchen wir Internetzugriff, daher kommen die folgenden Rechte:
Für die Push Notifications (das sind die Benachrichtigungen, die Euer Telefon klingen lassen, sobald es etwas Neues gibt):
Zum Anhängen von Bildern an Beiträge sowie um aus der App heraus ein Foto zu speichern:
Bleiben noch zwei Berechtigungen übrig:
Wofür in alles in der Welt brauchen wir das? Die Frage stellte uns sprotte.78 völlig zu Recht. Ich konnte mir das zunächst auch nicht erklären und vermutete, es hängt mit den Push Notifications zusammen, denn da benutzen wir eine Softwarelösung von Google. Entwickler sprechen da von Libraries (Bibliotheken) und solche können auf Android eigene Berechtigungen mitbringen. Zum Schreiben dieses Artikels habe ich mich noch mal genauer auf die Suche gemacht und festgestellt, das ich mich geirrt habe, zumindest zum Teil.
Ohne zu sehr ins Detail gehen zu wollen, kann jede dieser Bibliotheken angeben, für welche Android-Version sie gedacht ist. Fehlt dieser Eintrag in einer davon, wird angenommen, dass alle Versionen unterstützt werden sollen. Und ganz automatisch werden dann die entsprechenden Einträge hinzugefügt, da es ohne die fraglichen Berechtigungen auf den ersten drei Android-Versionen zu Fehlern kommt. Wenn man also nicht im Nachhinein noch mal genau nachsieht, bekommt man das gar nicht mit. Und genau das ist uns passiert.
Ab der Version 1.2.7 wird die App also wieder mit ein paar Berechtigungen weniger auskommen, und das dank Eurer Mithilfe. |
Wed Oct 21 16:32:58 CEST 2015 | plaetzchen | Kommentare (1)
Thu Oct 15 13:44:17 CEST 2015 | plaetzchen | Kommentare (1)
Seit etwa 10 Monaten gibt es sie schon: Die MOTOR-TALK App für iOS und Android. Seitdem ist viel passiert und viele Dinge in der App haben sich geändert. Zusammen mit unseren Beta-Testern aus der Community haben wir seit Ende August an der neusten Version der App gearbeitet und diese auch vor Kurzem veröffentlicht. Version 1.2 bringt große Neuerungen mit und wir wollen in diesem Blog erklären, welche Änderungen es gab, warum es diese gab und ein paar Tipps und Tricks mit Euch teilen. Dabei soll es natürlich nicht allein bei diesem einen Artikel bleiben. Dieser Blog soll Euch einen Blick hinter die Kulissen des A-Teams geben und auch die Chance, mit uns Ideen zu diskutieren, vielleicht sogar schon bevor sie überhaupt in der Beta sind.
Die Beta findet Ihr übrigens auf der App Seite (ganz unten).
Der größte Unterschied, der sicher sofort allen ins Auge gesprungen ist, ist das neue Design der Foren- und Themen-Ansichten. Aber nicht nur das Aussehen ist neu, die App steht jetzt auf einem ganz anderen Fundament: Vor dieser neuen Version wurde in der App die mobile Webseite von MOTOR-TALK angezeigt, nur Header und Footer wurden abgeschnitten und einige Kleinigkeiten angepasst. Am Ende war es aber immer das: eine Website.
In der neuen Version sind diese Ansichten keine Webseite mehr, sondern werden vom Handy selbst generiert, wir Entwickler sprechen von einer "nativen" Ansicht. Welchen Vorteile bietet das? Die App muss jetzt nicht mehr neben den Nutzdaten (also die Texte Eurer Beiträge, die Namen von Foren usw.) auch die Darstellungsdaten (die Information, wo etwas stehen soll, Icons usw.) über das Handynetz laden. Die Folge: Die App wird schneller und verbraucht weniger MB Eurer mobilen Daten-Flatrate. Außerdem verhält sich die App jetzt an vielen Stellen so wie z. B. die Mail-App auf Eurem Handy. Auf dem iPhone kann man zum Beispiel immer oben links sehen, was unter der aktuellen Ansicht liegt. Bei Android können wir an Stellen, an denen es sinnvoll ist, Kontextmenüs per Long-Press anzeigen.
Ein weiteres Ziel der Änderungen war es, Menschen, die gerade in die Welt von MOTOR-TALK einsteigen oder sogar über die App das erste Mal mit MOTOR-TALK in Kontakt kommen, diesen Einstieg zu erleichtern und die Übersichtlichkeit zu verbessern. Über die Anzeige von Markenlogos und Fotos von Autos können auch Nutzer, die vielleicht nicht sofort den Unterschied zwischen E30 und F30 kennen, sehen, welches Fahrzeug in einem Forum gemeint ist.
Wir haben zu den ersten beiden Versionen (1.0 und 1.1) sehr viel Feedback von Euch bekommen, das uns sehr geholfen hat, gewisse Entscheidungen für die Version 1.2 zu treffen. Gerade die Themen Übersichtlichkeit und Navigation waren dabei immer wieder Kritikpunkte und erst durch diese große Änderung können wir diese radikal verbessern. Natürlich gab es auch zu der aktuellen Version 1.2 sehr viel Feedback und auch Kritik. Einige Verbesserungen sind in den letzten Tagen schon in die letzten Updates eingeflossen und es werden auch bald noch ein paar weitere Verbesserungen kommen.
Die Version 1.2 markiert für uns nicht das Ende der Entwicklung, sondern den Anfang einer App, die die Vorteile der Plattformen nutzen kann und an der wir noch sehr viel mit Euch zusammen verbessern wollen. |
Fri Oct 07 08:38:10 CEST 2016 | plaetzchen | Kommentare (0)
Alter EditorLange haben wir uns hier nicht mehr gemeldet, aber natürlich waren wir die letzten 10 Monate nicht untätig . Nachdem wir uns zunächst dem Thema Lesen von Beiträgen gewidmet haben (siehe letzter Blogpost), war in den letzten 10 Monaten das Erstellen von Themen und Beiträgen unser Hauptthema. Und gestern haben wir genau diese Themen mit dem Release der Version 1.4.0 abgeschlossen. Den extra Platz hier im Blog nutzen wir, um ein bisschen mehr über das Wie und Was zu schreiben.
Neuer Themen Editor In der Version 1.2. und der darauf folgenden gab es bereits einen Editor, der auch Bilder hochladen und Mentions verarbeiten konnte. Dieser Editor basierte allerdings technisch auf einer Funktion auf der MOTOR-TALK.de-Webseite, die nicht immer völlig zuverlässig war. Außerdem hätten Änderungen an der Webseite dazu führen können, dass das Abschicken in der App nicht mehr funktioniert. Deshalb haben wir uns entschlossen, einen neuen technischen Unterbau für den Editor zu bauen, der zuverlässiger ist und auch Anhänge und so weiter unterstützt.
Neuer Beitrags-EditorMit der Version 1.3. kam diese Änderung dann in die Apps, auch wenn davon zunächst nicht viel zu merken war, außer vielleicht für Nutzer, die vorher Probleme hatten. Um die neuen Features nutzen zu können, kam in der Version 1.3.11 unter iOS bzw. 1.3.9 unter Android ein neuer erweiterter Editor. Der machte alle Funktionen schneller erreichbar und ist insgesamt übersichtlicher. Es ist jetzt einfacher, Bildern einen Namen zu geben und Dateianhänge zu verwalten.
Mit der neuen Version 1.4.0 haben wir nun einen sehr ähnlichen Editor auch für neue Themen in die App gebracht. Aber natürlich reicht es nicht, einfach nur ein Titel-Feld zum Beitrag dazu zu packen, auch die Fahrzeug-Zuordnungen sollten aus der App möglich sein. Und so mussten wir dafür eine komplette neue API (eine Schnittstelle für die App) bauen. Unser jüngstes Team-Mitglied Sebastian hat hier ganze Arbeit geleistet und der MOTOR-TALK-Fahrzeugdatenbank beigebracht, mit der App zu reden.
Aber nach dem Release ist vor dem Release und deshalb geht es natürlich weiter mit der App. Unser nächstes großes Thema heißt "Suche". Wir danken allen Nutzern, die uns in der Beta oder einfach so ihr Feedback gegeben haben. Es war uns immer eine große Hilfe, ohne die wir nicht arbeiten könnten.
Viele Grüße aus der Werkstatt,
Das A-Team
Ben, Peter, Philip, Sebastian, Tim