SlideShare a Scribd company logo
Rakuten Front-end Framework 
Project 
October 25th, 2014 
Tsutomu Ogasawara / Hiroyuki Tanjo 
Creative & Web Design Department 
Rakuten Inc. 
http://www.rakuten.co.jp/ 
Presentation Video: http://youtu.be/-d15atCdR0E
2 
Self Introduction 
Oga 
Tsutomu Ogasawara 
Role Front-end Technology Team Leader 
Organization Creative & Web Design Department 
Expertise Software Engineer / UI Designer / Technical Director 
Contact 
tsutomu.ogasawara@mail.rakuten.com 
ogaoga
3 
Self Introduction 
Creative & 
Web Design 
Department 
Development 
Unit 
 Infrastructure 
 Database 
 Web Service 
 Smart Device App 
 Web API 
 etc... 
 UX Design 
 Web Creation 
 Analytics 
 SEO 
 Performance 
 Mobile Strategy 
 Front-end Technology
4 
Self Introduction 
Creative & 
Web Design 
Department 
Development 
Unit 
Business 
Unit
5 
Self Introduction 
http://tech.rakuten.co.jp/ 
2012 2013 2014
6 
Agenda 
1. Trend of Front-end 
2. What is 
"Rakuten Front-end Framework" ? 
3. Technology of RFF 
4. Demo 
5. Case Examples 
6. Future Plan 
7. Wrap up
7 
Agenda 
1. Trend of Front-end 
2. What is 
"Rakuten Front-end Framework" ? 
3. Technology of RFF 
4. Demo 
5. Case Examples 
6. Future Plan 
7. Wrap up
8 
Trend of Front-end
9 
Trend of Front-end 
 Rich Contents 
 High Performance 
 Cross Platform 
 etc..
10 
Trend of Front-end 
Various issues became obvious. 
 Large-scale, complicated 
JavaScript code. 
 Security threat. 
 Low web performance. 
 Compatibility problems. 
 etc...
11 
Trend of Front-end 
To solve the issues, developers around the 
world have created many useful tools and 
libraries.
12 
Trend of Front-end in Rakuten
13 
Trend of Front-end in Rakuten 
Combination of tools and libraries was different 
in each project. 
Project Project Project Project Project ・・・
14 
Trend of Front-end in Rakuten 
Combination of tools and libraries was different 
in each project. 
We need to standardize tools to 
Project Project Project Project Project ・・・ 
improve our productivity, 
and 
keep flexibility for various projects.
15 
Trend of Front-end in Rakuten 
Additionally, we wanted to standardize 
templates and UI components with approaches 
like "HTML5 Boilerplate" and "Bootstrap". 
Bootstrap 
http://getbootstrap.com/ 
HTML5 Boilerplate: The web’s most popular front-end template 
http://html5boilerplate.com/
16 
Trend of Front-end in Rakuten 
Staerted a project to standardize our tools and 
libraries in order to improve our productivity 
with front-end technologies.
17 
Trend of Front-end in Rakuten 
Started a project to standardize our tools and 
libraries in order to improve our productivity 
with front-end technologies. 
Rakuten Front-end Framework 
Project
18 
Agenda 
1. Trend of Front-end 
2. What is 
"Rakuten Front-end Framework" ? 
3. Technology of RFF 
4. Demo 
5. Case Examples 
6. Future Plan 
7. Wrap up
19 
What is "Rakuten Front-end Framework" ? 
"Rakuten Front-end Framework" is 
the activities to improve front-end 
development environment in Rakuten 
by utilizing the latest technologies.
20 
What is "Rakuten Front-end Framework" ? 
Oga 
Tsutomu Ogasawara 
Project Leader 
/ Developer 
Tantan 
Hiroyuki Tanjo 
Lead Architect 
/ Developer
21 
What is "Rakuten Front-end Framework" ? 
RFF consists of 4 parts: 
Tools Libraries 
Environment Operation
22 
What is "Rakuten Front-end Framework" ? 
Tools Libraries 
Environment Operation
23 
What is "Rakuten Front-end Framework" ? 
Tools Libraries 
Environment Operation
24 
What is "Rakuten Front-end Framework" ? 
RFF includes templates, UI components, 
resources, common scripts, etc. 
Standard 
Templates 
UI Components Resources
25 
What is "Rakuten Front-end Framework" ? 
Tools Libraries 
Environment Operation
26 
What is "Rakuten Front-end Framework" ? 
Tools Libraries 
Environment Operation
27 
What is "Rakuten Front-end Framework" ? 
Tools Libraries 
Environment Operation
28 
Objective of RFF 
We aim to
29 
Objective of RFF 
We aim to 
 Develop our useful tools by utilizing the 
latest technologies to improve our 
quality and productivity.
30 
Objective of RFF 
We aim to 
 Develop our useful tools by utilizing the 
latest technologies to improve our 
quality and productivity. 
 Deliver common libraries via the tools to 
spread out our knowledge.
31 
Objective of RFF 
We aim to 
 Develop our useful tools by utilizing the 
latest technologies to improve our 
quality and productivity. 
 Deliver common libraries via the tools to 
spread out our knowledge. 
 Contribute to the user experience of 
Rakuten services.
32 
Agenda 
1. Trend of Front-end 
2. What is 
"Rakuten Front-end Framework" ? 
3. Technology of RFF 
4. Demo 
5. Case Examples 
6. Future Plan 
7. Wrap up
33 
RFF Tools 
Tools Libraries 
Environment Operation
34 
RFF Tools 
Developed 2 products. 
Desktop Application 
rff-gui 
Command Line Tool 
generator-rff
Desktop 
Application 
rff-gui 
35 
RFF Tools 
Command line 
tool 
generator-rff OR 
1. Scaffolding 
2. Package 
Management 
3. Preview 4. Build 
Yeoman Bower BrowserSync Grunt
36 
RFF Tools / Scaffolding 
1. Scaffolding 
2. Package 
Management 
3. Preview 4. Build 
Yeoman Bower BrowserSync Grunt 
• Generate standard scaffold 
• Customize
37 
RFF Tools / Scaffolding
38 
RFF Tools / Scaffolding
39 
RFF Tools / Package Management 
1. Scaffolding 
2. Package 
Management 
Yeoman Bower 
• Generate standard scaffold 
• Customize 
3. Preview 4. Build 
BrowserSync Grunt 
• Install packages 
• Resolve dependency
40 
RFF Tools / Package Management
41 
RFF Tools / Package Management 
$ cat bower.json 
{ 
"name": "rff-test", 
"version": "0.0.0", 
"dependencies": { 
"jquery": "~1.11.1", 
"normalize.css": "~3.0.1" 
}, 
"devDependencies": {} 
} 
bower.json 
$ bower install 
$ tree src/bower_components -L 1 
src/bower_components 
├── jquery 
└── normalize.css 
install command 
installed libraries
42 
RFF Tools / Preview 
1. Scaffolding 
2. Package 
Management 
Yeoman Bower 
• Generate standard scaffold 
• Customize 
3. Preview 4. Build 
BrowserSync Grunt 
• Install packages 
• Resolve dependency 
• Check locally 
• Test multi browser
43 
RFF Tools / Preview
44 
RFF Tools / Build 
1. Scaffolding 
2. Package 
Management 
Yeoman Bower 
• Generate standard scaffold 
• Customize 
3. Preview 4. Build 
BrowserSync Grunt 
• Install packages 
• Resolve dependency 
• Check locally 
• Test multi browser 
• Convert files 
• Push to servers
45 
RFF Tools / Build
src dist 
46 
RFF Tools / Build 
img img 
.css 
.scss 
.less 
.stylus 
.coffee 
Compile Auto prefixer 
Minify 
.css .css .css 
.js .js 
.jade .html 
img 
.css 
.js 
img 
Add Revision 
Add Revision 
Add Revision 
.html .html 
CSS Sprite 
Compile 
Modify Links 
Compile 
Merge & Minify 
Merge & Minify 
Modify Links
47 
RFF Tools / Build 
img 
.css 
Compile Auto prefixer 
Minify 
.css .css .css 
.js .js 
.html 
img 
.css 
.js 
img 
Add Revision 
Add Revision 
Add Revision 
.html .html 
CSS Sprite 
Compile 
Modify Links 
Compile 
Merge & Minify 
Merge & Minify 
Modify Links 
dist 
Git FTP 
Push 
Put
48 
RFF Tools 
"generator-rff" is very useful but it's hard to use 
for non-engineers such as designers or 
directors.
49 
RFF Tools / rff-gui 
We also developed the GUI application of 
generator-rff, "rff-gui" for Mac & Windows.
50 
RFF Tools / rff-gui 
1. Scaffolding 
2. Package 
Management 
3. Preview 4. Build
51 
RFF Tools / rff-gui 
node-webkit: An application runtime based on 
Chromium and Node.js for Win, Mac and Linux.
52 
RFF Tools / rff-gui 
HTML / CSS / JavaScript 
AngularJS Bootstrap 
generator-rff 
node-webkit 
(Node.js + Chromium) 
Mac or Windows or Linux 
rff-gui 
GUI Layer
53 
RFF Tools / rff-gui 
Benefits of rff-gui are: 
 Non-engineers can develop in the common 
environment with engineers. 
 Easy to explain this project for 
stakeholders by showing the visible app. 
 Good opportunity to improve our 
development skills.
54 
Other tools 
 grunt-charset 
 Grunt plugin to convert text encoding and 
replace charset code in HTML and CSS. 
 grunt-appdmg 
 Grunt plugin to generate a disk image file for 
OS X. 
 rff-doctor 
 Node module to verify the system 
configuration.
55 
Other tools 
 grunt-charset 
 Grunt plugin to convert text encoding and 
replace charset code in HTML and CSS. 
 grunt-appdmg 
 Grunt plugin to generate a disk image file for 
OS X. 
 rff-doctor 
 Node module to verify the system 
configuration.
56 
Other tools 
 grunt-charset 
 Grunt plugin to convert text encoding and 
replace charset code in HTML and CSS. 
 grunt-appdmg 
 Grunt plugin to generate a disk image file for 
OS X. 
 rff-doctor 
 Node module to verify the system 
configuration.
57 
Other tools 
 grunt-charset 
 Grunt plugin to convert text encoding and 
replace charset code in HTML and CSS. 
 grunt-appdmg 
 Grunt plugin to generate a disk image file for 
OS X. 
 rff-doctor 
 Node module to verify the system 
configuration.
58 
Agenda 
1. Trend of Front-end 
2. What is 
"Rakuten Front-end Framework" ? 
3. Technology of RFF 
4. Demo 
5. Case Examples 
6. Future Plan 
7. Wrap up
59 
Self Introduction 
Tantan 
Hiroyuki Tanjo 
Role Developer of RFF Components 
Organization Creative & Web Design Department 
Expertise Front-end Development / Graphic Design / Painting 
Contact 
hiroyuki.tanjo@mail.rakuten.com 
htanjo
60 
Demo Video 
http://youtu.be/jGzqR6-jAYE
61 
Agenda 
1. Trend of Front-end 
2. What is 
"Rakuten Front-end Framework" ? 
3. Technology of RFF 
4. Demo 
5. Case Examples 
6. Future Plan 
7. Wrap up
62 
Case Examples 
Already started using RFF for over 10 projects. 
Rakuten CAFE Rakuten Energy (for Smartphone) 
http://cafe.rakuten.co.jp/ http://energy.rakuten.co.jp/
63 
Case Examples 
Developer's voice: 
 We didn't have to write the grunt 
configuration. 
 We don't have to take care of 
performance because RFF 
automatically optimized resources.
64 
Agenda 
1. Trend of Front-end 
2. What is 
"Rakuten Front-end Framework" ? 
3. Technology of RFF 
4. Demo 
5. Case Examples 
6. Future Plan 
7. Wrap up
65 
Future Plan 
Tools Libraries 
Environment Operation 
 Keep improving based on developers' 
feedback and technology trend. 
 Make rff-gui user-friendly.
66 
Future Plan 
Tools Libraries 
Environment Operation 
 Provide various libraries such as templates, 
UI components, utilities, etc.
67 
Future Plan 
Tools Libraries 
 Build the server-side environment to 
automate our tasks such as build, test, 
deploy, etc. 
Environment Operation
68 
Future Plan 
Tools Libraries 
 Build the team to continuously develop 
RFF, support developers and maintain 
the environment. 
Environment Operation
69 
Agenda 
1. Trend of Front-end 
2. What is 
"Rakuten Front-end Framework" ? 
3. Technology of RFF 
4. Demo 
5. Case Examples 
6. Future Plan 
7. Wrap up
70 
Wrap up 
 Utilize the latest technologies to improve our 
quality and productivity.
71 
Wrap up 
 Utilize the latest technologies to improve our 
quality and productivity. 
 Launched the Rakuten Front-end Framework 
which consists of Tools, Libraries, 
Environment and Operation.
72 
Wrap up 
 Utilize the latest technologies to improve our 
quality and productivity. 
 Launched the Rakuten Front-end Framework 
which consists of Tools, Libraries, 
Environment and Operation. 
 RFF should be suitable for various projects, 
useful for various people to become common.
73 
Wrap up 
 Utilize the latest technologies to improve our 
quality and productivity. 
 Launched the Rakuten Front-end Framework 
which consists of Tools, Libraries, 
Environment and Operation. 
 RFF should be suitable for various projects, 
useful for various people to become common. 
 Developing by ourselves is very important to 
improve our development environment.
74 
Open Source
75 
Open Source 
Released some RFF tools as open sources on 
GitHub! 
https://github.com/rakuten-frontend
76 
Rakuten Front-end Framework
77 
Let's work together! 
We are seeking 
Front-end Engineers! 
http://corp.rakuten.co.jp/careers/cwd/
78 
Thank you!

More Related Content

PPTX
[Rakuten TechConf2014] [B-6] Rakuten Travel Architecture and Development Process
PDF
PayPal Platform - Evolving for Simplicity and Scale: API Strategy & Practice ...
PPTX
Evolution of the PayPal API Platform Enabling the future of Money at QCon San...
PDF
DrupalCon Europe 2020 Low Code
PPTX
DeveloperWeek 2016 - Evolution of the PayPal Platform: Journey to APIs & Micr...
PDF
Redesigning PayPal APIs for Scale and Simplicity - QCon San Francisco 2013
PPTX
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
PPTX
Past, Present, Future of APIS
[Rakuten TechConf2014] [B-6] Rakuten Travel Architecture and Development Process
PayPal Platform - Evolving for Simplicity and Scale: API Strategy & Practice ...
Evolution of the PayPal API Platform Enabling the future of Money at QCon San...
DrupalCon Europe 2020 Low Code
DeveloperWeek 2016 - Evolution of the PayPal Platform: Journey to APIs & Micr...
Redesigning PayPal APIs for Scale and Simplicity - QCon San Francisco 2013
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
Past, Present, Future of APIS

What's hot (20)

PDF
Ultimate Guide to 30+ API Documentation Solutions
PDF
Building Self Documenting REST APIs
PPTX
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
PDF
"Kongゲートウェイ2.5リリース" Kong Konnectアップデート オンラインミートアップ
PPTX
API Description Languages: Which is the Right One for Me?
PPTX
Evolution of PayPal API Platform at API Meetup
PPTX
Operational API design anti-patterns (Jason Harmon)
PDF
Scaling Your Team With GraphQL: Why Relationships Matter
PPTX
Oracle APEX, Low Code for Data Driving Apps
PDF
PDF
The 7 Deadly Sins of API Design
PDF
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
DOC
Pronobesh resume
PPTX
What’s a REST API and why should I care?
PPTX
apidays LIVE Australia 2020 - Leveraging DevOps to visualize your digital eco...
PPTX
Panel Discussion SAP DevOps - ReleaseOwl
DOC
Pronobesh_Resume
PDF
Experience with Google Glass and Business Applications
PPTX
API Athens Meetup - API standards 25-6-2014
Ultimate Guide to 30+ API Documentation Solutions
Building Self Documenting REST APIs
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
"Kongゲートウェイ2.5リリース" Kong Konnectアップデート オンラインミートアップ
API Description Languages: Which is the Right One for Me?
Evolution of PayPal API Platform at API Meetup
Operational API design anti-patterns (Jason Harmon)
Scaling Your Team With GraphQL: Why Relationships Matter
Oracle APEX, Low Code for Data Driving Apps
The 7 Deadly Sins of API Design
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
Pronobesh resume
What’s a REST API and why should I care?
apidays LIVE Australia 2020 - Leveraging DevOps to visualize your digital eco...
Panel Discussion SAP DevOps - ReleaseOwl
Pronobesh_Resume
Experience with Google Glass and Business Applications
API Athens Meetup - API standards 25-6-2014
Ad

Similar to [Rakuten TechConf2014] [E-4] Rakuten Front-end Framework Project (20)

DOCX
Symfony framework-An overview and usability for web development
PDF
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
PPTX
[RakutenTechConf2013] [E-2] HTML5 in Rakuten
PDF
10 Popular Python Frameworks for web development.pdf
PDF
Angular (v2 and up) - Morning to understand - Linagora
PDF
How to Successfully Master the PHP Development Tools.pdf
PPT
.NET Recommended Resources
PPTX
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
PPTX
Breaking the 2 Pizza Paradox with your Platform as an Application
PDF
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
PPT
Federico Feroldi Php In Yahoo
PPTX
Neev Open Source Contributions
PDF
Top 6 php framework
PDF
"Write once, run everywhere", Oleksii Levzhynskyi
PDF
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
PDF
Java Framework comparison
PPTX
We-Donut.io presentation of Platform
PDF
Top 10 python frameworks for web development in 2020
PDF
The Architecture Of Software Defined Radios Essay
PDF
The Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
Symfony framework-An overview and usability for web development
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
[RakutenTechConf2013] [E-2] HTML5 in Rakuten
10 Popular Python Frameworks for web development.pdf
Angular (v2 and up) - Morning to understand - Linagora
How to Successfully Master the PHP Development Tools.pdf
.NET Recommended Resources
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Breaking the 2 Pizza Paradox with your Platform as an Application
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Federico Feroldi Php In Yahoo
Neev Open Source Contributions
Top 6 php framework
"Write once, run everywhere", Oleksii Levzhynskyi
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Java Framework comparison
We-Donut.io presentation of Platform
Top 10 python frameworks for web development in 2020
The Architecture Of Software Defined Radios Essay
The Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
Ad

More from Rakuten Group, Inc. (20)

PDF
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
PPTX
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
PDF
楽天における安全な秘匿情報管理への道のり
PDF
What Makes Software Green?
PDF
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
PDF
DataSkillCultureを浸透させる楽天の取り組み
PDF
大規模なリアルタイム監視の導入と展開
PDF
楽天における大規模データベースの運用
PDF
楽天サービスを支えるネットワークインフラストラクチャー
PDF
楽天の規模とクラウドプラットフォーム統括部の役割
PDF
Rakuten Services and Infrastructure Team.pdf
PDF
The Data Platform Administration Handling the 100 PB.pdf
PDF
Supporting Internal Customers as Technical Account Managers.pdf
PDF
Making Cloud Native CI_CD Services.pdf
PDF
How We Defined Our Own Cloud.pdf
PDF
Travel & Leisure Platform Department's tech info
PDF
Travel & Leisure Platform Department's tech info
PDF
OWASPTop10_Introduction
PDF
Introduction of GORA API Group technology
PDF
100PBを越えるデータプラットフォームの実情
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
楽天における安全な秘匿情報管理への道のり
What Makes Software Green?
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
DataSkillCultureを浸透させる楽天の取り組み
大規模なリアルタイム監視の導入と展開
楽天における大規模データベースの運用
楽天サービスを支えるネットワークインフラストラクチャー
楽天の規模とクラウドプラットフォーム統括部の役割
Rakuten Services and Infrastructure Team.pdf
The Data Platform Administration Handling the 100 PB.pdf
Supporting Internal Customers as Technical Account Managers.pdf
Making Cloud Native CI_CD Services.pdf
How We Defined Our Own Cloud.pdf
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech info
OWASPTop10_Introduction
Introduction of GORA API Group technology
100PBを越えるデータプラットフォームの実情

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Spectroscopy.pptx food analysis technology
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Machine Learning_overview_presentation.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
Reach Out and Touch Someone: Haptics and Empathic Computing
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
MYSQL Presentation for SQL database connectivity
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Spectral efficient network and resource selection model in 5G networks
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Programs and apps: productivity, graphics, security and other tools
Advanced methodologies resolving dimensionality complications for autism neur...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectroscopy.pptx food analysis technology
Assigned Numbers - 2025 - Bluetooth® Document
Digital-Transformation-Roadmap-for-Companies.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Machine Learning_overview_presentation.pptx
Unlocking AI with Model Context Protocol (MCP)

[Rakuten TechConf2014] [E-4] Rakuten Front-end Framework Project

  • 1. Rakuten Front-end Framework Project October 25th, 2014 Tsutomu Ogasawara / Hiroyuki Tanjo Creative & Web Design Department Rakuten Inc. http://www.rakuten.co.jp/ Presentation Video: http://youtu.be/-d15atCdR0E
  • 2. 2 Self Introduction Oga Tsutomu Ogasawara Role Front-end Technology Team Leader Organization Creative & Web Design Department Expertise Software Engineer / UI Designer / Technical Director Contact tsutomu.ogasawara@mail.rakuten.com ogaoga
  • 3. 3 Self Introduction Creative & Web Design Department Development Unit  Infrastructure  Database  Web Service  Smart Device App  Web API  etc...  UX Design  Web Creation  Analytics  SEO  Performance  Mobile Strategy  Front-end Technology
  • 4. 4 Self Introduction Creative & Web Design Department Development Unit Business Unit
  • 5. 5 Self Introduction http://tech.rakuten.co.jp/ 2012 2013 2014
  • 6. 6 Agenda 1. Trend of Front-end 2. What is "Rakuten Front-end Framework" ? 3. Technology of RFF 4. Demo 5. Case Examples 6. Future Plan 7. Wrap up
  • 7. 7 Agenda 1. Trend of Front-end 2. What is "Rakuten Front-end Framework" ? 3. Technology of RFF 4. Demo 5. Case Examples 6. Future Plan 7. Wrap up
  • 8. 8 Trend of Front-end
  • 9. 9 Trend of Front-end  Rich Contents  High Performance  Cross Platform  etc..
  • 10. 10 Trend of Front-end Various issues became obvious.  Large-scale, complicated JavaScript code.  Security threat.  Low web performance.  Compatibility problems.  etc...
  • 11. 11 Trend of Front-end To solve the issues, developers around the world have created many useful tools and libraries.
  • 12. 12 Trend of Front-end in Rakuten
  • 13. 13 Trend of Front-end in Rakuten Combination of tools and libraries was different in each project. Project Project Project Project Project ・・・
  • 14. 14 Trend of Front-end in Rakuten Combination of tools and libraries was different in each project. We need to standardize tools to Project Project Project Project Project ・・・ improve our productivity, and keep flexibility for various projects.
  • 15. 15 Trend of Front-end in Rakuten Additionally, we wanted to standardize templates and UI components with approaches like "HTML5 Boilerplate" and "Bootstrap". Bootstrap http://getbootstrap.com/ HTML5 Boilerplate: The web’s most popular front-end template http://html5boilerplate.com/
  • 16. 16 Trend of Front-end in Rakuten Staerted a project to standardize our tools and libraries in order to improve our productivity with front-end technologies.
  • 17. 17 Trend of Front-end in Rakuten Started a project to standardize our tools and libraries in order to improve our productivity with front-end technologies. Rakuten Front-end Framework Project
  • 18. 18 Agenda 1. Trend of Front-end 2. What is "Rakuten Front-end Framework" ? 3. Technology of RFF 4. Demo 5. Case Examples 6. Future Plan 7. Wrap up
  • 19. 19 What is "Rakuten Front-end Framework" ? "Rakuten Front-end Framework" is the activities to improve front-end development environment in Rakuten by utilizing the latest technologies.
  • 20. 20 What is "Rakuten Front-end Framework" ? Oga Tsutomu Ogasawara Project Leader / Developer Tantan Hiroyuki Tanjo Lead Architect / Developer
  • 21. 21 What is "Rakuten Front-end Framework" ? RFF consists of 4 parts: Tools Libraries Environment Operation
  • 22. 22 What is "Rakuten Front-end Framework" ? Tools Libraries Environment Operation
  • 23. 23 What is "Rakuten Front-end Framework" ? Tools Libraries Environment Operation
  • 24. 24 What is "Rakuten Front-end Framework" ? RFF includes templates, UI components, resources, common scripts, etc. Standard Templates UI Components Resources
  • 25. 25 What is "Rakuten Front-end Framework" ? Tools Libraries Environment Operation
  • 26. 26 What is "Rakuten Front-end Framework" ? Tools Libraries Environment Operation
  • 27. 27 What is "Rakuten Front-end Framework" ? Tools Libraries Environment Operation
  • 28. 28 Objective of RFF We aim to
  • 29. 29 Objective of RFF We aim to  Develop our useful tools by utilizing the latest technologies to improve our quality and productivity.
  • 30. 30 Objective of RFF We aim to  Develop our useful tools by utilizing the latest technologies to improve our quality and productivity.  Deliver common libraries via the tools to spread out our knowledge.
  • 31. 31 Objective of RFF We aim to  Develop our useful tools by utilizing the latest technologies to improve our quality and productivity.  Deliver common libraries via the tools to spread out our knowledge.  Contribute to the user experience of Rakuten services.
  • 32. 32 Agenda 1. Trend of Front-end 2. What is "Rakuten Front-end Framework" ? 3. Technology of RFF 4. Demo 5. Case Examples 6. Future Plan 7. Wrap up
  • 33. 33 RFF Tools Tools Libraries Environment Operation
  • 34. 34 RFF Tools Developed 2 products. Desktop Application rff-gui Command Line Tool generator-rff
  • 35. Desktop Application rff-gui 35 RFF Tools Command line tool generator-rff OR 1. Scaffolding 2. Package Management 3. Preview 4. Build Yeoman Bower BrowserSync Grunt
  • 36. 36 RFF Tools / Scaffolding 1. Scaffolding 2. Package Management 3. Preview 4. Build Yeoman Bower BrowserSync Grunt • Generate standard scaffold • Customize
  • 37. 37 RFF Tools / Scaffolding
  • 38. 38 RFF Tools / Scaffolding
  • 39. 39 RFF Tools / Package Management 1. Scaffolding 2. Package Management Yeoman Bower • Generate standard scaffold • Customize 3. Preview 4. Build BrowserSync Grunt • Install packages • Resolve dependency
  • 40. 40 RFF Tools / Package Management
  • 41. 41 RFF Tools / Package Management $ cat bower.json { "name": "rff-test", "version": "0.0.0", "dependencies": { "jquery": "~1.11.1", "normalize.css": "~3.0.1" }, "devDependencies": {} } bower.json $ bower install $ tree src/bower_components -L 1 src/bower_components ├── jquery └── normalize.css install command installed libraries
  • 42. 42 RFF Tools / Preview 1. Scaffolding 2. Package Management Yeoman Bower • Generate standard scaffold • Customize 3. Preview 4. Build BrowserSync Grunt • Install packages • Resolve dependency • Check locally • Test multi browser
  • 43. 43 RFF Tools / Preview
  • 44. 44 RFF Tools / Build 1. Scaffolding 2. Package Management Yeoman Bower • Generate standard scaffold • Customize 3. Preview 4. Build BrowserSync Grunt • Install packages • Resolve dependency • Check locally • Test multi browser • Convert files • Push to servers
  • 45. 45 RFF Tools / Build
  • 46. src dist 46 RFF Tools / Build img img .css .scss .less .stylus .coffee Compile Auto prefixer Minify .css .css .css .js .js .jade .html img .css .js img Add Revision Add Revision Add Revision .html .html CSS Sprite Compile Modify Links Compile Merge & Minify Merge & Minify Modify Links
  • 47. 47 RFF Tools / Build img .css Compile Auto prefixer Minify .css .css .css .js .js .html img .css .js img Add Revision Add Revision Add Revision .html .html CSS Sprite Compile Modify Links Compile Merge & Minify Merge & Minify Modify Links dist Git FTP Push Put
  • 48. 48 RFF Tools "generator-rff" is very useful but it's hard to use for non-engineers such as designers or directors.
  • 49. 49 RFF Tools / rff-gui We also developed the GUI application of generator-rff, "rff-gui" for Mac & Windows.
  • 50. 50 RFF Tools / rff-gui 1. Scaffolding 2. Package Management 3. Preview 4. Build
  • 51. 51 RFF Tools / rff-gui node-webkit: An application runtime based on Chromium and Node.js for Win, Mac and Linux.
  • 52. 52 RFF Tools / rff-gui HTML / CSS / JavaScript AngularJS Bootstrap generator-rff node-webkit (Node.js + Chromium) Mac or Windows or Linux rff-gui GUI Layer
  • 53. 53 RFF Tools / rff-gui Benefits of rff-gui are:  Non-engineers can develop in the common environment with engineers.  Easy to explain this project for stakeholders by showing the visible app.  Good opportunity to improve our development skills.
  • 54. 54 Other tools  grunt-charset  Grunt plugin to convert text encoding and replace charset code in HTML and CSS.  grunt-appdmg  Grunt plugin to generate a disk image file for OS X.  rff-doctor  Node module to verify the system configuration.
  • 55. 55 Other tools  grunt-charset  Grunt plugin to convert text encoding and replace charset code in HTML and CSS.  grunt-appdmg  Grunt plugin to generate a disk image file for OS X.  rff-doctor  Node module to verify the system configuration.
  • 56. 56 Other tools  grunt-charset  Grunt plugin to convert text encoding and replace charset code in HTML and CSS.  grunt-appdmg  Grunt plugin to generate a disk image file for OS X.  rff-doctor  Node module to verify the system configuration.
  • 57. 57 Other tools  grunt-charset  Grunt plugin to convert text encoding and replace charset code in HTML and CSS.  grunt-appdmg  Grunt plugin to generate a disk image file for OS X.  rff-doctor  Node module to verify the system configuration.
  • 58. 58 Agenda 1. Trend of Front-end 2. What is "Rakuten Front-end Framework" ? 3. Technology of RFF 4. Demo 5. Case Examples 6. Future Plan 7. Wrap up
  • 59. 59 Self Introduction Tantan Hiroyuki Tanjo Role Developer of RFF Components Organization Creative & Web Design Department Expertise Front-end Development / Graphic Design / Painting Contact hiroyuki.tanjo@mail.rakuten.com htanjo
  • 60. 60 Demo Video http://youtu.be/jGzqR6-jAYE
  • 61. 61 Agenda 1. Trend of Front-end 2. What is "Rakuten Front-end Framework" ? 3. Technology of RFF 4. Demo 5. Case Examples 6. Future Plan 7. Wrap up
  • 62. 62 Case Examples Already started using RFF for over 10 projects. Rakuten CAFE Rakuten Energy (for Smartphone) http://cafe.rakuten.co.jp/ http://energy.rakuten.co.jp/
  • 63. 63 Case Examples Developer's voice:  We didn't have to write the grunt configuration.  We don't have to take care of performance because RFF automatically optimized resources.
  • 64. 64 Agenda 1. Trend of Front-end 2. What is "Rakuten Front-end Framework" ? 3. Technology of RFF 4. Demo 5. Case Examples 6. Future Plan 7. Wrap up
  • 65. 65 Future Plan Tools Libraries Environment Operation  Keep improving based on developers' feedback and technology trend.  Make rff-gui user-friendly.
  • 66. 66 Future Plan Tools Libraries Environment Operation  Provide various libraries such as templates, UI components, utilities, etc.
  • 67. 67 Future Plan Tools Libraries  Build the server-side environment to automate our tasks such as build, test, deploy, etc. Environment Operation
  • 68. 68 Future Plan Tools Libraries  Build the team to continuously develop RFF, support developers and maintain the environment. Environment Operation
  • 69. 69 Agenda 1. Trend of Front-end 2. What is "Rakuten Front-end Framework" ? 3. Technology of RFF 4. Demo 5. Case Examples 6. Future Plan 7. Wrap up
  • 70. 70 Wrap up  Utilize the latest technologies to improve our quality and productivity.
  • 71. 71 Wrap up  Utilize the latest technologies to improve our quality and productivity.  Launched the Rakuten Front-end Framework which consists of Tools, Libraries, Environment and Operation.
  • 72. 72 Wrap up  Utilize the latest technologies to improve our quality and productivity.  Launched the Rakuten Front-end Framework which consists of Tools, Libraries, Environment and Operation.  RFF should be suitable for various projects, useful for various people to become common.
  • 73. 73 Wrap up  Utilize the latest technologies to improve our quality and productivity.  Launched the Rakuten Front-end Framework which consists of Tools, Libraries, Environment and Operation.  RFF should be suitable for various projects, useful for various people to become common.  Developing by ourselves is very important to improve our development environment.
  • 75. 75 Open Source Released some RFF tools as open sources on GitHub! https://github.com/rakuten-frontend
  • 76. 76 Rakuten Front-end Framework
  • 77. 77 Let's work together! We are seeking Front-end Engineers! http://corp.rakuten.co.jp/careers/cwd/

Editor's Notes

  • #2: Welcome to the Rakuten Technology Conference, and welcome to our session. In this session, we would like to talk about Rakuten Front-end Framework Project.
  • #3: Before we begin, let me introduce myself. I am Tsutomu Ogasawara, a leader of Front-end Technology Team, in Creative & Web Design Department. I joined Rakuten in July 2012. Before Rakuten, I worked for a Web service company as a technical director and UI designer. and worked for an electronics company as a UI designer and software engineer. And my hobby is iOS app development.
  • #4: Our department is Creative & Web Design Department. We are responsible for UX area, such as UX Design, visual & interaction design, analytics, SEO, Performance, mobile strategy and Front-end Technology.
  • #5: Usually, we release services and applications, in collaboration with the development unit and business units.
  • #6: Our team, Front-end Technology Team has been developed and designed the conference sites. You can see the timetable and speakers' information. Please check it out.
  • #7: Here is the agenda. The purpose of our presentation is to tell you how we have developed the framework to improve our development environment. So let's get started.
  • #8: First of all, let me talk about the trend of front-end.
  • #9: Last year, we explained about our HTML5 activities in this conference.
  • #10: I said, HTML5 allowed us to develop rich contents and applications, for various platforms.
  • #11: In the meantime, various issues became obvious, such as large-scale development, complicated source code, security, performance, compatibility, and so on.
  • #12: To solve the issues, many developers around the world, have created so many useful tools and libraries.
  • #13: In Rakuten, we have already started using those useful tools to develop efficiently. However,
  • #14: The knowledge of configuration was not shared because combination of tools was different in each project like this. So we needed to configure the tools, at the beginning of every project. However, that’s not efficient.
  • #15: We needed to standardize the tools to improve our productivity, and we also needed to keep flexibility for various project style.
  • #16: Additionally, we wanted to standardize not only tools, but also template and UI components like HTML5 boilerplate and bootstrap, to keep consistency.
  • #17: Considering these situations, we started a project to standardize our development tools and libraries, in order to improve our productivity, with the latest front-end technologies. That is,
  • #18: Rakuten Front-end Framework Project.
  • #19: So, let me explain what “Rakuten Front-end Framework” is.
  • #20: Rakuten Front-end Framework is the activities to improve front-end development environment in Rakuten by utilizing the latest technologies.
  • #21: This is the member of the project. I am the project leader. And, Hiroyuki Tanjo is the lead architect of RFF. He is a front-end engineer in our department. We started the project from February.
  • #22: RFF consists of 4 parts.
  • #23: The first one is "Tools". This is the main part of the framework based on open sources, such as yeoman, grunt, bower, and so on. It allows us to develop web contents efficiently. We will explain the details, later.
  • #24: The second one is "Libraries".
  • #25: We would like to develop common resources such as standard templates, common UI components, icons, common scripts in order to keep consistency in Rakuten. We will deliver these resources through the RFF tools.
  • #26: The third one is "Environment" To distribute the tools and libraries, we should utilize server-side solutions such as github and npm. And we will introduce Jenkins for automations such as build, test and deploy. Not only front-end tools, but It's also very important to utilize such environment to be used widely.
  • #27: The last one is "Operation". This is not a technical thing, but we think it is also very important in order to expand the project. We provided documentations, briefing sessions, workshop, technical support, and so on.
  • #28: These are 4 main elements of RFF.
  • #29: Through the Rakuten Front-end Framework, we aim to
  • #30: Develop our useful tools, by utilizing the latest technologies to improve our quality and productivity.
  • #31: Then, deliver common libraries through the tools, to spread out our knowledge.
  • #32: Finally, we want to contribute to the user experience of Rakuten services. This is the objective of Rakuten Front-end Framework.
  • #33: Next topic is the technology of RFF.
  • #34: Since we started the project in February, we've mainly developed the tools. In this part, I would like to talk about the inside of RFF tools.
  • #35: We developed 2 products, generator-rff and rff-gui. generator-rff is a Yeoman generator which provides a scaffolding of project, including HTML, CSS, JavaScript and cofiguration files. And rff-gui is the GUI version of generator-rff.
  • #36: Basically both tools have same functionalities. So, if you love command line interface, you can use generator-rff. If you hate it, you can use rff-gui. There are mainly 4 steps in the tools, Scaffolding, Package Management, Preview and Build. Let's take a look at each step.
  • #37: First step is Scaffolding. It generates template files and configurations we need on the launch of project, in order to keep consistency of development method, and directory structure. We adopted "Yeoman" as the scaffolding tool.
  • #38: Yeoman is a major scaffolding tool for front-end development. In the official site, over 1000 generators are provided. generator-rff is just a Yeoman generator.
  • #39: We provide customize options in the tools, to be suitable for various projects in Rakuten. I will show how to customize the scaffolding in the actual demo, later.
  • #40: Next one is the package management. We utilize various open source libraries, such as jQuery, AngularJS, and so on. So we adopted Bower to manage the libraries. Bower is a famous package management tool developed by Twitter. It enables us to easily install appropriate version of packages.
  • #41: You can install major libraries by using Bower. Over 18,000 libraries are registered in the official site.
  • #42: You can immediately use bower, because the configuration file "bower.json" is already integrated in generator-rff.
  • #43: Next one is Preview. You can quickly check the contents which you edited, by using a local Web server
  • #44: BrowserSync is an open source local Web server. You can check the contents quickly, and you don't have to reload the browser, because the contents is reloaded automatically. And it's not just a local server, as the name suggests, it has synchronizing functions. For example, if you scroll down a page on a browser, the same page on another browser automatically scrolls down synchronously. It's very useful, especially for responsive web design, but It's hard to explain the actual behavior in words. So we will show the demo, later.
  • #45: The last one is Build. After checking the contents, we should build files to distribute. We use Grunt for the build phase.
  • #46: Grunt is a very famous task runner tool. There are so many various task plugins, in the official site. For example, compilers of meta languages such as Sass, LESS, Stylus, CoffeeScript, and so on. And file manipulation tasks such as merge, minify, convert, validate, and so on.
  • #47: This shows the build flow we configured in RFF. As you can see, there are various converting tasks in the process. Finally the distribution files are generated through the process from the source files. It's hard to edit the Grunt configuration file, to execute complicated process like this. So we standardized the configuration, not to duplicate works, on each project.
  • #48: In the latest version, 0.4, we added, a deployment feature. You can push to any Git repository, or, upload to a FTP server by using a Grunt command.
  • #49: As I mentioned, we developed our tools which are suitable for our development environment, by integrating various open-source tools. generator-rff is very useful for us but, it's little hard for non-engineers to understand, because it's a command line tool.
  • #50: So, we also developed the GUI desktop application of generator-rff. It's "rff-gui".
  • #51: It has almost same as generator-rff functionalities.
  • #52: To develop it, we adopted "node-webkit", which is an application runtime, based on WebKit and node.js. It enables us to develop desktop applications for Mac, Windows and Linux.
  • #53: This shows the layer of the app. As you can see, the GUI layer is made with Web technologies such as HTML, CSS and JavaScript. So we use open source libraries, such as AngularJS and Bootstrap. And we can use node modules for the logic layer, because this runtime is based on node.js. generator-rff is also a part of the logic layer. This runtime allows us to develop cross platform applications, with one source code.
  • #54: rff-gui provides unexpected benefits. At the beginning of the RFF project, we set the target user to only front-end engineers. But by using rff-gui, non-engineers can also develop in common development environment, with engineers. And it was easy to explain this project for stakeholders, by showing the actual visible app instead of the command line. And it's a good opportunity to improve our development skills, through the development.
  • #55: Furthermore, we developed other utilities.
  • #56: grunt-charset is a grunt plugin to convert text encoding of files, and replace charset code in HTML and CSS. There are some non UTF-8 services in Rakuten. Developers don't have to take care of the text encoding by using this plugin.
  • #57: grunt-appdmg is also a grunt plugin which generates a disk image file for Mac OS X. We developed the plugin in order to release rff-gui as a binary.
  • #58: rff-doctor is a node module to verify the system configuration. It helps you check whether required modules are installed or not in your PC.
  • #59: So, let's take a look at the demo. I want to hand over the microphone to Tantan.
  • #60: I’m Hiroyuki Tanjo, the main developer of RFF. I joined Rakuten in 2009 as a new graduate. I have been involved in many kinds of Rakuten services, and recently I worked as the lead front-end developer of Global Rakuten Ichiba project. Now I’m often in GitHub for developing RFF, or I’m in deviantART as a painter in private.
  • #62: Thank you Tantan, As you can see, RFF tools are very useful for Web development. Next, I want to introduce our case examples.
  • #63: We've already started using RFF for over 10 projects. Rakuten Cafe and Rakuten Energy smartphone site were developed by using RFF tools.
  • #64: The developers said like this. RFF is a good tool because we didn't have to take care of the grunt configuration and performance.
  • #65: About Future Plan.
  • #66: Regarding Tools, We will keep improving generator-rff, based on developers' feedback and technology trend. The current version of rff-gui is little bit complicated. So we will improve the UI to be user-friendly.
  • #67: Libraries, We are preparing to release common UI components, internally. Then we will provide CSS and JavaScript of the components through the RFF tools. And we would like to develop, more common well-used scripts and styles.
  • #68: About environment, we would like to build the server-side environment, based on Jenkins, in order to automate build, test, and deploy.
  • #69: About operation, Currently we are only 2. I would like to involve other engineers and designers to the project, in order to continuously develop RFF. And we would like to build team, to support developers, and maintain the environment.
  • #70: Wrap up.
  • #71: In this session, I mentioned We must utilize the latest technologies to improve our quality and productivity.
  • #72: So we launched Rakuten Front-end Framework which consists of Tools, Libraries, Environment and Operation.
  • #73: RFF should be suitable for various projects, and useful for various people to become common in Rakuten. Therefore, we developed the GUI application for non engineers.
  • #74: And, developing by ourselves is very important to efficiently improve our development environment.
  • #75: And I have one announcement.
  • #76: I'm happy to announce that we've just released, some of RFF tools, as open-source on GitHub. We have developed the tools on internal git repository so far. But from today, we develop them on GitHub. I think this is a small contribution to the open source community. We will keep contributing through the project. Please try it and give us feedback.
  • #77: Today I talked about Rakuten Front-end Framework. This project is, just at the beginning stage, of front-end evolution in Rakuten. We will keep developing RFF, and improving our service quality and productivity, so that, we can contribute to the best user experience of Rakuten services. To achieve it, we need more front-end engineers.
  • #78: We, Creative & Web Design Department is seeking talented front-end engineers, who are interested in cutting-edge technologies. If you are interested in our project, please let us know. We can talk indivisually after the session or beer bash.
  • #79: Thank you so much for coming to our session today.