Top Banner
@theAgileMATT Mobile WebApps Matt Harasymczuk [email protected] www.matt.harasymczuk.pl 2011-03-29
113

2011-03 mobile web apps development

Aug 29, 2014

Download

Technology

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2011-03 mobile web apps development

@theAgileMATTMobile WebApps

Matt [email protected]

2011-03-29

Page 2: 2011-03 mobile web apps development

@theAgileMATT

Matt Harasymczuk

• http://www.matt.harasymczuk.pl

[email protected]

!

• MBP sp. z o.o, CRM application developer

• Poznan University of Technology, Network Engineer (intern)

• Consdata.pl, Network Administrator

• Hera sp. z o.o, CRM application developer

Page 3: 2011-03 mobile web apps development

@theAgileMATT

Abstract

Page 4: 2011-03 mobile web apps development

@theAgileMATT

What is mobile?!

Page 5: 2011-03 mobile web apps development

@theAgileMATT

What’s not...

Page 6: 2011-03 mobile web apps development

@theAgileMATT

Say what!?

Page 7: 2011-03 mobile web apps development

@theAgileMATT

Why?!

Page 8: 2011-03 mobile web apps development

@theAgileMATT

Money, so they say Is the root of all evil today.

But if you ask for a raise it's no surprise that they're

giving none away.Pink Floyd - Money

Page 9: 2011-03 mobile web apps development

@theAgileMATT

Really Why?!

Page 10: 2011-03 mobile web apps development

@theAgileMATTGreed is good! Gordon Gekko

Page 11: 2011-03 mobile web apps development

@theAgileMATT

Why no...

Page 12: 2011-03 mobile web apps development

@theAgileMATTBig brother is watching you! George Orwell’s 1984

Page 13: 2011-03 mobile web apps development

@theAgileMATTI’d still gonna hit that! Duke Nukem

Page 14: 2011-03 mobile web apps development

@theAgileMATTDifferent approach to development Cloud Computing

Page 15: 2011-03 mobile web apps development

@theAgileMATTApplication development pattern in 21st century

Page 16: 2011-03 mobile web apps development

@theAgileMATTCloud Computing Availbility and Scalibility

Page 17: 2011-03 mobile web apps development

@theAgileMATTTarget tablets and smartphones

Page 18: 2011-03 mobile web apps development

@theAgileMATTmarket share Nov 2010 - Jan 2011

Page 19: 2011-03 mobile web apps development

@theAgileMATTTablets Android, iOS

Page 20: 2011-03 mobile web apps development

@theAgileMATTSmartphones Android, iOS, RIM

Page 21: 2011-03 mobile web apps development

@theAgileMATT

Windows Phone 7?!

Page 22: 2011-03 mobile web apps development

@theAgileMATTIs it good? hmm, IMHO yes, but...

Page 23: 2011-03 mobile web apps development

@theAgileMATT

Somethings stinks here!

Page 24: 2011-03 mobile web apps development

@theAgileMATT

Is it?!

Page 25: 2011-03 mobile web apps development

@theAgileMATT

YES IT IS!

Page 27: 2011-03 mobile web apps development

@theAgileMATT

srsly wtf!

Page 28: 2011-03 mobile web apps development

@theAgileMATT

We have already 2011!

October 2006 March 2009

Page 29: 2011-03 mobile web apps development

@theAgileMATT

IE 9 is out there...

Page 30: 2011-03 mobile web apps development

@theAgileMATT

and it is good... finally!

Page 31: 2011-03 mobile web apps development

@theAgileMATT

Verdana IE 9Microsoft Flight Simulator

Page 32: 2011-03 mobile web apps development

@theAgileMATT

and XMLHttpRequest

Page 33: 2011-03 mobile web apps development

@theAgileMATT

created by the developers of Outlook Web Access

(by Microsoft) for Microsoft Exchange Server 2000

on March 1999

Page 34: 2011-03 mobile web apps development

@theAgileMATTDo it. Do it now! Beavis and Butthead

Page 35: 2011-03 mobile web apps development

@theAgileMATT

Transform your current WebApp to mobile

Page 36: 2011-03 mobile web apps development

@theAgileMATTWasted! Screen size

Page 37: 2011-03 mobile web apps development

@theAgileMATT

Not at all!

Page 38: 2011-03 mobile web apps development

@theAgileMATT

@media screen and (max-device-width: 480px) { !

/* ... CSS goes here ... */ !

}

<link media="only screen and (max-device-width: 480px)" href="mobile.css" type= "text/css" rel="stylesheet">

or

Page 39: 2011-03 mobile web apps development

@theAgileMATT

Tablets?

Page 40: 2011-03 mobile web apps development

@theAgileMATTTablet orientation

Page 41: 2011-03 mobile web apps development

@theAgileMATT

iPad

• The first thing I do is lock the layout's resolution to a 1:1 ratio so that each pixel exactly lines up with the pixels in the iPad's screen.

!

<meta name="viewport" content="width=768px, minimum-scale=1.0, maximum-scale=1.0" />

then

@media only screen and (orientation:portrait) {

/* ... CSS goes here ... */

}

Page 42: 2011-03 mobile web apps development

@theAgileMATTtraffic overload c’mon it is still mobile device!

Page 43: 2011-03 mobile web apps development

@theAgileMATT

HTTP User Agent

Page 44: 2011-03 mobile web apps development

@theAgileMATTAndroid Mobile

Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One

Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko)

Version/4.0 Mobile Safari/530.17 –Nexus

Page 45: 2011-03 mobile web apps development

@theAgileMATTiOS Mobile

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us)

AppleWebKit/531.21.10 (KHTML, like Gecko) Version/

4.0.4 Mobile/7B334b Safari/531.21.10

Page 46: 2011-03 mobile web apps development

@theAgileMATTFirefox 4 Desktop

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0)

Gecko/20100101 Firefox/4.0

Page 47: 2011-03 mobile web apps development

@theAgileMATTChrome Desktop

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7)

AppleWebKit/534.24 (KHTML, like Gecko) Chrome/

11.0.696.16 Safari/534.24

Page 48: 2011-03 mobile web apps development

@theAgileMATTHTML or HTML5?!

Page 49: 2011-03 mobile web apps development

@theAgileMATT

WTF HTML5?!

Page 50: 2011-03 mobile web apps development

@theAgileMATT

HTML standard

• new HTML tags

• CSS3

• new JS API

Page 51: 2011-03 mobile web apps development

@theAgileMATT

JavaScript

Page 52: 2011-03 mobile web apps development

@theAgileMATT

AJAX vs SEO

Page 53: 2011-03 mobile web apps development

@theAgileMATT

Fear not!

Page 54: 2011-03 mobile web apps development

@theAgileMATT

#! - hash bang

Page 55: 2011-03 mobile web apps development

@theAgileMATT

#!/usr/bin/env python !

or !

#!/bin/sh !

or !

...

Page 56: 2011-03 mobile web apps development

@theAgileMATT

http://twitter.com/#!mattharasymczuk !

-> !

Google will see: http://twitter.com/mattharasymczuk

Page 57: 2011-03 mobile web apps development

@theAgileMATT

Application Cache -- index.html

<html manifest="cache.manifest">

Page 58: 2011-03 mobile web apps development

@theAgileMATT

Application Cache -- cache.manifest

CACHE MANIFEST !# VERSION 2011-03-22 19:43 !CACHE: /css/style.css /css/mobile.css /css/print.css /css/reset.css !/img/favicon.png !/js/jQuery.js /js/google-analytics.js /js/modernizr.js

Page 59: 2011-03 mobile web apps development

@theAgileMATT

That’s it?

Page 60: 2011-03 mobile web apps development

@theAgileMATT

Application Cache Summary

• <!DOCTYPE html>

• MIME type: text/cache-manifest

!

• ... and that’s it :}

Page 61: 2011-03 mobile web apps development

@theAgileMATT

Web Storage

textarea.addEventListener('keyup', function () {! window.localStorage['value'] = area.value;! window.localStorage['timestamp'] = (new Date()).getTime();!}, false);!textarea.value = window.localStorage['value'];!

Page 62: 2011-03 mobile web apps development

@theAgileMATT

Why?

Page 63: 2011-03 mobile web apps development

@theAgileMATT

<textarea id="draft" rows="10" cols="30"></textarea>

Page 64: 2011-03 mobile web apps development

@theAgileMATT

function saveMessage() { var message = document.getElementById("draft"); localStorage.setItem("message", message.value) }

Page 65: 2011-03 mobile web apps development

@theAgileMATT

// 500 ms = 0.5 sek setInterval(saveMessage, 500);

Page 66: 2011-03 mobile web apps development

@theAgileMATT

offline vs online

Page 67: 2011-03 mobile web apps development

@theAgileMATT

Offline? !

window.addEventListener( "offline", function() { alert(‘offline’); }, false);

Page 68: 2011-03 mobile web apps development

@theAgileMATT

Online? !

window.addEventListener( "online", function() { alert(‘online’); }, false);

Page 69: 2011-03 mobile web apps development

@theAgileMATT

Device Orientation

Page 70: 2011-03 mobile web apps development

@theAgileMATT

window.addEventListener('deviceorientation', function(event) {   var x = event.alpha;   var y = event.beta;   var z = event.gamma; }, false);

Page 71: 2011-03 mobile web apps development

@theAgileMATTLocation JS API

Page 72: 2011-03 mobile web apps development

@theAgileMATTDrag and Drop File API

Page 73: 2011-03 mobile web apps development

@theAgileMATT

new HTML tags

Page 74: 2011-03 mobile web apps development

@theAgileMATTheader, nav, article, section, aside, footer

Page 75: 2011-03 mobile web apps development

@theAgileMATTvideo, audio, devices

Page 76: 2011-03 mobile web apps development

@theAgileMATT

subtitles?

Page 77: 2011-03 mobile web apps development

@theAgileMATT

WebVTT

Page 78: 2011-03 mobile web apps development

@theAgileMATTNew input types HTML5

Page 79: 2011-03 mobile web apps development

@theAgileMATTautocomplete? no problem!

Page 80: 2011-03 mobile web apps development

@theAgileMATTinput type=”email” mobile

Page 81: 2011-03 mobile web apps development

@theAgileMATTinput type=”number” mobile

Page 82: 2011-03 mobile web apps development

@theAgileMATTinput type=”phone” and “url” mobile

Page 83: 2011-03 mobile web apps development

@theAgileMATTinput type=”datetime” mobile

Page 84: 2011-03 mobile web apps development

@theAgileMATTinput type=”color” mobile

Page 85: 2011-03 mobile web apps development

@theAgileMATT

and

Page 86: 2011-03 mobile web apps development

@theAgileMATT

Speech Input!

Page 87: 2011-03 mobile web apps development

@theAgileMATT

<input type="text" x-webkit-speech />

Page 88: 2011-03 mobile web apps development

@theAgileMATT

YOU GET THOSE FOR FREE!

as in beer :}

Page 89: 2011-03 mobile web apps development

@theAgileMATTCSS 3 Cascading Style Sheet

Page 90: 2011-03 mobile web apps development

@theAgileMATT

But first...

Page 91: 2011-03 mobile web apps development

@theAgileMATT

Reset CSS

Page 92: 2011-03 mobile web apps development

@theAgileMATTRounded borders after 10 years!

Page 93: 2011-03 mobile web apps development

@theAgileMATTWeb fonts at last!

Page 94: 2011-03 mobile web apps development

@theAgileMATTtext overflow ...

Page 95: 2011-03 mobile web apps development

@theAgileMATTColumns! newspapers, hear me!

Page 96: 2011-03 mobile web apps development

@theAgileMATTn-th 2011!

Page 97: 2011-03 mobile web apps development

@theAgileMATTselectors css3

Page 98: 2011-03 mobile web apps development

@theAgileMATTselectors css3

Page 99: 2011-03 mobile web apps development

@theAgileMATT

button:hover a[href^=”mailto:”] { !

color: rgba (100%, 0, 100%, 0.5); !

}

Page 100: 2011-03 mobile web apps development

@theAgileMATTDo I have to? go for html5

Page 101: 2011-03 mobile web apps development

@theAgileMATTFrameworks

Page 102: 2011-03 mobile web apps development

@theAgileMATT

• M-Project

• jQTouch

• joapp

• DHTMLX Touch

Frameworks

Page 103: 2011-03 mobile web apps development

@theAgileMATTFuture beyond tomorrow

Page 104: 2011-03 mobile web apps development

@theAgileMATTEvolution is inevitable

Page 105: 2011-03 mobile web apps development

@theAgileMATTGood Case Scenario happy smiley

Page 106: 2011-03 mobile web apps development

@theAgileMATTBad Case Scenario bad boy

Page 107: 2011-03 mobile web apps development

@theAgileMATTAnd the winner is Pacman?

Page 108: 2011-03 mobile web apps development

@theAgileMATT

What?

Page 109: 2011-03 mobile web apps development

@theAgileMATTI dare you! I double dare you!

Page 110: 2011-03 mobile web apps development

@theAgileMATTOpen web standards html5 and friends

Page 111: 2011-03 mobile web apps development

@theAgileMATTQ & A

Matt Harasymczuk [email protected] www.matt.harasymczuk.pl

Page 112: 2011-03 mobile web apps development

@theAgileMATTI rest my case That's all Folks

Page 113: 2011-03 mobile web apps development

@theAgileMATT

Thank you.

Matt [email protected]

www.matt.harasymczuk.pl