53
Web Layouts für Smartphones, Tablets und Desktops Henning Schmidt, hedersoft GmbH - Entwicklercamp 2013 - 12.03.2013

Entwicklercamp responive web design

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Entwicklercamp   responive web design

Web Layouts für Smartphones, Tablets und Desktops

Henning Schmidt, hedersoft GmbH- Entwicklercamp 2013 -

12.03.2013

Page 2: Entwicklercamp   responive web design

Über mich

Studium der Wirtschaftsinformatik in PaderbornSeit 15 Jahren Softwareentwicklung, Beratung und

Administration im Lotus (IBM) UmfeldGründer und Geschäftsführer der hedersoft GmbHErreichbar unter:

mail: hschmidt(at)hedersoft(dot)de twitter: schmhen / planetntf / hedersoft facebook: schmhen Skype: hs.smi Blog: www.schmhen.de / www.planetntf.de Xing, LinkedIn

Page 3: Entwicklercamp   responive web design

Agenda

HerausforderungAnsatz: Responsive Web Design (RWD)FrameworksTwitter BootstrapBootstrap und Xpages It‘s demo time!Vorteile und Nachteile von RWD, AusblickOffene Diskussion

Page 4: Entwicklercamp   responive web design

Herausforderung

Bisher Web Entwicklung für Desktop Browser2007 Einführung des iPhone, 2010 folgt das iPad,

2008 kommt AndroidKlassische Browseranwendungen nur bedingt für

Smartphones und Tablets geeignetEntwicklung separater Browser GUIs oder Apps =

Hoher Entwicklungs- und Wartungsaufwand IDEE: Anwendungen skalieren automatisch auf

verschiedenen Endgeräten, aber wie?

Page 5: Entwicklercamp   responive web design

Herausforderung

Möglichkeit 1: Erkennen des UserAgent Nachteil: User Agent kann in den meisten

Browsern umgestellt werden Nachteil: User Agent sagt nur bedingt

etwas über die Darstellungsmöglichkeiten eines Endgeräts

Nachteil: Es gibt so viele UserAgents, für welche Entwickeln wir?

Möglichkeit 2: Erkennen der Fenstergröße Das klingt doch gut, und was dann?

Page 6: Entwicklercamp   responive web design

Ansatz: RWD

Responsive Web Design RWD Ethan Marcotte hat den Begriff 2010 eingeführt auf „

A List Apart“ (Issue No. 306) Ziel: Seiten gestalten, die auf allen Viewports vernünftig

skalieren und ansprechend aussehen

Element 1: Fluid Grids

Element 2: Fluid Images

Element 3: Media Queries

Page 7: Entwicklercamp   responive web design

RWD: Fluid Grids

Fluid Grids IE hat Schuld! Problem: IE skaliert Fonts

nicht, wenn diese in px angegeben werden Lösung: Fonts proportional angeben mit em!

Zielgröße in px / Containergröße in px = Größe in emBeispiel: 24px / 16px = 1.5em

Hey, was für Schrift gilt, das geht doch bestimmt auch mit anderen Elementen, oder?

Page 8: Entwicklercamp   responive web design

RWD: Fluid Grids

Fluid Grids Annahmen:

• 7 Spalten à 124px +Spaltenabstand 20px = 988px

• Bei Schriftgröße von 16px ergibt sich also:988px / 16px = 61,75em=> max-width:61.75em

Damit skaliert die Seite bei Fenstergrößen < 988px und lässt saubere Ränder bei Fenstergrößen > 988px!

ABER: Das ist doch trotzdem noch ein Fixed Grid mit festen Pixelangaben, die nur in em angegeben werden!

Wir wollen die Elemente aber nicht nur proportinal zur Schriftgröße angeben, sondern auch das Verhältnis der Elemente untereinander!

Page 9: Entwicklercamp   responive web design

RWD: Fluid Grids

Fluid Grids Die Lösung: Prozentuale

Größenangaben! Wie können die Größen berechnet werden?

Zielgröße in px / Containergröße in px = Größe in %Moment, das hatten wir doch schon!

Also:

Page 10: Entwicklercamp   responive web design

RWD: Fluid Grids

Fluid Grids Grid im Grid:

Die Containergröße mussangepasst werden!

ACH

TUN

G: B

row

ser E

igen

heite

n be

acht

en!

Page 11: Entwicklercamp   responive web design

RWD: Fluid Images

Die Seiten skalieren nun wunderbar, aberBilder nicht!

Ein kleiner Trick hilft in modernen Browsern:

ABER: IE vor Version 8 und FF vor Version 3 auf Windows Plattformen machen nicht mit!

Nun ist guter Rat teuer…

Page 12: Entwicklercamp   responive web design

RWD: Fluid Images

Firefox können wir nicht retten!Wir können aber davon ausgehen, dass FF < V3.0 im

Promillebereich liegt.Für den IE liefert MS die Lösung: AlphaImageLoader

(ab IE 5.5)Ein JavaScript, dass beim Laden

einer Seite ausgeführt wird,setzt den AlphaImageLoader Filterauf alle Bilder

Page 13: Entwicklercamp   responive web design

RWD: Media Queries

Das Skalierungsproblem haben wirim Griff. Eine gut skalierende für den Desktopoptimierte Seite passt aber nicht auf einSmartphone!

Elemente der Seite müssen neu organisiert werdenDie Lösung: Media Queries!Mit CSS 2.1 Einführung von Media TypesSeit CSS3 Erweiterung der Types zu Media Queries

Page 14: Entwicklercamp   responive web design

RWD: Media Queries

Media Types: all, braille, embossed, handheld, print, projection, screen,

speech, tty, tv

Media Queries = Media Types + Bedingungen width, height, device-width, device-height, orientation,

aspect-ratio, device-aspect-ratio, color, color-index, monochrome, resolution, scan, grid

Page 15: Entwicklercamp   responive web design

RWD: Media Queries

Was haben wir gewonnen? Durch Media Queries können die Fenstergrößen abgefragt

und CSS dynamisch für die verschiedenen Größen geladen werden!

Damit ist unsere Eingangsbedingung erfüllt Seiten können auf verschiedenen Fenstergrößen anders

dargestellt werden Elemente können ein- und ausgeblendet werden Elemente können neu organisiert werden

Page 16: Entwicklercamp   responive web design

RWD

Beispiel: Collaboration Today

Page 18: Entwicklercamp   responive web design

Frameworks

Am weitesten verbreitet sind twitter Bootstrap, Skeleton und Foundation ZURB

Page 19: Entwicklercamp   responive web design

Frameworks

Entscheidung: twitter Bootstrap Sehr weit verbreitet Apache 2.0 Lizenz Großer Fundus an Entwicklerinformationen

• Bootstrap Homepage, Bootstrap Blog, Private Blogs, StackOverflow, …

Hat viele UI Elemente und Widgets an Bord Optisch ansprechend und anpassbar Gute Beschreibung für Einsteiger

Page 20: Entwicklercamp   responive web design

twitter Bootstrap

HintergrundWas brauchen wir und wie ist Bootstrap aufgebaut?Grundgerüst – Die Grid StrukturBasis CSSUI Komponenten JavaScriptCustomize

Page 21: Entwicklercamp   responive web design

twitter Bootstrap

Hintergrund Internes Projekt bei twitter Inkonsistenzen projektübergreifend in den Griff

bekommen Open Source seit August 2011 Im Februar 2012 populärstes GitHub Projekt Unterstützt alle gängigen Browser Unterstützt HTML5 und CSS3 Seit Version 2.0 mit RWD Integration

Page 22: Entwicklercamp   responive web design

twitter Bootstrap

Was brauchen wir und wie ist Bootstrap aufgebaut? Herunterladen des ZIP Files mit

kompilierten Dateien oder Sourcen Es gibt:

• Das Grundgerüst• Basis CSS Elemente• Komponenten• JavaScript Plugins (jQuery basiert)• RWD CSS (bootstrap-responsive.css)

Page 23: Entwicklercamp   responive web design

twitter Bootstrap

Grundgerüst – Die Grid Struktur HTML5 wird als DocType benötigt! Fixed und Fluid Grids mit 12 Spalten mit 940px ohne RWD

Features. Mit RWD Features 724px und 1170px.

Page 24: Entwicklercamp   responive web design

twitter Bootstrap

Grundgerüst – Die Grid Struktur Spalten können versetzt werden (Offset) Spalten können eingebettet werden (Nested)

Page 25: Entwicklercamp   responive web design

twitter Bootstrap

Grundgerüst – Die Grid Struktur Layouts

• Fixed Layout (940px!)• Fluid Layout

Page 26: Entwicklercamp   responive web design

twitter Bootstrap

Grundgerüst – RWD RWD ist bei Bootstrap nicht automatisch aktiviert! Bootstrap-responsive.css muss eingebunden werden

Folgende Devices und Bildschirmgrößen werden unterstützt

Page 27: Entwicklercamp   responive web design

twitter Bootstrap

Grundgerüst – RWD Die zugehörigen Media Queries

CSS Klassen zum Anzeigen undVerbergen von Elementen auf unterschiedlichen Devices

Page 28: Entwicklercamp   responive web design

twitter Bootstrap

Basis CSS Typographie

• <h1> - <h6>• Default font-size ist 14px mit einer Zeilenhöhe von 20px• <small>, <strong> und <em> für kleine, fette und kursive Zeichen• .text-left, .text-center und .text-right• Vordefinierte Textfarben durch CSS Klassen

Page 29: Entwicklercamp   responive web design

twitter Bootstrap

Basis CSS Typographie

• Addressformatierung mit <address>• Listenformatierung: .unstyled, .inline, <dl><dt><dd>, .dl-horizontal

Code• <code>, <pre>, .pre-scrollable (max-height: 350px)

Tables• .table, .table-striped, .table-bordered,

.table-hover, .table-condensed,

.success, .error, .warning, .info

Page 30: Entwicklercamp   responive web design

twitter Bootstrap

Basis CSS Forms

• .checkbox, .radio, .inline• .input-prepend, .input-append, .add-on• Buttons statt Text

• Inputs in der Größe anpassen• Auch mit Grid Eigenschaften!

Page 31: Entwicklercamp   responive web design

twitter Bootstrap

Basis CSS Buttons (sehen im IE9 anders aus!)

Page 32: Entwicklercamp   responive web design

twitter Bootstrap

Basis CSS Images

Icons (von Glyphicons, Lizenz: CC BY 3.0)• 140 Icons in schwarz und weiß

Page 33: Entwicklercamp   responive web design

twitter Bootstrap

Komponenten Button groups Button dropdowns Navigation (tabs, pills, lists) Navbar Labels Badges Page header und Hero Unit Thumbnail Alerts

Progress Bar Modals (Dialoge) Dropdowns Tooltips Popovers Accordion Carousel Typeahead

Page 34: Entwicklercamp   responive web design

twitter Bootstrap

Komponenten Dropdowns

Button groups

Page 35: Entwicklercamp   responive web design

twitter Bootstrap

Komponenten Button Dropdowns

Navs

Page 36: Entwicklercamp   responive web design

twitter Bootstrap

Komponenten Navbar

} RWD

Page 37: Entwicklercamp   responive web design

twitter Bootstrap

Komponenten Labels und Badges

Page 38: Entwicklercamp   responive web design

twitter Bootstrap

Komponenten Alerts und Progress Bars

Dismiss benötigtjQuery Plugin!

Ab IE10 und Opera 12!

Page 39: Entwicklercamp   responive web design

twitter Bootstrap

Javascript (jQuery) Transitions Modals (Dialoge) Dropdown Scrollspy Tab Tooltip Popover

Alert Button Collapse Carousel Typeahead Affix

Page 40: Entwicklercamp   responive web design

twitter Bootstrap

Javascript Modals (Dialoge)

Page 41: Entwicklercamp   responive web design

twitter Bootstrap

Javascript Tooltips und Popovers

Page 42: Entwicklercamp   responive web design

twitter Bootstrap

Javascript Carousel

Page 43: Entwicklercamp   responive web design

twitter Bootstrap

Customizing - Komponenten

Page 44: Entwicklercamp   responive web design

twitter Bootstrap

Customizing – jQuery Plugins

Page 45: Entwicklercamp   responive web design

twitter Bootstrap

Customizing – Variablen

Page 46: Entwicklercamp   responive web design

Bootstrap und XPages

Was brauchen wir? bootstrap.css, bootstrap-responsive.css, bootstrap.js,

jquery.js, Icons Neue Datenbank Bei lokaler Entwicklung Anonymous = Manager Falls Elemente der Extension Library verwendet werden, so

muss diese lokal und ggf. auf dem Server installiert seinWie starten wir?

Datenbank in DDE öffnen Datenbankeinstellungen anpassen (u.a. HTML 5!) Bootstrap Elemente einbinden Neue Xpage erstellen und los geht‘s!

Page 47: Entwicklercamp   responive web design

Bootstrap und XPages

It‘s Demo time!

Page 48: Entwicklercamp   responive web design

RWD: Vor- und Nachteile

Nachteile Vollständig Client-basiert

• Kompletter Download nötig / Ladezeiten• CSS steuert Darstellung

Ältere Mobile Browser unterstützen teilweise kein HTML5 / CSS3

Nicht für alle Applikationen geeignet

Page 49: Entwicklercamp   responive web design

RWD: Vor- und Nachteile

Vorteile One Design to rule them all Schnellere Entwicklungszeiten Einfacherer Wartung Spart Zeit und Geld! Besseres SEO durch eine URL Social Sharing mit einer URL Web Analyse / Tracking Unterstützung neuer Endgeräte

Page 50: Entwicklercamp   responive web design

RWD: Ausblick

Ist RWD schon das Ende der Fahnenstange? NEIN!

RESS steht bereits in den Startlöchern Responsive Design and Server Side Components Client Feature Detection Laden unterschiedlicher Module für unterschiedliche

Endgeräte Mustache, Detector, WURFL, DeviceAtlas

Page 51: Entwicklercamp   responive web design

RWD: Zusammenfassung

2010 von Ethan Marcotte beschrieben2011 Twitter Bootstrap Open SourcedBootstrap seit Version 2.0 als RWD VerfügbarBootstrap lässt sich ohne weiteres in Xpages

einbindenRESS steht als nächste Evolutionsstufe von RWD

bereits in den Startlöchern

Page 52: Entwicklercamp   responive web design

Fragen / Diskussion

Page 53: Entwicklercamp   responive web design

Quellenverzeichnis

http://responsive.vermilion.com/compare.php http://www.lukew.com/ff/entry.asp?1392 http://www.lukew.com/ff/entry.asp?1509 http://dmolsen.com/2012/02/21/ress-and-the-evolution-of-responsive-web-design/ http://twitter.github.com/bootstrap/customize.html http://www.getskeleton.com/ http://foundation.zurb.com/ http://en.wikipedia.org/wiki/Responsive_web_design http://de.wikipedia.org/wiki/Responsive_Design https://www.redant.com/articles/design-and-build/the-anywhere-web-the-pros-and-cons-of-responsive-web-

design/ http://smallbusiness.yahoo.com/advisor/pros-cons-responsive-design-023558855.html http://www.miamiherald.com/2013/01/06/3168547/weigh-pros-cons-of-responsive.html http://thepam.blogspot.de/2011/08/pros-and-cons-of-responsive-web-design.html http://dapurpixel.com/2012/02/28/responsive-web-design-pros-and-cons/ https://dev.twitter.com/blog/bootstrap-twitter http://en.wikipedia.org/wiki/Twitter_Bootstrap http://webexpedition18.com/articles/responsive-css-frameworks/ http://speckyboy.com/2011/11/17/15-responsive-css-frameworks-worth-considering/ http://webdesignledger.com/tools/8-useful-responsive-css-frameworks http://alistapart.com/article/responsive-web-design http://alistapart.com/article/fluidgrids http://unstoppablerobotninja.com/entry/fluid-images