Einträge zu ‘android’

Responsive Webdesign – eine Denkweise

24.07.2011

Heutzutage stehen eine Vielzahl von Devices für das auf die jeweiligen Bedürfnisse zugeschnittene Surferlebnis zur Verfügung. Ob mobil oder stationär. Darauf mittels gutem Webdesign zu reagieren liegt in der Verantwortung von Designern und Developern.

Fast jeder Kunde möchte seine Inhalte ebenfalls über eine mobile Version der eigenen Webseite verfügbar machen. Am besten spezifisch für iPhone, iPad, Android Phones & Pads, Blackberry, Netbooks und zahlreiche weitere Devices.

In den nächsten Jahren wird diese Entwicklung nicht zurückgehen, auf die es deshalb zu reagieren gilt.

Es gibt verschiedenste Möglichkeiten, um Informationen auf attraktive Weise auf verschiedensten Geräten zur Verfügung zu stellen und dabei eine konsistente Optik aufrecht zu erhalten. Zum Beispiel alternative Web-Frontends, Mobile (Web-)Apps im Browser, native Apps und vieles mehr.

Heute möchte ich euch eine Möglichkeit und zugleich ein Denkansatz im Webdesign vorstellen, mit dem sich zentral für verschiedenste Devices arbeiten lässt.

Responsive Webdesign

“Reagierendes Webdesign” ist ein Ansatz der darauf abzielt, dass Design und Development möglichst dynamisch und flexibel auf das Nutzerverhalten und Umfeld basierend auf Bildschirmauflösung, Plattform und Ausrichtung reagieren sollen.

Dieser Ansatz ist vorallem für Webprojekte relevant, wo das Erstellen einer eigenen, separaten Website oder mobile-App für die ganzen verschiedenen Geräte undenkbar, bzw. praktisch gesehen nicht relevant ist.

Dabei ist vorallem wichtig, dass es beim responsive Webdesign nicht nur um angepasste Layouts und automatisch skalierende Bilder geht, sondern dass es sich dabei um eine Denkweise im modernen Webdesign handelt.


Auflösung und Device



Hunderte verschiedene Bildschirme und Auflösungen existieren heute. Kleine und grosse Touch-Screens, grosse und kleine LED-Bildschirme – beliebig im hoch oder Querformat einsetzbar. Und es werden noch mehr dazukommen. Es steht also die Frage im Raum, wie man im Webdesign konkret mit dieser Situation umgehen soll.


Flexibilität statt Redundanz

Bereits vor einigen Jahren gab es flexible Layouts im Web, wobei diese äusserst selten aufzufinden waren und sich die Flexibilität oft stark in Grenzen hielt. Heutzutage gibt es wesentlich mehr technische Möglichkeiten, browserkompatible, flexible Layouts umzusetzen, auch wenn das an den an Photoshop und statische Layouts gewöhnten Designer ganz neue Anforderungen stellt. Dies ist ein Kernansatz von responsive Webdesign.

Hier einige kurz beschriebene Techniken im Frontend Development, um Flexibilität zu gewärhleisten:

  • Flexible Bilder

    Früher haben Bilder oft flexible Layouts zerstört. Bilder können heute mittels CSS einfach skaliert werden.Eine weitere Technik ist es, Bilder zu croppen (zuschneiden). Dies funktioniert mit einer Kombination aus einem <div> mit einem Background-Image das per CSS eingemitted wird und dessen <div> je nach Auflösung eine dynamische Breite hat. Mittels dem benutzerdefinierten HTML5-Attribut data-fullsrc und etwas javaScript (http://filamentgroup.com/examples/responsive-images) kann man ebenfalls ein niedrig und ein hochaufgelöstes Bild mit dem selben<img>-Tag gegeneinander austauschen, je nach Screen Auflösung.Vorteil: Weniger unnötiger Load auf mobilen Devices.


    Vergl.: Skalierende Bilder
  • Spezifische Layout Struktur

    Bei extremen Grössenunterschieden kann es nötig werden, das gesamte Layout anzupassen. Das kann mit einem neuen, separaten CSS geschehen, oder besser, mit CSS media queries. Damit lassen sich – wenn bestimmte Situationen zutreffen – bestehende CSS Klassen überschreiben oder neue ergänzen. So kann flexibel auf extreme Auflösungen reagiert werden. Alte Browser, die Media-Queries nicht unterstützen, werfen keine Fehler, sondern ignorieren diese einfach.

    • Code-Beispiel:

    • /* Smartphones (Hoch- und Querformat) ----------- */

      02

      @media only screen

      03

      and (min-device-width : 320px)

      04

      and (max-device-width : 480px) {

      05

      /* Hier können nun bestehende Klassen überschrieben werden oder neue styles hinzugefügt werden. */

      06

      }


    Mittels javaScript wäre es ebenfalls möglich solche Befehle zu implementieren, insbesondere wenn Browser unterstützt werden sollen, die media queries noch nicht unterstützen. Die allermeisten Smartphones und alle gängigen Browser aber, für die diese queries in erster Linie relevant sind, unterstützen sie auch.

  • Visibility – Inhalte verstecken und anzeigen.

    Oft ist es nötig auf mobilen Geräten auf diverse, nebensächlichere Zusatzinhalte zu verzichten, um den Blick des Betrachters auf das Wesentliche zu lenken. Hierfür eignet sich der CSS-Befehl display:none, der ebenfalls im Zusammenhang mit den media-queries flexibel eingesetzt werden kann.

  • Touchscreens – Finger statt Mauszeiger.

    Ein weiterer Aspekt ist das unterschiedliche Handling von Webseiten via Touchscreens. Diesen Aspekt möchte ich aber in einem separaten Artikel behandeln, den ich hier verföffentlichen werde.


Beispiel

Ich habe euch noch ein kleines, einfaches Beispiel gemacht
(einfach die Seite beliebig skalieren und die Ausgabe betrachten!)

http://projects.guavestudios.com/resp-design-test/

SBB iPhone App – Memory für die kleinen.

27.08.2010

Die SBB rüstet etliche Wagons für Familien mit kleinen Kindern zu fahrenden Spielplätzen um. Mit viel Detail und Charme kommen die neuen Wagons daher:

Wir hatten die Gelegenheit, die SBB Ticki Park Memory App für den Zeitvertreib während der Zugfahrt umzusetzen.
Verfügbar ist die App im iTunes Store für iPad, iPhone und iPod touch.

Memory ist ein einfaches aber erfolgreiches Spielprinzip, das keine langen Erklärungen benötigt, jedoch sehrwohl unterhalten kann.
Zudem ist es möglich, dass an einem Gerät mehrere Spieler spielen.
Also perfekt für Kinder und deren Eltern. Mittels lustig animierten Vektorgrafiken und Soundeffekten realisierten wir eine unterhaltsame
App ganz im Ticki-Stil. Eine kleine Highscore Liste bringt ein bisschen Wettbewerb – ohne grossen Leistungsdruck auszuüben.

Hier ein paar Shots:

Mobiles Web

16.07.2010

Im Zusammenhang mit den interaktiven Medien sind wir immer weniger an den klassischen Computer gebunden. Schon vor einigen Jahren haben Notebooks Ihren Besitzern eine gewisse Mobilität verliehen. Diese Geräte sind heute so ausgereift, dass es für den klassischen Anwender immer weniger wichtig wird, sich einen Mobilitäts- und Platzraubenden Desktop – Computer zuzulegen.
Zudem sind wir heute noch einen Schritt weiter – immer kleinere und praktischere Devices haben immer mehr Funktionalitäten.

Also habe ich es für wichtig befunden, hier kurz darauf einzugehen, was das für eine Auswirkung auf das Medium Internet hat.

Das Web wird mobil

Schon seit geraumer Zeit ist eine Entwicklung im Gange, die meines Erachtens schon Ausmasse erreicht hat, die es schlichtweg unmöglich machen, diese Veränderungen zu ignorieren.
Das Web wird mobil – Immer mehr Menschen (noch vordergründig jüngere) möchten unterwegs die Vorzüge und Möglichkeiten nutzen, die Ihnen das WWW bietet. Wer möchte nicht beispielsweise gerne beim Einkaufsbummel sehen können, wo es das selbe Produkt am günstigsten gibt und auch noch eine Wegbeschreibung dahin erhalten, die Bahnfahrkarte noch schnell online lösen, unterwegs Neuigkeiten lesen, oder während einer langen Zugfahrt mit Freunden schreiben oder TV schauen?

Alleine in der Schweiz schätzt man, das etwa 15% der Bevölkerung bereits ein Smartphone besitzt. Ausserdem sollen alleine in der Schweiz rund 600 000 Personen ein IPhone besitzen (Quelle: http://www.mfx.ch/2009/12/19/statistik-zum-iphone-in-der-schweiz/). Tendenz natürlich steigend. Auch die Datentarife werden (wenn auch etwas verzögert) langsam erschwinglich.

Moderne Anwendungen

Künftig können mittels Augmented Reality, diversen Tags und dem WWW auch stärkere Verbindungen zwischen dem “realen Leben” und dem “virtuellen Profil” hergestellt werden. Das wird starke Auswirkungen auf das Interaktionsdesign haben (Anwendungen sind Touch & Surface Computing, Augmented Reality, Real<->Social,…)

  • Ein Beispiel ist Lego. Hier kann man sich im Laden eine Lego-Packung mit einem Tag vor einen Bildschrim halten, dieser Zeigt einem den Packungsinhalt dann funktional und zusammengebaut an und man das Objekt rotieren und sich genau ansehen, was man denn da kauft. Auch im WWW gibt es diese Möglichkeit. Weitere informationen dazu hier.
  • Um die Verknüpfung eines “realen Ladenbesuchs” mit Social Media hat sich letztens Die Kleidermarke “DIESEL” bemüht. Eine Diesel-Cam in den Stores bietet die Möglichkeit, sich selbst im neuen Outfit zu fotografieren, das Foto auf sein Facebook Profil zu stellen und sich dann gleich Meinungen einzuholen. Hier gibts mehr Infos.

Natürlich gibts noch etliche Beispiele. Ich freue mich auch über mehr Beispiele von euch!

Die Aufgabe …

… die wir als digital Media Agenturen haben ist, uns auf diese Entwicklung frühzeitig (wenn nicht schon geschehen: JETZT) einzustellen, sie genau zu untersuchen, auszutesten und sich keinesfalls vor ihr zu verschliessen.

  • Deshalb optimieren wir schon seit geraumer Zeit als ersten Schritt bei Guave Studios unsere Microsites und Websites für mobile Devices.
    Die Zugänglichkeit einer Webseite oder Applikation über mobile Endgeräte muss gewährleistet sein, die Zielgruppe ist gross und die Accessibility-Anforderungen beschränken sich heute nichtmehr nur auf klassische Computer.
  • Der Entwicklung von Apps für IPhones, IPads und Android Devices haben wir uns ebenfalls angenommen – einige Apps sind in Entwicklung – wir werden hier noch genauer darüber berichten.
  • Touch- und Multitouchanwendungen mit Webanbindung (z.B. Social-Media) Anbindung beispielsweise für Touchscreens oder Geräte auf Messen oder in Filialen entwickeln wir auch seit kurzem.

Wir sind gespannt, wo uns diese Entwicklung hinführen wird und sind offen für Neues!

Wenn ihr auch Erfahrungen gemacht habt, oder interessante Projekte in dem Zusammenhang gefunden habt, zögert bitte nicht, uns diese bei den Kommentaren zu posten!
Gruss
Sandro


Hello Air, hello Android :C|

07.06.2010

Adobe AIR für Android ist da. Mit CS5 kann man direkt für Android APK Pakete erstellen. Dieser Artikel erklärt wie man AIR auf Android mit FlashDevelop entwickeln kann.

Mit Guave Studios einen Blick auf Adobe AIR

Da wir bei Guave Studios daran intressiert sind, in den verschiedensten Kanälen interaktive Inhalte bereitzustellen, beschäftigen wir uns intensiv mit den Möglichkeiten, die uns mobile Endgeräte bieten. Ein wichtiger Faktor für uns ist eine möglichst plattformunabhänige Lösung, um keinen unnötigen Aufwand zu generieren. Unter Plattformunabhänig verstehen wir nicht “Eine generelle Lösung für alle” sondern “Eine Lösung für den Einzelnen basierend auf der Lösung für alle”.  Adobe AIR bietet einen gemeinsamen Nenner. Ich denke, dass für viele Applikationen – vorallem im promotionalen Bereich – Adobe AIR ausreicht. Sollte dies nicht der Fall sein, kann eine spezielle Lösung in betracht gezogen werden.

AIR for Android

AIR gibt es für den Android Emulator und auch die Devices mit Android 2.1 (7) oder 2.2 (8). Derzeit befindet sicht AIR noch in der Entwicklung (Beta). Benötigt wird ebenfalls das Android SDK.

Flash CS5

Nachdem man die Vorraussetzungen (AIR auf dem Device/Emulator, Android SDK) installiert und konfiguriert hat (weiter unten) kann man relativ schnell mit der Entwicklung loslegen.

Der Workflow gestaltet sich recht einfach. Unter File -> AIR Android Settings kann man die Parameter für die Erstellung anpassen. Hier hat man die Möglichkeit einen Schlüssel zu generieren der danach zum signieren verwendet wird. Beim Veröffentlichen wird die APK generiert und automatisch bei angschlossenem Device oder Emulator direkt auf dem Endgerät gestartet. Somit kann auch sofort getestet werden.

Nur: Wer codet denn in CS5 ;) ?

Flash Develop

(Tutorial)

Wir hätten auch die Möglichkeit mit Flash Develop über CS5 zu publishen. Ich zeige hier aber die Lösung ohne CS5 benützen zu müssen.

Mit ein paar Einstellungen und einem Template bekommen wir das auch auf Flash Develop oder anderen IDEs zum laufen. Der ganze Worklfow kann per Kommandozeile nachgebaut werden. Selbst debugging direkt in Flash Develop wird möglich.

Hierfür brauchen wir aber noch folgendes:

Dann einfach die Flex SDK entpacken. In denselben Ordner können dann die AIR 2.5 Dateien entpackt werden. Dann noch die playerglobal.swc in den Ordner flex40sdk\frameworks\libs\player\10.1 entpacken.

Android SDK entpacken und Setup ausführen. Die aktuellen APIs updaten. Um testen zu können benötigen wir hier jetzt den Emulator. (USB weiter unten).  Hier wird Android 2.1 oder 2.2 erstellt. Auf der Seite AIR 2.5 SDK muss man noch die APK Datein für den Emulator und eventuell für das Device runterladen. Ich würde empfehlen, den AndroidSDK/tools Pfad zu den Umgebungsvariablen hinzuzufügen (Rechtsklick auf Computer->Erweiterte Systemeinstellungen -> Umgebungsvariablen-> PATH)

Wir können jetzt in der Kommandozeile einen Sever starten mit adb start-server. Wenn wir jetzt den Emulator per emulator -avd [EmulatorName] starten. Mit “adb devices” sehen wir ob unser Emulator erkannt wurde. Sonst nochmal per “adb kill-server” und “adb start-server” probieren.

adb-kill-startserver

Wenn wir jetzt das air.apk für den Android Emulator ausgepackt haben, können wir per adb install Runtime_Emulator_Eclair_20100517.apk (Eclair ist Android 2.1)

Flash Develop (ab 3.1.1) normal installieren und mit dem Flex SDK verbinden (über Einstellungen->AS3 Context->Path to Flexsdk)

Das Flash Develop Template airandroid.fdz kann jetzt ausgeführt werden. Dies ist standardmässig auf Windows mit Flash Develop verlinkt und wird dann automatisch installiert. Alternativ kann man auch die Datei auf .zip umbenennen und in den Flash Develop/Projects Ordner entpacken.

Mit Flash Develop kann jetzt ein Projket vom Typ “Air Android AS3″ erstellt werden. Der Parameter Name ist Pflicht und sollte wenn möglichst klein und ohne Leerzeichen geschrieben werden. Der Package Path kann ich auch empfehlen auszufüllen, da die erstellte Android ApplikationsID sich dann aus packagepath.projectname zusammensetzt.

AIR Android Flash Wizzard

Wir können das Projekt jetzt anlegen.

Im src Ordner kann jetzt die Datei Main.as editiert werden. Ein kleines trace(“Hello World”); sollte für unseren ersten Test reichen.

Im Projektordner scripts sollte man noch die settings.bat anpassen um individuelle Keys zu generieren. Es kann auch hier direkt ein Key hinterlegt werden. (CERTIFICATE_FILE). Es kann hier auch ein Passwort spezifiziert werden. Dies ist dann aber während der ganzen Zeit in der Datei gespeichert. Ich würde empfehlen während des Entwicklungsprozesses den SelfSigned Key zu verwenden und erst beim Release auf den richtigen Code Signingkey zu verwenden. Derweilt wird das Passwort automatisch beim Debuggen aus der settings.bat gelesen.

Endlich testen!

Jetzt können wir das Projekt direkt per F5 oder dem Run Button testen.

Ablauf:

  1. .swf File wird gebuildet
  2. key wird gecheckt und evtl generiert
  3. IP Addresse wird ermittelt um den Debugger zu connecten (Erste IPv4 im ipconfig)
  4. Das APK wird gebuildet und mit dem Key gesigned
  5. Die Applikation wird auf dem verbundenen Device deinstalliert (falls installiert)
  6. Die Applikation wird auf dem verbundenen Device installiert
  7. Die Applikation wird auf dem Device gestartet
  8. Der Debugger connected zum Debugger auf der hinterlegten IP
  9. Hello Android müsste in der Console auftauchen

Anmerkungen zum Device USB Debugging

Das heikelste war es, mein HTC Desire mit Android 2.1 für die Entwicklung zu präparieren. Ich habe viele Informationen im Internet gefunden, jedoch nur wenige waren erfolgreich.

Was ich speziell zum HTC Desire sagen kann ist, den Treiber der auf der SD Card ist zu benutzen. Dieser wird mit HTC Sync installiert. Aktiviert man auf dem Device das USB Debugging, sieht das Device mit “adb devices”.

Für das Flash Debugging wird WLAN Access benötigt. Mit einer zugewiesenen IP (DHCP zb) kann man das Device zum Debugger verbinden.

Und voila, viel Spass beim Applikationen schreiben.

Links