72
Jason Haag Mobile Learning Research Analyst The Tolliver Group, Inc. Developing for Mobile: Tools, Tips, and Deployment Options

Developing for Mobile: Tools, Tips, and Deployment Options

Embed Size (px)

DESCRIPTION

"Developing for Mobile: Tools, Tips, and Deployment Options" for Training Magazine Learning 3.0 Conference in Chicago October 3-5, 2011

Citation preview

Page 1: Developing for Mobile: Tools, Tips, and Deployment Options

Jason Haag Mobile Learning Research Analyst The Tolliver Group, Inc.

Developing for Mobile:

Tools, Tips, and Deployment Options

Page 2: Developing for Mobile: Tools, Tips, and Deployment Options

Stages of Human Evolution…

Are We Evolving ? 2  

Page 3: Developing for Mobile: Tools, Tips, and Deployment Options

Scientists Suggest…

Our fingertips are changing! 3  

Page 4: Developing for Mobile: Tools, Tips, and Deployment Options

4  

Or Is It A Sign?

Prepare for the Zombie Apocalypse!

Page 5: Developing for Mobile: Tools, Tips, and Deployment Options

5  

Page 6: Developing for Mobile: Tools, Tips, and Deployment Options

ADL Mobile Learning Team

Judy Brown and Jason Haag 6  

Page 7: Developing for Mobile: Tools, Tips, and Deployment Options

Mobile Me…

Since 2003 7  

Page 8: Developing for Mobile: Tools, Tips, and Deployment Options

8  

Page 9: Developing for Mobile: Tools, Tips, and Deployment Options

ADL defines mobile learning as the use of handheld or wearable computing devices to provide access to learning content and information resources.

9  

ADL Mobile Learning Definition

Page 10: Developing for Mobile: Tools, Tips, and Deployment Options

•  When learning for the first time •  When wanting to learn more •  When trying to remember •  When things change •  When something goes wrong

10  

Dr. Conrad Gottfredson

Five Moments of Learning Needs

Which One Is Most Appropriate for Mobile?

Page 11: Developing for Mobile: Tools, Tips, and Deployment Options

•  When learning for the first time •  When wanting to learn more���

•  When trying to remember •  When things change •  When something goes wrong

11  

Learn  

Perform  

Five Moments of Learning Needs

Page 12: Developing for Mobile: Tools, Tips, and Deployment Options

12  

Field  guide  

Micro  learning  Review/remember  

Just-­‐in-­‐Fme  

Audio  recordings  

Video  recordings  

Quiz  

Test  

Poll  

Survey  

Feedback  

Geo-­‐exploraFon  

LocaFon  

specific  

Capture/share/document  ReporFng  

Note  taking  

Reference  

Coaching/mentoring

Job  aid/check  list  

Updates  

Alerts  

Game-­‐based  learning  

SimulaFon  

Augmented  reality  Assignments  

Reminders  

Conferencing  

TranslaFon  

TranscripFon  Geo-­‐blogging  

OrganizaFon  

On-­‐demand  access  

Procedures  

PresentaFons  Decision  support  

EvaluaFon  Contextualized  learn

ing  

Modules,    Courses,    

What  Else?  

Modules,    Courses,    

What  Else?  

E-­‐books  

Much More Than Courses…

Mobile Learning Opportunities!

Page 13: Developing for Mobile: Tools, Tips, and Deployment Options

13  

“Think Outside the Course”

Judy Brown

Page 14: Developing for Mobile: Tools, Tips, and Deployment Options

14  

Page 15: Developing for Mobile: Tools, Tips, and Deployment Options

15  

Page 16: Developing for Mobile: Tools, Tips, and Deployment Options

ADL’s Mobile Learning Handbook http://mlhandbook.adlnet.gov

We are also working with TSWG Combating Terrorism on conducting Market research on companies that offer mobile learning products.

Want to participate? Want to be added? Contact Us:

[email protected]

16  

Page 17: Developing for Mobile: Tools, Tips, and Deployment Options

17  

ADL Mobile Learning Guide: Mobile Web Deployment

http://mlearn.adlnet.gov or http://mlearn.adlnet.mobi (mirror)

Page 18: Developing for Mobile: Tools, Tips, and Deployment Options

18  

iTunes  App  Store  

Native App Distribution

Android Market & iPhone App Store

Page 19: Developing for Mobile: Tools, Tips, and Deployment Options

19  

iTunes  App  Store  

USA.gov App Store Deployment

http://apps.usa.gov/adl-mlearning-guide/

Page 20: Developing for Mobile: Tools, Tips, and Deployment Options

•  Graphics editor (Fireworks) •  HTML editor (Dreamweaver CS 5.5)

–  jQuery Mobile Framework (for mobile content creation)

•  PhoneGap Framework (open source - for native app packaging & deployment)

•  Books –  “Programming the Mobile Web”, Maximiliano Firtman –  “Mobile Design and Development”, Brian Fling –  “HTML5: Up and Running”, Mark Pilgrim

20  

ADL Mobile Learning Guide

How Did We Do It?

Page 21: Developing for Mobile: Tools, Tips, and Deployment Options

21  

Page 22: Developing for Mobile: Tools, Tips, and Deployment Options

22  

Page 23: Developing for Mobile: Tools, Tips, and Deployment Options

23  

Page 24: Developing for Mobile: Tools, Tips, and Deployment Options

24  

Mobile Apps Must Die!

“Native Apps Are Becoming Too Much To Organize & Maintain” Is Value > Pain ? - Scott Jenson, @scottjenson

Page 25: Developing for Mobile: Tools, Tips, and Deployment Options

25 25  

I’m a PC…I’m a Mac

Yeah…whatever

Page 26: Developing for Mobile: Tools, Tips, and Deployment Options

Source:    Global  Intelligence  Alliance  26 26  

I’m a Native App…I’m a Web App

What’s the Difference?

Page 27: Developing for Mobile: Tools, Tips, and Deployment Options

The question is no longer, “Which do we develop for, native or mobile web?” but...

27  

The Wrong Question

Page 28: Developing for Mobile: Tools, Tips, and Deployment Options

“How do we develop solutions to handle both mobile web & native now as well as

the devices of the future?” - Dave Olsen, @dmolsen

28  

The Right Question

Page 29: Developing for Mobile: Tools, Tips, and Deployment Options

You Need A…

29  

Dave Olsen, @dmolsen

Page 30: Developing for Mobile: Tools, Tips, and Deployment Options

•  Symbian OS from the Symbian Foundation •  BlackBerry OS from RIM •  iOS from Apple •  Windows Phone 7 from Microsoft •  Android from Google •  WebOS from HP •  Bada from Samsung •  MeeGo from Nokia and Intel

Native App SDKs = Develop for Many Platforms

Must Support Several Platforms & No Browsers 30  

Page 31: Developing for Mobile: Tools, Tips, and Deployment Options

Emulators Anyone?

31  

http://www.mobilexweb.com/emulators

Page 32: Developing for Mobile: Tools, Tips, and Deployment Options

32  

•  SwebApps •  AppIncubator •  Kanchoo •  AppBreeder •  MyAppBuilder •  BuildAnApp •  eBookApp •  GameSalad •  MobileRoadie •  MobBase

•  TapLynx •  Appanda •  AppMakr •  App.co •  Appswell •  UNITYMobile •  And many others…

Quick Alternatives…

Do-It-Yourself Toolkits

Page 33: Developing for Mobile: Tools, Tips, and Deployment Options

33  

Do-It-Yourself Toolkits

No Coding Required, BUT…

Page 34: Developing for Mobile: Tools, Tips, and Deployment Options

34  

Why the Mobile Web?

1  out  of  every  5  people  by  2013  

Page 35: Developing for Mobile: Tools, Tips, and Deployment Options

Balancing Views 35  

Mobile App Development

Page 36: Developing for Mobile: Tools, Tips, and Deployment Options

36  

Deployment Options

Support Native Only… or Web & Native?

Page 37: Developing for Mobile: Tools, Tips, and Deployment Options

37  

•  W3C Standards for Web Apps on Mobile (Feb 2011) –  http://www.w3.org/2011/02/mobile-web-app-state.html –  Current Status: http://www.w3.org/standards/techs/mobileapp#w3c_all

Standards

The Web is an App Platform!

Page 38: Developing for Mobile: Tools, Tips, and Deployment Options

“Not  every  mobile  device  will  have  your  app  on  it,  but  every  mobile  device  will  have  a  browser.”  

-­‐  Jason  Grigsby,  @grigs  

38  

Page 39: Developing for Mobile: Tools, Tips, and Deployment Options

Mozilla’s Open Web App Store (2010) •  http://apps.mozillalabs.com

Open App Market (2010) •  http://www.openappmkt.com

Chrome Web Store (2010) •  http://chrome.google.com/webstore

GetJar HTML5 Mobile Web App Store •  http://www.getjar.com

Opera Mobile Web App Store (2011) •  http://apps.mozillalabs.com

Open Space (Under Development) •  https://www.developerscoop.org

39  

Web App Stores…

On the Rise

Page 40: Developing for Mobile: Tools, Tips, and Deployment Options

•  Developed using Web Standards (HTML, CSS, JavaScript) –  Each framework usually consists of these file

types and some additional images, templates •  Can be hosted on a web server – OR – packaged

as Native App (using PhoneGap or other Solution)

40  

Mobile Web App Frameworks

Page 41: Developing for Mobile: Tools, Tips, and Deployment Options

41  

History Repeats Itself!

Don’t Just Target Webkit Browsers!

Page 42: Developing for Mobile: Tools, Tips, and Deployment Options

42  

•  HTML, CSS, JavaScript Only –  iWebkit –  JQTouch (JQuery Touch) –  iUI (iPhone User Interface) –  jQuery Mobile (Uses Progressive Enhancement)

•  HTML, CSS, JavaScript + Native App Publishing –  Rhodes & RhoHub –  Sencha Touch JavaScript Framework –  Titanium Appcelerator

•  Native App Packaging for HTML Content –  PhoneGap

Mobile Web App Frameworks

Page 43: Developing for Mobile: Tools, Tips, and Deployment Options

43  

Mobile Web App Frameworks

http://adlmobile.wikispaces.com

Page 44: Developing for Mobile: Tools, Tips, and Deployment Options

•  http://kurogo.org •  http://mollyproject.org •  http://mwf.ucla.edu •  http://www.jasig.org/umobile

Mobile Web Frameworks in Higher Ed

Support Both Native and Mobile Web 44  

Page 45: Developing for Mobile: Tools, Tips, and Deployment Options

45  

Report from MOLE (March 2011)

http://www.mole-project.net

Page 46: Developing for Mobile: Tools, Tips, and Deployment Options

46  

•  WURFL -  Protects from transcoders -  Java & PHP APIs & XML focused on accurate detection of mobile device capabilities -  http://wurfl.sourceforge.net

•  Terra-WURFL -  PHP API & MySQL focused on high-performance detection of mobile devices -  Can detect over 45,000 UAs -  http://www.tera-wurfl.com

•  Device Atlas – Mobile Device Database & API -  Developed by dotMobi in February 2008 -  Comprehensive data on over 6,000 devices -  http://deviceatlas.com

•  DetectMobileBrowsers.mobi – Detects Mobile Browser User Agents -  PHP-based (server-side) -  Supports: iPhone, iPad, Android, Opera Mini, Blackberry, Palm, Windows Mobiles, Low

End Mobiles, Desktop Redirect URL

Device Detection

If You Can’t Create and Must Convert…

Page 47: Developing for Mobile: Tools, Tips, and Deployment Options

47  

  Used for XHTML/CSS for basic version

  Used iWebkit HTML5 & CSS for advanced version

  Used device detection

h^p://webguide.ua.edu/mobile.html  

Content Adaptation aka “Device Detection”

Maintenance Nightmare!

Page 48: Developing for Mobile: Tools, Tips, and Deployment Options

Feature Detection Is A Better Approach

48  

JavaScript Library: http://modernizr.com

Page 49: Developing for Mobile: Tools, Tips, and Deployment Options

The Chocolaty Layers of Progressive Enhancement

49  

The Peanut M&M Analogy

Progressive Enhancement = Mobile First

Page 50: Developing for Mobile: Tools, Tips, and Deployment Options

50  

Mobile First Strategy

Naturally Improves Information Achitecture

Page 51: Developing for Mobile: Tools, Tips, and Deployment Options

HTML5 Responsive Design

The Boston Globe (Desktop Browser) 51  

Page 52: Developing for Mobile: Tools, Tips, and Deployment Options

HTML5 Responsive Design

52  

The Boston Globe (Tablet Browser)

Page 53: Developing for Mobile: Tools, Tips, and Deployment Options

HTML5 Responsive Design: CSS Media Queries

The Boston Globe (Mobile Browser) 53  

Page 54: Developing for Mobile: Tools, Tips, and Deployment Options

54  

jQuery Mobile

http://jquerymobile.com

Page 55: Developing for Mobile: Tools, Tips, and Deployment Options

55  

Dreamweaver CS5.5 “Mobile Starters”

Samples Included!

Page 56: Developing for Mobile: Tools, Tips, and Deployment Options

<body> <!-- Start of first page --> <div data-role="page" id="foo”> <div data-role="header"> <h1>Foo</h1> </div> <!-- /header -->

<div data-role="content"> <p>I'm first in the source order so I'm shown as the page.</p> <p>View internal page called <a href="#bar">bar</a></p> </div> <!-- /content -->

<div data-role="footer"> <h4>Page Footer</h4> </div> <!-- /footer --> </div> <!-- /page -->

56  

EASY HTML!

Header, Content Body, Footer

Page 57: Developing for Mobile: Tools, Tips, and Deployment Options

57  

Page 58: Developing for Mobile: Tools, Tips, and Deployment Options

Maintenance & Updates

–  Contextual updates

–  Framework updates

–  Search functionality

–  More App Store Distribution •  Windows Phone

•  BlackBerry

•  Open Web App Stores

58  

Next Steps

Mobile Learning Guide (App)

Page 59: Developing for Mobile: Tools, Tips, and Deployment Options

59  

jQuery Mobile + PhoneGap =

Write Once, Deploy to Multiple Platforms

Page 60: Developing for Mobile: Tools, Tips, and Deployment Options

60  

Where’s the Gap?

To the Cloud!

Page 61: Developing for Mobile: Tools, Tips, and Deployment Options

61  

•  An emulator is not always consistent with the actual device •  Limited support for Flash today (Adobe working HTML5) •  Poor / inconsistent support for pop-up windows and

framesets •  Video Compatibility

-  Varying formats supported -  Video fragmentation issues with Android

Mobile Lessons Learned

Page 62: Developing for Mobile: Tools, Tips, and Deployment Options

62  

WMV / 3GP files

MP4 / SWF files

MP4 / WMV files

M4V / MP4 (wide)

MP4 / 3GP files

MP4 / H263 files

Microsoft Win Mobile

Google Android

Nokia Symbian

Apple iPhone OS

RIM BBOS

Palm Palm OS

Credit: OnPoint Digital

Mobile Video Formats

Page 63: Developing for Mobile: Tools, Tips, and Deployment Options

63  

•  Create. Don’t convert! •  Scope: You can support all device types. Narrow the scope and

focus on consistent user experience •  Mobile first approach: potential for both a desktop and mobile

deliverable from single code base •  SCORM on mobile browsers works, but provides a poor user

experience –  What level of tracking is actually needed? Bookmarking,

completion, assessment, etc. •  Mobile Apps can be developed using HTML5 and support

multiple platforms (both native and web)

Mobile Lessons Learned

Page 64: Developing for Mobile: Tools, Tips, and Deployment Options

64  

Credit: OnPoint Digital

Don’t Get Hung Up on Platforms! Think About: Requirements, Content, and User Experience

I’m at Native App… I’m a Web App… I’m a Hybrid App…So What!

Page 65: Developing for Mobile: Tools, Tips, and Deployment Options

Developing for Mobile Is Tough!

a balancing act…

65  

Page 66: Developing for Mobile: Tools, Tips, and Deployment Options

66  

Resources

http://adlmobile.wikispaces.com

Page 67: Developing for Mobile: Tools, Tips, and Deployment Options

67  

Resources

http://research.adlnet.gov/newsletter/mobile

Page 68: Developing for Mobile: Tools, Tips, and Deployment Options

Other Resources – What I’m Reading

New and Upcoming Books on Mobile! 68  

•  Beginning Building Mobile Application Development in the Cloud (November 2011) By Richard Rodger

•  Head First Mobile Web (December 2011) By Lyza Danger Gardner and Jason Grigsby

•  jQuery Mobile: Up and Running, 1st Edition (July 2011) By Maximiliano Firtman

•  Programming HTML5 Applications (May 2011)By Zachary Kessin

•  Designing mLearning (February 2011) By Clark Quinn

Page 69: Developing for Mobile: Tools, Tips, and Deployment Options

Homo Textus…Don’t Text and Drive!

You Know Who You Are! 69  

Page 70: Developing for Mobile: Tools, Tips, and Deployment Options

2011!

Don’t Text and Fly!

Happy Halloween 70  

Page 71: Developing for Mobile: Tools, Tips, and Deployment Options

•  http://www.flickr.com/photos/adactio/6153558098/in/set-72157627691092806 •  http://www.flickr.com/photos/danzen/4137160631/ •  http://filamentgroup.com/lab/building_with_jquery_mobile/ •  http://www.chrisumiastowski.com/heres-another-reason-why-apps-die •  http://theinvisiblegorilla.com/blog/2010/10/25/dont-text-and-fly/

More Photo Credits

71  

Page 72: Developing for Mobile: Tools, Tips, and Deployment Options

72  

Jason Haag Mobile Learning Research Analyst  [email protected]  Twi^er:  @J_Haag,  @ADLmobile  h^p://www.linkedin.com/in/jasonhaag  

Questions / Discussion

Let’s Connect!