Top Banner
© 2010 Mayflower GmbH iPhone Apps with HTML5 Thorsten Rinne I June 12th 2010 Dutch PHP Unconference 2010
34

iPhone Apps with HTML5

Nov 18, 2014

Download

Technology

Mayflower GmbH

 
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: iPhone Apps with HTML5

© 2010 Mayflower GmbH

iPhone Apps with HTML5

Thorsten Rinne I June 12th 2010

Dutch PHP Unconference 2010

Page 2: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Thorsten RinneSenior Developer - Team Lead - Head of Open Source Labs

‣Diplom-Informatiker (FH)‣Zend Certified Developer‣Certified Scrum Master‣PHP since PHP 3.0.16‣phpMyFAQ since 2001

Page 3: iPhone Apps with HTML5

iPhone!iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

iPhone?

Android?Blackberry?

Palm Pre? Maemo?

Windows Mobile?

Page 4: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Why iPhone?

Page 5: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Why iPhone?

App Store99%

Android Market & Co.1%

Daten: Gartner

Sales volume mobile apps in 2009

Page 6: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

400x more sales in App Store than in Android Market.

Daten: Gamneloft

Page 7: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

WebKit Rendering Engine

Page 8: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Web App vs. Native App

Page 9: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

What‘s a Web App?

Page 10: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

What‘s a native app?

Page 11: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I Foto: James Jordon

$$$$Advantages of native apps

Page 12: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

http://www.flickr.com/photos/acaben/

$$$$Disadvantages of native apps

Page 13: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

http://www.flickr.com/photos/30046478@N08/Advantages of web apps

Page 14: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Disadvantages of web apps

Page 15: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Which solution is best for you?

(c) Chris Owens

Page 16: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

HTML 5

Page 17: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

<!DOCTYPE html><html lang="de"><head>

<meta charset=utf-8 /><meta name="viewport" content="user-scalable=no,width=device-width" /><title>HTML 5</title>

</head><body><section id="wrapper">

<header><h1><abbr>HTML</abbr> 5</h1>

</header><article>

<p>iPhone Apps with HTML5</p></article><footer>

<a href="http://www.mayflower.de">(c) 2010 Mayflower GmbH</a></footer>

</section></body></html>

Page 18: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

CSS 3

Page 19: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

<div id="preview-multi_text_shadows"><p>Multiple shadows are Hot</p>

</div>

#preview-multi_text_shadows p {background:none repeat scroll 0 0 black;color:white;font-size:30px;margin:10px;padding:40px 0 10px;text-align:center;text-shadow:0 0 4px white, 0 -5px 4px #FFFF33, 2px -10px 6px #FFDD33, -2px -15px 11px #FF8800, 2px -25px 18px #FF2200;

}

Page 20: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

JavaScriptDOM 5

Page 21: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

function saveSettings(){

localStorage.location = $('#setting').val();return false;

}! ! function loadSettings(){

$('#setting').val(localStorage.location);}

localStorage with jQuery<section>

<div> <label for="setting">localStorage:</label> <input type="text" name="setting" value="" id="setting" />

</div></section>

Page 22: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Look & Feel with CSS and JavaScript

Page 23: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Demo jQTouch: Animationen and localStorage

Page 24: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Page 25: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Page 26: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Examples

Beep, Vibrate und Alert

Page 27: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Beep, Vibrate and Alert

function onAlertButton(){! navigator.notification.alert("Message","Title", "Label");}

function onVibrateButton(){! navigator.notification.vibrate(100); // not supported by iPhone} function onBeepButton(){! navigator.notification.beep();}

Page 28: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Demo

Geolocation

Page 29: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Geolocation

function getCurrentLocation(){! $('#location').append = "Get current position ...";

! var funk = function(position)! {

! $('#location').append = "Latitude: " + position.coords.latitude + " Longitude: " + position.coords.longitude;

! };

! var fail = function(error)! {! ! alert("Error " + error);! }

navigator.geolocation.getCurrentPosition(funk,fail);}

Page 30: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Demo

Play & Record

Page 31: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Play ...

function playRecord(){        if (navigator.audio) {

            $('#play-button').attr('src','stop.png');        navigator.audio.play();

        } else {

            alert("No audio file found.");        }}

Page 32: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Record ...

function startRecord(){        navigator.audio = new Media(null, recordingSuccess, recordingFailure);        $('#cd-button').attr('src','cd.png');        navigator.audio.startAudioRecord();        navigator.notification.activityStart();        $('#record-button').attr('src','stop.png');        navigator.audio.startAudioRecord();}

function stopRecord(){        $('#record-button').attr('src','record.png');        navigator.notification.activityStop();        $('#cd-button').attr('src','cd_remove.png');        navigator.audio.stopAudioRecord();}function recordingSuccess(url){        navigator.notification.activityStop();          // Tu etwas}    function recordingFailure(error){        navigator.notification.activityStop();          alert("Aufnahme fehlgeschlagen: " + error);}

Page 33: iPhone Apps with HTML5

iPhone Apps with HTML5 I Mayflower GmbH I June 12th 2010 I

Questions?

Page 34: iPhone Apps with HTML5

Thank you very much!

© 2010 Mayflower GmbH

Thorsten [email protected]+49 89 242054 31

Mayflower GmbHMannhardtstraße 680538 München

Contact