toc workshop 2013

44
How to develop social book apps with PhoneGap & Wordpress CREATING SOCIAL BOOKS [email protected] @haigarmen

Upload: haig-armen

Post on 27-Jan-2015

120 views

Category:

Documents


0 download

DESCRIPTION

What does a mobile app platform offer books that traditional publishing methods can not? In this workshop Haig Armen will reveal digital strategies for transforming a book into a dynamic social publication using open source software. The workshop will feature a case study of a new book by Alex Samuel that Haig Armen and a number of Emily Carr University of Art + Design students have designed and created using open source software like Wordpress and PhoneGap. The workshop will walk participants through a step by step tutorial on how to pull content from Wordpress dynamically into an iPhone app created with PhoneGap.

TRANSCRIPT

Page 1: TOC Workshop 2013

How to develop social book apps with PhoneGap & Wordpress

CREATINGSOCIAL BOOKS

[email protected] @haigarmen

Page 2: TOC Workshop 2013

BUT FIRST,

A BIT ABOUT ME

Professor of DesignEmily Carr University of Art + Design

Founder & Creative DirectorLift Studios - Interaction Design Agency

Studied

Architecture,Jazz Performance& Composition

Page 3: TOC Workshop 2013

Concepts covered in this workshop will include

• publications for mobile platforms• a book as a social framework• using open source tools to publish• Native App vs. Web Technology• Book with an API• Workshop I: Introducing PhoneGap• using open source tools to publish• balancing reading with social• Workshop II: prototyping with jQueryMobile• Hybrid native/web apps• gestural affordances• Workshop III: JSON-API tunnel

Page 4: TOC Workshop 2013

Strategy• publications for mobile platforms• a book as a social framework• using open source tools to publish• Workshop I: Introducing PhoneGap

Design• balancing reading with social• Workshop II: prototyping with jQueryMobile• gestural affordances

Technology• Native App vs. Web Technology• Hybrid native/web apps• Book with an API• Workshop III: JSON-API tunnel

Page 5: TOC Workshop 2013

This is a workshop but it is by way of

an interesting story...

Page 6: TOC Workshop 2013

A Social Bookby Alexandra Samuel

A research projectat Emily Carr University of Art + Design

Page 7: TOC Workshop 2013

A Social Bookby Alexandra Samuel

A research projectat Emily Carr University of Art + Design

Can reading a book be a participatory and social experience?

Page 8: TOC Workshop 2013

Outcomes:

1. Create a social e-book prototype that establishes the potential of e-books to support a social, participatory reader experience

2. Develop a participatory design methodology where readers contribute to the structure, design and/or content of the final outcome

Page 9: TOC Workshop 2013

What are the issues when adding social functionality into an ebook format?

Page 10: TOC Workshop 2013

What are the issues when adding social functionality into an ebook format?

Can we integrate a social component into a book without getting in the way of the original content?

Page 11: TOC Workshop 2013

What are the issues when adding social functionality into an ebook format?

Can we integrate a social component into a book without getting in the way of the original content?

How do we make a book ultimately dynamic?

Page 12: TOC Workshop 2013

What are the issues when adding social functionality into an ebook format?

Can we integrate a social component into a book without getting in the way of the original content?

How do we make a book ultimately dynamic?

What tools should we use to manage the content, comments and membership registration?

Page 13: TOC Workshop 2013

The problem with most Social books:

1. Social usually means sharing quotes on Facebook & Twitter

2. Reader comments are private and marginalized

3. Comments are separated from the original text and usually read out of context

Page 14: TOC Workshop 2013

How does it work?

Wordpress (CMS)

HTML CSS & Javascript

NATIVE APPLICATION

JSON API

PHONEGAP

Page 15: TOC Workshop 2013
Page 16: TOC Workshop 2013
Page 17: TOC Workshop 2013
Page 18: TOC Workshop 2013
Page 19: TOC Workshop 2013

Introducing PhoneGap

The only free open source framework for creating apps easily for 7 mobile platforms using standard HTML, CSS and Javascript

http://docs.phonegap.com/en/2.1.0/guide_getting-started_index.md.html

Page 20: TOC Workshop 2013
Page 21: TOC Workshop 2013

I: Install Xcode and PhoneGap

Apple's Xcode (http://developer.apple.com)

PhoneGap http://www.phonegap.com/download# version 1.9.0

Requirements

• Xcode 4.3+• Xcode Command Line Tools• Intel-based computer with Mac OS X Lion or greater (10.7+)• Necessary for installing on device:

◦ Apple iOS device (iPhone, iPad, iPod Touch)◦ iOS developer certificate ($100/year)

Page 22: TOC Workshop 2013
Page 23: TOC Workshop 2013
Page 24: TOC Workshop 2013
Page 25: TOC Workshop 2013
Page 26: TOC Workshop 2013
Page 27: TOC Workshop 2013
Page 28: TOC Workshop 2013

II. Prototyping with jQuery Mobile

A unified user interface system that works seamlessly across all popular mobile device platforms, built on the rock-solid jQuery and jQuery UI foundation.

http://jquerymobile.com/test/docs/about/getting-started.html

Page 29: TOC Workshop 2013

<!DOCTYPE html> <html> <head> ! <title>My Page</title> ! <meta name="viewport" content="width=device-width, initial-scale=1"> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/ jquery.mobile-1.2.0.min.css" />! <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>! <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script></head> <body>

<div data-role="page">

! <div data-role="header">! ! <h1>My Title</h1>! </div><!-- /header -->

! <div data-role="content">!! ! <p>Hello world</p>! !! </div><!-- /content -->

</div><!-- /page -->

</body></html>

Page 30: TOC Workshop 2013

<!DOCTYPE html> <html> <head> ! <title>My Page</title> ! <meta name="viewport" content="width=device-width, initial-scale=1"> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/ jquery.mobile-1.2.0.min.css" />! <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>! <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script></head> <body>

<div data-role="page">

! <div data-role="header">! ! <h1>My Title</h1>! </div><!-- /header -->

! <div data-role="content">!! ! <p>Hello world</p>! !! </div><!-- /content -->

</div><!-- /page -->

</body></html>

Page 31: TOC Workshop 2013

<!DOCTYPE html> <html> <head> ! <title>My Page</title> ! <meta name="viewport" content="width=device-width, initial-scale=1"> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/ jquery.mobile-1.2.0.min.css" />! <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>! <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script></head> <body>

<div data-role="page">

! <div data-role="header">! ! <h1>My Title</h1>! </div><!-- /header -->

! <div data-role="content">!! ! <p>Hello world</p>! !! </div><!-- /content -->

</div><!-- /page -->

</body></html>

Page 32: TOC Workshop 2013

<!DOCTYPE html> <html> <head> ! <title>My Page</title> ! <meta name="viewport" content="width=device-width, initial-scale=1"> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/ jquery.mobile-1.2.0.min.css" />! <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>! <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script></head> <body>

<div data-role="page">

! <div data-role="header">! ! <h1>My Title</h1>! </div><!-- /header -->

! <div data-role="content">!! ! <p>Hello world</p>! !! </div><!-- /content -->

</div><!-- /page -->

</body></html>

Page 33: TOC Workshop 2013

<!DOCTYPE html> <html> <head> ! <title>My Page</title> ! <meta name="viewport" content="width=device-width, initial-scale=1"> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/ jquery.mobile-1.2.0.min.css" />! <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>! <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script></head> <body>

<div data-role="page">

! <div data-role="header">! ! <h1>My Title</h1>! </div><!-- /header -->

! <div data-role="content">!! ! <p>Hello world</p>! !! </div><!-- /content -->

</div><!-- /page -->

</body></html>

Page 34: TOC Workshop 2013

<!DOCTYPE html> <html> <head> ! <title>My Page</title> ! <meta name="viewport" content="width=device-width, initial-scale=1"> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />! <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>! <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script></head> <body>

<div data-role="page">

! <div data-role="header">! ! <h1>My Title</h1>! </div><!-- /header -->

! <div data-role="content">!! ! <p>Hello world</p>

<ul data-role="listview" data-inset="true" data-filter="true">! <li><a href="#">Acura</a></li>! <li><a href="#">Audi</a></li>! <li><a href="#">BMW</a></li>! <li><a href="#">Mercedes Benz</a></li>! <li><a href="#">Ferrari</a></li></ul>

! !! </div><!-- /content -->

</div><!-- /page -->

</body></html>

Page 35: TOC Workshop 2013

<!DOCTYPE html> <html> <head> ! <title>My Page</title> ! <meta name="viewport" content="width=device-width, initial-scale=1"> ! <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />! <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>! <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script></head> <body>

<div data-role="page">

! <div data-role="header">! ! <h1>My Title</h1>! </div><!-- /header -->

! <div data-role="content">!! ! <p>Hello world</p>

<ul data-role="listview" data-inset="true" data-filter="true">! <li><a href="#">Acura</a></li>! <li><a href="#">Audi</a></li>! <li><a href="#">BMW</a></li>! <li><a href="#">Mercedes Benz</a></li>! <li><a href="#">Ferrari</a></li></ul>

! <form> <label for="slider-0">Input slider:</label> <input type="range" name="slider" id="slider-0" value="25" min="0" max="100" /></form>

!! </div><!-- /content -->

</div><!-- /page -->

</body></html>

Page 36: TOC Workshop 2013

jQuery Mobile Multiple Screens

Page Anatomyhttp://jquerymobile.com/test/docs/pages/page-anatomy.html

Multi Page Example

Page 37: TOC Workshop 2013

Gestural Affordances

How do we design interfaces to cue users about gestures?

Why are gestures becoming the new click?

Can we teach gestures without special onboarding instructions?

Page 38: TOC Workshop 2013

III. Introducing JSON API

Wordpress JSON API plugin

Javascript for API call

Page 39: TOC Workshop 2013

$(document).ready(function(){ console.log("online"); var status = $('#network-status'); var output = $('#output'); status.text("Online");! $.ajax({! ! url: 'http://book.hyko.org/api/get_page_index/',! ! dataType: 'jsonp',! ! timeout: 5000,! ! success: function(data, status){! ! ! localStorage.setItem('posts', JSON.stringify(data));! ! ! displayContent(data);!! ! ! ! ! ! },! ! error: function(){! ! ! output.text('There was an error loading the data.');! ! }

! });});

Page 40: TOC Workshop 2013

var displayContent = function (data) {! ! ! var output = $('#output');! ! ! $.each(data.pages, function(i,page){ ! ! ! ! var section = '<h2>'+page.title+'</h2>'! ! ! ! +page.content+'<br>'! ! ! ! for(var j = 0; j < page.children.length; ++j)! ! ! ! {! ! ! ! $.each(page.children, function(j, page) { ! ! ! ! var section = section+ '<h2>'+page.title+'</h2>'! ! ! ! ! +page.content+'<br>'! ! ! ! });! ! ! ! }! ! ! ! output.append(section);! ! ! });! ! }

Page 41: TOC Workshop 2013

We need a name...please help us come up witha name for this open sourcesocial book project.

Page 42: TOC Workshop 2013

We need a name...Corey Pressman suggests:

bookspiro

Page 43: TOC Workshop 2013

We need a name...Corey Pressman suggests:

bookspiro

Tweet your name with hashtag: #socialbook