Top Banner
HTML5 in Rakuten HTML5 Project Team Creative & Web Design Department, Rakuten, Inc. http://www.rakuten.co.jp/ This presentation has animations and movies. This version cannot show them correctly.
155

[RakutenTechConf2013] [E-2] HTML5 in Rakuten

Sep 21, 2014

Download

Technology

Rakuten Technology Conference 2013
"HTML5 in Rakuten"
HTML5 Project Team (Creative & Web Design Department) (Rakuten)
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: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

HTML5 in Rakuten

HTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

This presentation has animations and moviesThis version cannot show them correctly

2

HTML5 x Rakuten

Ogasawara Tsutomu | Oga | CWDD
事例の絵を差し込んでアニメーションで表示

3

Self Introduction

RoleHTML5 Project Team Leader(July 1st 2012 ~)

ExpertiseSoftware Engineer (HTML5 Objective-C PHP) UIUX Designer Technical Director

Contacttsutomuogasawaramailrakutencomogaoga

OgaTsutomu Ogasawara

4

HTML5 Project Team Overview

HTML5 Project Team

5

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

6

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

7

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Web CreationUX DesignWeb AnalyticsSEOWeb PerformanceHTML5 Project

Creative amp Web Design Department (CWD)

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

8

Our Mission

RampD

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 2: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

2

HTML5 x Rakuten

Ogasawara Tsutomu | Oga | CWDD
事例の絵を差し込んでアニメーションで表示

3

Self Introduction

RoleHTML5 Project Team Leader(July 1st 2012 ~)

ExpertiseSoftware Engineer (HTML5 Objective-C PHP) UIUX Designer Technical Director

Contacttsutomuogasawaramailrakutencomogaoga

OgaTsutomu Ogasawara

4

HTML5 Project Team Overview

HTML5 Project Team

5

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

6

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

7

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Web CreationUX DesignWeb AnalyticsSEOWeb PerformanceHTML5 Project

Creative amp Web Design Department (CWD)

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

8

Our Mission

RampD

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 3: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

3

Self Introduction

RoleHTML5 Project Team Leader(July 1st 2012 ~)

ExpertiseSoftware Engineer (HTML5 Objective-C PHP) UIUX Designer Technical Director

Contacttsutomuogasawaramailrakutencomogaoga

OgaTsutomu Ogasawara

4

HTML5 Project Team Overview

HTML5 Project Team

5

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

6

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

7

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Web CreationUX DesignWeb AnalyticsSEOWeb PerformanceHTML5 Project

Creative amp Web Design Department (CWD)

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

8

Our Mission

RampD

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 4: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

4

HTML5 Project Team Overview

HTML5 Project Team

5

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

6

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

7

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Web CreationUX DesignWeb AnalyticsSEOWeb PerformanceHTML5 Project

Creative amp Web Design Department (CWD)

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

8

Our Mission

RampD

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 5: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

5

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

6

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

7

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Web CreationUX DesignWeb AnalyticsSEOWeb PerformanceHTML5 Project

Creative amp Web Design Department (CWD)

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

8

Our Mission

RampD

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 6: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

6

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

7

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Web CreationUX DesignWeb AnalyticsSEOWeb PerformanceHTML5 Project

Creative amp Web Design Department (CWD)

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

8

Our Mission

RampD

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 7: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

7

HTML5 Project Team Overview

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Bu

sin

ess

Un

it

Web CreationUX DesignWeb AnalyticsSEOWeb PerformanceHTML5 Project

Creative amp Web Design Department (CWD)

InfrastructureDatabaseWeb ServiceSmart Device AppWeb APIetc

Development Unit (DU)

8

Our Mission

RampD

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 8: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

8

Our Mission

RampD

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 9: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

9

Our Mission

RampD Evangelization

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 10: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

10

Our Mission

RampD Evangelization Support

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 11: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

11

Our Mission

RampD Evangelization Support

Quality Performance Productivity

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 12: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

12

Our Mission

RampD Evangelization Support

Quality Performance Productivity

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 13: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

13

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 14: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

HTML5 Evangelization

Jose Manuel Segura AlvarezHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 15: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

15

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 16: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

Jose ManuelSegura Alvarez

Self Introduction

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 17: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

Role HTML5 Evangelist

Previous experience

Mobile websites (dumb amp smart phones) desktop sites native smartphone Apps SEO server administration Wordpress

Contact joseseguramailrakutencomungatonipon

JoseSegura

ホセ

セグラ

Self Introduction

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 18: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

18

HTML5 cases in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 19: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

19

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 20: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

20

HTML5 cases in Rakuten

Situation of HTML5 services in Rakuten

Letrsquos see some cases

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 21: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

21

Technology Conference 2013

bull Media Queriesbull Canvasbull Web Storage

bull SVGbull CSS Animations

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 22: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

22

Rakuten Recipe

bull JavaScript menu to register recipesbull Web Storage

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 23: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

23

Rakuten Securities Kabu animation

bull CSS3 Animations

httpswwwrakuten-seccojpwebspecialbrand_town

>

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 24: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

24

Rakuten Card

bull HTML5 Forms

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 25: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

25

Rakuten Travel

bull Geolocation

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 26: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

26

Rakutencom Shopping Mobile site

bull Web Fonts

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 27: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

27

Rakutencom Shopping Mobile site

bull Web Fonts

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 28: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

28

Rakuten Product Microdata

bull Microdata

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 29: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

29

Rakuten Gateway

bull Web Fontsbull CSS Animationsbull Web Storage

Mon will give more details about this service in a few minutes

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 30: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

30

HTML5 in Rakuten2

HTML5 Project Team Activity3

Table of contents

About myself1

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 31: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

31

HTML5 Implementation Guide

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 32: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

32

Goal Expand the use of HTML5 in Rakuten

HTML5 Implementation Guide

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 33: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

33

11 Checklist

2 How to implement

3 HTML

5 CSS

11 HTML5 Merits

31 DOCTYPE and ltheadergt

32 Section and Outline

33 Elements and Attributes

34 Forms

35 Microdata

36 Multimedia

37 Graphics

38 Application Cache

51 CSS3

52 Web fonts

53 Media Queries

41 File API

42 Drag amp Drop

43 Web Storage

44 Geo Location API

4 JavaScript API

Know-how of HTML5 features is divided in

18 chapters1 Introduction

HTML5 Implementation Guide

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 34: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

34

bull Video codecs compatibility how to implement Drag amp Drop CSS3 features

HTML5 Implementation Guide example

>

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 35: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

35

How do we promote HTML5 in Rakuten

Team Activities

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 36: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

36

bull Presented at Asakai (weekly company-wide meeting)

bull Rakuten CTO Summit (yearly internal event)

bull Tech Talkbull this Tech Conference )

HTML5 Evangelization

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 37: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

37

bull HTML5 Knowledge Basebull HTML5 Implementation Guidebull HTML5 Project Team Portfoliobull Reports (How to code examples etc)bull EFO Activitybull Use Casesbull Resources

HTML5 Evangelization

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 38: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

38

HTML5 Evangelization

bull Internal Social Media

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 39: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

39

bull HTML5 EFO (Entry Form Optimization) promotion

HTML5 Evangelization

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 40: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

40

HTML5 is the present and future of the Internet

Rakuten will be actively using HTML5 and push its boundaries even further

Conclusion

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 41: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

41

Thank you

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 42: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

Gateway Web App Development

Tomoko MonzenHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 43: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

43

Introduction

MonTomoko Monzen

Role Web Designer amp Front-end Developer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact tomokomonzenmailrakutencom

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 44: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

44

My First Challenge in HTML5 Project Team

Web App That Feels Native

Introduction

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 45: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

45

Android Native App Web Site

Windows8Native App

Rakuten Gateway

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 46: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

46

Nat

ive

Native App to Web AppW

ebS

ite

Renewal

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 47: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

47

More users

Cross-Platform

Flexibility

Why Web App

WEBNative

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 48: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

48

Flat Design

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 49: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

49

Web Fonts

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 50: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

50

UI Scrolling

Scroll VerticallySwipe Horizontally

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 51: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

51

>

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 52: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

52

How to make Web App

bull Flat Design (iOS7)bull HTML5 CSS jQuery Web Fontsbull iScrollbull Effective Development

(Sass compass grunt script concatampuglify git)

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 53: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

53

Visit Rakuten Gateway

httpwwwrakutencojpcomgatewaysp

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 54: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

54

The future of Web Apps

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 55: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

55

THANK YOU

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 56: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

Web Storage~ Over the Cross Origin ~

Ryosuke TsujiHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 57: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

57

Self Introduction

Role Front-end Engineer

Expertise HTML5CSS3JavaScriptnodejsJavaPythonPHPSQL

Contact ryosuketsujimailrakutencomthujikun

RyanRyosuke Tsuji

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 58: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

58

Kobo glo

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 59: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

59

Rakuten insurance

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 60: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

60

Rakuten card

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 61: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

61

Rakuten security

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 62: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

62

other smartphone sites

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 63: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

63

Web Storage

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 64: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

64

Web Storage

httpsrakutencojprakutencojp

rakutencomsubrakutencojp

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 65: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

65

Normal Way

ServerClient

rakutencojp

subrakutencojp

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 66: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

66

Over the Domain

rakutencojp

otherrakutencojp

iframe

Post Message API

subrakutencojp

ServerClient

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 67: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

67

Web Storage ~ Over the Domain ~

httpsrakutencojprakutencojp

rakutencom

subrakutencojp

otherdomaincom

iframe

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 68: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

68

Rakuten solar

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 69: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

69

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 70: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

70

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 71: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

71

Save data to iframe

var iframe = documentcreateElement(lsquoiframersquo)

iframestyledisplay = lsquononersquo

iframesrc = lsquohttpsotherrakutencojprsquo

documentbodyappendChild(iframe)

iframeaddEventListener(lsquoloadrsquo function()

setTimeout(function() iframecontentWindowpostMessage( JSONstringify(data) lsquohttpsotherrakutencojprsquo) 0))

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 72: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

72

Save data to iframe

rakutencojp otherrakutencojp

iframePost Message API

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 73: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

73

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragesetItem(datakey datavalue) setTimeout(function() esourcepostMessage(response eorigin) 0) )

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 74: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

74

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 75: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

75

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 76: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

76

Get data from iframe

almost same with save case~~~~~~~~~~~~~~~~~~~~~~~~~~~~iframecontentWindowpostMessage(data origin)~~~~~~~~~~~~~~~~~~~~~~~~~~~~

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttpotherrakutencojprsquo) return false

callback(data)

)

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 77: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

77

Get data from iframe

rakutencojp otherrakutencojp

iframePost Message API

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 78: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

78

Save data to iframe

windowaddEventListener(lsquomessagersquo function(e) var data = JSONparse(edata)

if(eorigin == lsquohttprakutencojprsquo) return false

localStoragegetItem(datakey) setTimeout(function() esourcepostMessage(response eorigin) 0) )

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 79: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

79

Plugin

I created plugin as we can use it like native Web Storage

var crossOriginStorage = new ExtendedLocalStorage(iframe URL)

crossOriginStoragesetItem(key value callback)

crossOriginStoragegetItem(key callback)

crossOriginStorageremoveItem(key callback)

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 80: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

80

Thank you

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 81: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

Technology Conference Website

Shinsuke YamadaHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 82: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

82

Self-Introduction

MartyShinsuke Yamada

Role Web Designer amp Front-end Engineer

Expertise UIUX WebampApp DesignHTML5CSS3JavaScript

Contact shinsukeayamadamailrakutencom

Real Emmett ldquoDocrdquo Brown

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 83: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

83

Have you seen the website

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 84: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

84

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 85: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

85

top Speakers Timetable

Event reportAccess

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 86: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

86

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 87: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

87

Responsive web design

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 88: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

88

Interactive design

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 89: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

89

html5 technologies

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 90: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

90

html5 technologies

Responsiveweb design

Interactive design

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 91: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

91

Responsive web design

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 92: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

92

950px 640px

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 93: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

93

Media queries

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 94: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

94

PC

1 Exclusive

Tablet

Smartphone

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 95: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

95

Base style(PC)

2Overriding

Tablet

Smartphone

ComplicatedAnd

unmanageable

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 96: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

96

Syntactically Awesome Style Sheets

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 97: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

97

Sassrsquos features

bull Fully CSS3-compatiblebull Language extensions such as variables nesting

and mixinsbull Many useful functions for manipulating colors and

other valuesbull Advanced features like control directives for librariesbull Well-formatted customizable outputbull Firebug integration

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 98: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

98

3 Sass

Set variable amp import file

variable

import

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 99: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

99

3 Sass

PC

Tablet

Smartphone

Base

Coding into Condition branch

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 100: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

100

3 SassCompiled code

Donrsquot forget to

the compile

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 101: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

101

CSS Authoring Framework

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 102: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

102

Compassrsquos features

bull Experience cleaner markup without presentational classes

bull Itrsquos chock full of the webrsquos best reusable patternsbull It makes creating sprites a breezebull Compass mixins make CSS3 easybull Create beautiful typographic rhythmsbull Download and create extensions with ease

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 103: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

103

Retina displayPrevious display

Image handling for Retina

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 104: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

104

SVGScalable Vector Graphics

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 105: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

105

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 106: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

106

SVG compatibility table

httpcaniusecom

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 107: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

107

Library that detects browserrsquos HTML5 amp CSS3 features

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 108: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

108

Modernizr works

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 109: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

109

Interactive design

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 110: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

110

>

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 111: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

111

For Smartphone

Drag

>

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 112: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

112

>

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 113: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

113

ltcanvasgtwith

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 114: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

114

createjs sample

Output -gt

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 115: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

115

HTML5 technologies

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 116: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

116

Notification feature

Stored in Web storage

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 117: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

Bookmark

Filter

Add bookmark

Details

For Smartphone

>

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 118: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

118

html5 technologies

Responsiveweb design

Interactive design

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 119: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

119

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 120: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

120

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 121: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

Technology Conference Sitetools amp Development Flow

Tsutomu OgasawaraHTML5 Project TeamCreative amp Web Design Department Rakuten Inchttpwwwrakutencojp

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 122: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

122

Requirements

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 123: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

123

Requirements

Frequent updates

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 124: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

124

Requirements

Frequent updatesSEO friendly

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 125: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

125

Requirements

Frequent updatesSEO friendlyWithout server-side script

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 126: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

126

Requirements

Frequent updatesSEO friendlyWithout server-side script

Generate static HTML filesfrom data and templates

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 127: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

127

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 128: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

128

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 129: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

129

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 130: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

130

Whatrsquos Template Engine

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 131: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

131

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 132: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

132

Whatrsquos Template Engine

[ name Hiroshi Mikitani img imgmickyjpg title Chairman amp CEO of Rakuten Inc name Jeff Patton title Agile Evangelist at Atlassian img imgjeffjpgrsquo ]

ltdiv class=speakersgt ltimg src=lt= img gt alt=lt= name gt gt ltdiv class=profilegt lth1 class=namegtlt= name gtlth1gt lth2 class=titlegtlt= title gtlth2gt ltdivgt ltdivgt

+

Speaker information in JSON format

HTML Template

ltdiv class=speakersgt ltimg src=imgmickyjpg alt=Hiroshi Mikitani gt ltdiv class=profilegt lth1 class=namegtHiroshi Mikitanilth1gt lth2 class=titlegtChairman amp CEO of Rakuten Inclth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltimg src=imgjeffjpg alt=Jeff Patton gt ltdiv class=profilegt lth1 class=namegtJeff Pattonlth1gt lth2 class=titlegtAgile Evangelist at Atlassianlth2gt ltdivgt ltdivgt

ltdiv class=speakersgt ltdivgt

Generated HTML

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 133: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

133

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

Ogasawara Tsutomu | Oga | CWDD
次のスライドとマージしてステップバイステップで説明をしていく

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 134: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

134

Whatrsquos PhantomJS

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 135: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

135

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 136: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

136

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Execute rdquophantom_configjsrdquo

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 137: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

137

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Load rdquocommonhtmlrdquo as a common template

bull Load a page templatebull Load databull Execute underscorejs to merge

the templates and the data

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 138: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

138

Whatrsquos PhantomJS

$ phantomjs phantom_configjs commonhtmlindex gt indexhtml

Command Script Template Page Generated HTML

bull Output merged HTML

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 139: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

139

Whatrsquos PhantomJS

+

indexhtml speakershtml timetablehtml

+ +

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

IndexTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

SpeakersTemplate

ltdiv class=spe ltimg src=lt= ltdiv class=rdquop lth1 class=rdquo lth2 class=rdquo ltdivgt ltdivgt

TimetableTemplate

[ name rsquoH img rsquoi title rsquoC name rsquoJ title rsquoA img rsquoi]

DataJSON

SpeakersSessionsPlacesUpdates

SEO

Friendly

+

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 140: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

140

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 141: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

141

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 142: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

142

Tools and flow

Data(JSON)

+

Template

HTMLHTMLHTML

Sass CSS

(Git)

JavaScript

(Server)

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 143: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

143

As a result

Frequently updateSEO friendlyWithout server-side script

We could develop efficiently with Front-end technologies

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 144: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

144

Todayrsquos Agenda

HTML5 Evangelization in RakutenJose Segura

Rakuten gateway Web App DevelopmentTomoko ldquoMonrdquo Monzen

Web Storage ~ Over the Origin ~Ryosuke ldquoRyanrdquo Tsuji

Tools amp Development FlowTsutomu ldquoOgardquo Ogasawara

Rakuten Technology Conference Web SiteShinsuke ldquoMartyrdquo Yamada

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 145: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

145

HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 146: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

146

HTML5 in Rakuten

Rich UXPerformanceProductivity

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 147: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

147

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 148: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

148

Contents Contents Contents Contents

We Are Engineers

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 149: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

149

Contents Contents Contents Contents

Framework

We Are Engineers

Featurepart

Commonpart

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 150: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

150

Contents Contents Contents Contents

Framework

We Are Engineers

ImproveProductivity

Tools

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 151: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

151

Contents Contents Contents Contents

Framework

We Are Engineers

Automation

Tools

Environment

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 152: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

152

Contents Contents Contents Contents

Framework

We Are Engineers

MaximizePerformance

Tools

Environment

Process

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 153: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

153

Contents Contents Contents Contents

Framework

We Are Engineers

Tools

Environment

ProcessCMSCDN

Unit Test

Agile

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 154: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

154

We Are Engineers

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you
Page 155: [RakutenTechConf2013] [E-2] HTML5 in Rakuten

Thank you

  • HTML5 in Rakuten
  • HTML5 x Rakuten
  • Self Introduction
  • HTML5 Project Team Overview
  • HTML5 Project Team Overview (2)
  • HTML5 Project Team Overview (3)
  • HTML5 Project Team Overview (4)
  • Our Mission
  • Our Mission (2)
  • Our Mission (3)
  • Our Mission (4)
  • Our Mission (5)
  • Todayrsquos Agenda
  • HTML5 Evangelization
  • Table of contents
  • Slide 16
  • Slide 17
  • Table of contents (2)
  • HTML5 cases in Rakuten
  • HTML5 cases in Rakuten (2)
  • Technology Conference 2013
  • Rakuten Recipe
  • Rakuten Securities Kabu animation
  • Rakuten Card
  • Rakuten Travel
  • Rakutencom Shopping Mobile site
  • Rakutencom Shopping Mobile site (2)
  • Rakuten Product Microdata
  • Rakuten Gateway
  • Table of contents (3)
  • HTML5 Implementation Guide
  • HTML5 Implementation Guide (2)
  • HTML5 Implementation Guide (3)
  • HTML5 Implementation Guide example
  • Team Activities
  • HTML5 Evangelization (2)
  • HTML5 Evangelization (3)
  • HTML5 Evangelization (4)
  • HTML5 Evangelization (5)
  • Conclusion
  • Slide 41
  • Gateway Web App Development
  • Introduction
  • Introduction (2)
  • Rakuten Gateway (2)
  • Native App to Web App
  • Why Web App
  • Flat Design
  • Web Fonts
  • Slide 50
  • Slide 51
  • Slide 52
  • Visit Rakuten Gateway
  • Slide 54
  • THANK YOU
  • Web Storage ~ Over the Cross Origin ~
  • Self Introduction (2)
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Web Storage
  • Web Storage (2)
  • Normal Way
  • Over the Domain
  • Web Storage ~ Over the Domain ~
  • Rakuten solar
  • Save data to iframe
  • Save data to iframe (2)
  • Save data to iframe (3)
  • Save data to iframe (4)
  • Save data to iframe (5)
  • Get data from iframe
  • Get data from iframe (2)
  • Get data from iframe (3)
  • Get data from iframe (4)
  • Save data to iframe (6)
  • Plugin
  • Slide 80
  • Technology Conference Website
  • Self-Introduction
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 96
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Slide 111
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Slide 116
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Technology Conference Site tools amp Development Flow
  • Requirements
  • Requirements (2)
  • Requirements (3)
  • Requirements (4)
  • Requirements (5)
  • Tools and flow
  • Tools and flow (2)
  • Whatrsquos Template Engine
  • Whatrsquos Template Engine (2)
  • Whatrsquos Template Engine (3)
  • Whatrsquos Template Engine (4)
  • Tools and flow (3)
  • Whatrsquos PhantomJS
  • Whatrsquos PhantomJS (2)
  • Whatrsquos PhantomJS (3)
  • Whatrsquos PhantomJS (4)
  • Whatrsquos PhantomJS (5)
  • Whatrsquos PhantomJS (6)
  • Tools and flow (4)
  • Tools and flow (5)
  • Tools and flow (6)
  • As a result
  • Todayrsquos Agenda (2)
  • HTML5 in Rakuten (2)
  • HTML5 in Rakuten (3)
  • Slide 147
  • We Are Engineers
  • We Are Engineers (2)
  • We Are Engineers (3)
  • We Are Engineers (4)
  • We Are Engineers (5)
  • We Are Engineers (6)
  • We Are Engineers (7)
  • Thank you