Onsen UI 2.0とUIライブラリの未来

45
Onsen UI 2.0とUIライブラリの未来 Enterprise HTML5 developer Meetup #2 アシアル株式会社 久保田光則 Onsen UI
  • date post

    16-Apr-2017
  • Category

    Technology

  • view

    7.065
  • download

    0

Transcript of Onsen UI 2.0とUIライブラリの未来

Page 1: Onsen UI 2.0とUIライブラリの未来

Onsen UI 2.0とUIライブラリの未来Enterprise HTML5 developer Meetup #2 アシアル株式会社 久保田光則

Onsen UI

Page 2: Onsen UI 2.0とUIライブラリの未来

久保田光則@anatoo

Page 3: Onsen UI 2.0とUIライブラリの未来

好評発売中!

Page 4: Onsen UI 2.0とUIライブラリの未来

Agenda

- Onsen UIとは? - v2.0-betaが出ました - Material Design対応 - Web Components化

Page 5: Onsen UI 2.0とUIライブラリの未来

Onsen UIとは

- HTML5ハイブリッドアプリ用のUIライブラリ

Page 6: Onsen UI 2.0とUIライブラリの未来

要素を記述してUIを宣言

Page 7: Onsen UI 2.0とUIライブラリの未来

- Cordova上で使うことを想定

Cordova

Onsen UIHTML5

JavaScript & CSSHTML5 Application

Page 8: Onsen UI 2.0とUIライブラリの未来

なぜこれが必要?

Page 9: Onsen UI 2.0とUIライブラリの未来

http://cordova.apache.org

Page 10: Onsen UI 2.0とUIライブラリの未来

HTML5をラップしてアプリへ

+♪

Page 11: Onsen UI 2.0とUIライブラリの未来

クロスプラットフォーム

Android iOS

Page 12: Onsen UI 2.0とUIライブラリの未来

ウェブ技術の再利用

Page 13: Onsen UI 2.0とUIライブラリの未来

ストアでの配布

- 外見は普通のアプリなのでそのまま配布できる

Page 14: Onsen UI 2.0とUIライブラリの未来

ネイティブの機能をJSから

- CordovaがJavaScript向けのAPIを用意してくれる

Android / iOS

OS API

Page 15: Onsen UI 2.0とUIライブラリの未来

事例: http://cordova.apache.org

Page 16: Onsen UI 2.0とUIライブラリの未来

ハイブリッドアプリ開発の課題

- プリセットのUIキットの不在 - UIのパフォーマンス

Page 17: Onsen UI 2.0とUIライブラリの未来

レンダリングが重い!

- HTML5アプリの実装はできても レンダリングのパフォーマンスを改善できる人はそれほどいない

Page 18: Onsen UI 2.0とUIライブラリの未来
Page 19: Onsen UI 2.0とUIライブラリの未来

http://onsen.io/

Page 20: Onsen UI 2.0とUIライブラリの未来

コンポーネントが沢山

- JavaScriptコンポーネントが約30個 - CSSコンポーネントが約60個

Page 21: Onsen UI 2.0とUIライブラリの未来

Onsen UIでは

- モバイルアプリ開発に必要なUI一式を提供 - UIコンポーネントは予めチューニング

開発者がアプリ開発に フォーカスできるようにする

Page 22: Onsen UI 2.0とUIライブラリの未来

プロジェクトのステータス

- 2013年公開から約2年経過 - コミット数 約4000 - Githubスター数 約2400 - 今まで作成されたissue数 約1050 - プルリクエストの数 約370

Page 23: Onsen UI 2.0とUIライブラリの未来

事例: たくさん

Page 24: Onsen UI 2.0とUIライブラリの未来

1. Angularへの依存をゼロに

2. Material Designへの対応

v2.0で変わること

Page 25: Onsen UI 2.0とUIライブラリの未来

- 従来はAngularのdirectiveを利用 - Angularを必ず読み込む必要あり

Page 26: Onsen UI 2.0とUIライブラリの未来

UIライブラリ共通の問題

- フレームワークに依存してしまうこと

jQuery

jQuery Plugin

React.js

React Components

Angular1.x

Directive

Page 27: Onsen UI 2.0とUIライブラリの未来

色んなフレームワーク

Page 28: Onsen UI 2.0とUIライブラリの未来

画像出典: http://blog.bitovi.com/longevity-or-lack-thereof-in-javascript-frameworks/

移り変わりの速さ

Page 29: Onsen UI 2.0とUIライブラリの未来

Web Components

Onsen UIの選択

Page 30: Onsen UI 2.0とUIライブラリの未来

Custom Elements Templates Shadow DOM HTML Imports{

Page 31: Onsen UI 2.0とUIライブラリの未来

Custom Elements Templates Shadow DOM HTML Imports{

Page 32: Onsen UI 2.0とUIライブラリの未来

<x-hoge></x-hoge>

Page 33: Onsen UI 2.0とUIライブラリの未来

// x-hoge要素を定義

document.registerElement( 'x-hoge', {prototype: Object.create(HTMLElement.prototype)}

);

Page 34: Onsen UI 2.0とUIライブラリの未来

<body> <div> <x-hoge></x-hoge> </div> </body>

Page 35: Onsen UI 2.0とUIライブラリの未来

var proto = Object.create(HTMLElement.prototype);

// 要素が作成された時に呼ばれる

proto.createdCallback = function() {…};

// DOMツリーに追加された時に呼ばれる

proto.attachedCallback = function() {…};

// DOMツリーから取り除かれた時に呼ばれる

proto.detachedCallback = function() {…};

document.registerElement('x-hoge', {prototype: proto});

Page 36: Onsen UI 2.0とUIライブラリの未来

<x-hoge message=“Hello World!”> </x-hoge>

Page 37: Onsen UI 2.0とUIライブラリの未来

var proto = Object.create(HTMLElement.prototype);

// 属性の値が変更された時に呼ばれる

proto.attributeChangedCallback = function(name, old, new) {…};

document.registerElement('x-hoge', {prototype: proto});

Page 38: Onsen UI 2.0とUIライブラリの未来

<x-hoge></x-hoge>

<script> var hoge = body.querySelector(‘x-hoge’);

hoge.doSomething(); </script>

Page 39: Onsen UI 2.0とUIライブラリの未来

var proto = Object.create(HTMLElement.prototype);

// 任意のメソッド、プロパティを追加する

proto.doSomething = function() {…};

document.registerElement('x-hoge', {prototype: proto});

Page 40: Onsen UI 2.0とUIライブラリの未来

- 2.0では全てのコンポーネントをCustom Elementsで置き換え

- 特定のフレームワークへの依存が消えた

Page 41: Onsen UI 2.0とUIライブラリの未来

Onsen UI 2.0で目指すもの

- どのフレームワークからも利用できるUIライブラリ - Framework Agnostic

Page 42: Onsen UI 2.0とUIライブラリの未来

Material Designへの対応も

Page 43: Onsen UI 2.0とUIライブラリの未来

http://onsen.io/2/ で2.0 beta公開中

Page 44: Onsen UI 2.0とUIライブラリの未来

ご清聴ありがとうございました

Page 45: Onsen UI 2.0とUIライブラリの未来