SPA(シングルページアプリケーション)のフレームワークと聞くと、どうしてもReactやAngular等のJavaScriptのライブラリを想像すると思いますが、今回は学習コストがかかるような複雑なものでなく、iOSやAndroidのネイティブアプリのようなUIを実現するためのCSSを中心としたシンプルなSPAフレームワーク「Ratchet」を紹介します。
フレームワークの選考基準
- 導入が簡単であること
- テーマ用のCSSもあるが、基本ファイルはCSSとJSの2つだけ
- 学習コストがかからないこと
- 書き方がBootstrapとほぼ変わらないので馴染みがある
- 依存、または干渉しないこと
- ピュアなJavaScriptなので、jQueryなどのライブラリも使える
- ネイティブっぽいこと
- Pjax(PushState + Ajax)を利用したページ遷移とエフェクトでネイティブアプリっぽい
SPA(シングルページアプリケーション)とは?
シングルページアプリケーション(英: single-page application、SPA)とは、単一のWebページのみから構成することで、デスクトップアプリケーションのようなユーザ体験を提供するWebアプリケーションまたはWebサイトである。
シングルページアプリケーション – Wikipedia
必要なコード(HTML、JavaScript、CSS)は最初にまとめて読み込むか、ユーザの操作などに応じて動的にサーバと通信し、必要なものだけ読み込みを行う。
Ratchetの導入
上記の通り、Ratchetの導入は下記の2行をheadタグ内に記述して読み込むだけの簡単作業です。
CDNもありますので、こちらをどうぞ。
<link href="//cdnjs.cloudflare.com/ajax/libs/ratchet/2.0.2/css/ratchet.min.css" rel="stylesheet">
<script src="//cdnjs.cloudflare.com/ajax/libs/ratchet/2.0.2/js/ratchet.min.js"></script>
iOSのテーマにしたい場合は、
<link href="//cdnjs.cloudflare.com/ajax/libs/ratchet/2.0.2/css/ratchet-theme-ios.min.css" rel="stylesheet">
Androidのテーマにしたい場合は、
<link href="//cdnjs.cloudflare.com/ajax/libs/ratchet/2.0.2/css/ratchet-theme-android.min.css" rel="stylesheet">
をratchet.min.cssの下に加えてください。
Ratchetの書き方
基本的に、table-view > table-view-cellな感じで構築するようです。
Getting startedに書いてありましたので転記します。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ratchet template page</title> <!-- Sets initial viewport load and disables zooming -->
<meta name="viewport" content="initial-scale=1, maximum-scale=1"> <!-- Makes your prototype chrome-less once bookmarked to your phone's home screen -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black"> <!-- Include the compiled Ratchet CSS -->
<link href="//cdnjs.cloudflare.com/ajax/libs/ratchet/2.0.2/css/ratchet.min.css" rel="stylesheet"> <!-- Include the compiled Ratchet JS -->
<script src="//cdnjs.cloudflare.com/ajax/libs/ratchet/2.0.2/js/ratchet.min.js"></script>
</head>
<body> <!-- Make sure all your bars are the first things in your <body> -->
<header class="bar bar-nav">
<h1 class="title">Ratchet</h1>
</header> <!-- Wrap all non-bar HTML in the .content div (this is actually what scrolls) -->
<div class="content">
<p class="content-padded">Thanks for downloading Ratchet. This is an example HTML page that's linked up to compiled Ratchet CSS and JS, has the proper meta tags and the HTML structure. Need some more help before you start filling this with your own content? Check out some Ratchet resources:</p>
<div class="card">
<ul class="table-view">
<li class="table-view-cell">
<a class="push-right" href="http://goratchet.com">
<strong>Ratchet documentation</strong>
</a>
</li>
<li class="table-view-cell">
<a class="push-right" href="https://github.com/twbs/ratchet/">
<strong>Ratchet on Github</strong>
</a>
</li>
<li class="table-view-cell">
<a class="push-right" href="https://groups.google.com/forum/#!forum/goratchet">
<strong>Ratchet Google group</strong>
</a>
</li>
<li class="table-view-cell">
<a class="push-right" href="https://twitter.com/goratchet">
<strong>Ratchet on Twitter</strong>
</a>
</li>
</ul>
</div>
</div> </body>
</html>
他にも、ヘッダーとフッター、スライドショーやモーダルなども用意されていますので、詳しくはComponentsをご覧ください。
サンプルアプリケーション
公式サイトのサンプルがありますので、こちらをご覧ください。
- Original:https://minory.org/ratchet.html
- Source:Minory
- Author:管理者