UIWebViewでつくるUI

発表時に使用したサンプルはこちらです。
http://www.dotapon.sakura.ne.jp/blog/?p=169

3年以上前 にアップロード

(2011年12月10日)

「UIWebViewでつくるUI」の内容

  1. UIWebViewでつくるUI ∼ IEのいない、ステキな世界 ∼ DOTAPON Software @cocopon http://dotapon.sakura.ne.jp
  2. 自己紹介 @cocopon 職業: ホビープログラマ・デザイナ Calqum (iPhone) Osciroi (Win, Mac)
  3. Calqum2 近日公開予定 よろしくね!
  4. 本日の目標 ★ 「UIWebView、見直したぜ」 ★ 「CSSは最強だった」 ★ 「Calqum2…ゴクリ」
  5. はじめに - なぜUIWebViewを使うのか? Interface Builderでいいじゃない
  6. Webアプリの移植がしやすい
  7. リンク付きのUIが簡単に作れる Twitterのtweet詳細画面
  8. CSSが最強すぎる
  9. あの有名アプリでも Twitter Apple Store Reeder 組み込んでいると思われるアプリ、ほんの一例 Gmail
  10. でも、気をつけて 使わないと…
  11. こんなことに
  12. つくる Safari on Mac / iOS Simulator 本日のコマンド ふせぐ 拡大・縮小 / スクロール / 選択 つかう UIWebView かざる 枠の影 / 文字の影 / グラデーション Retina用画像 / アニメーション
  13. つくる Safari on Mac iOS Simulator
  14. MacのSafariでつくる Mobile Safariとはときどき挙動が異なるので参考程度に JavaScriptの本格的なデバッグはこちらで
  15. 開発メニューを有効にする ユーザーエージェントの変更 Webインスペクタの表示
  16. iOS Simulatorでつくる HTMLファイルをドロップできるの、知ってました?
  17. デバッグコンソールを有効にする 設定 > Safari > デベロッパ
  18. デバッグコンソールでできること JavaScriptのエラー確認 console.logの出力
  19. 個人的な使い分け レイアウト決め Mac コーディング Mac JavaScript動作確認 Simulator スタイル仕上げ Simulator 総仕上げ 実機
  20. つかう UIWebViewを組み込む
  21. UIWebViewで開く ファイルを開く 文字列をHTMLとして開く - (void)loadRequest:(NSURLRequest *)request; - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
  22. UIWebViewから受け取る UIWebViewDelegateを設定して、リクエストを検出する - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest: (NSURLRequest *)request navigationType: (UIWebViewNavigationType)navigationType;
  23. デモ
  24. ふせぐ 拡大・縮小 スクロール 選択
  25. 拡大・縮小をふせぐ 全画面前提のHTMLが… 拡大できちゃうとカッコわるい
  26. viewportでふせぐ <meta name="viewport" content="initial-scale=1,user-scalable=no"> initial-scale 初期表示の拡大率 user-scalable ユーザが拡大できるかどうか
  27. スクロールをふせぐ subviewを ったり PrivateAPIを使えばできるけど… JavaScriptで標準の挙動 (=ページスクロール)を抑制 <script type="text/javascript"> document.body.ontouchmove = function(evt) { evt.preventDefault(); }; </script>
  28. 選択をふせぐ -webkit-touch-callout リンクの長押しメニュー表示を設定 -webkit-user-select 選択可能かどうかを設定 * { -webkit-touch-callout: none; -webkit-user-select: none; }
  29. かざる 枠の影 文字の影 グラデーション Retina用画像 アニメーション
  30. box-shadow: (inset:内側) X軸ずれ Y軸ずれ ぼかし半径 色; 枠を影でかざる ちょっとの手間で、完成度がぐっと上がる! box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
  31. 文字を影でかざる ちょっとの手間で、完成度がぐっと上がる! text-shadow: 0 1px 0 #fff; text-shadow: X軸ずれ Y軸ずれ ぼかし半径 色; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
  32. 線形グラデーションでかざる -webkit-gradient(linear, 開始点, 終了点, 色1, 色2, ...) -webkit-gradient(linear, left top, left bottom, from(#a9afbf), color-stop(0.49, #6c768e), color-stop(0.5, #444f6e), to(#59637e)) from ▸ to ▸ color-stop(0.49) ▸ color-stop(0.50) ▸
  33. 円形グラデーションでかざる -webkit-gradient(radial, 開始点, 開始半径, 終了点, 終了半径, 色1, 色2, ...); -webkit-gradient(radial, 50% 30%, 0, 50% 30%, 300, from(#777), to(#333)); (50%, 30%) ▸ 300
  34. Retina用画像でかざる /* 普通の画像 */ .table-section .indicator { background: url(indicator.png) no-repeat center left; } @media only screen and (-webkit-min-device-pixel-ratio: 2) { /* Retina画像 */ .table-section .indicator { background-image: url(indicator@2x.png); -webkit-background-size: 8px 12px; } }
  35. アニメーションでござる
  36. アニメーションでかざる #app-logo { -webkit-animation-name: test; -webkit-animation-delay: 10s; -webkit-animation-duration: 2s; -webkit-animation-iteration-count: 1; } @-webkit-keyframes test { 0% { -webkit-transform: translate(0, 0); -webkit-transition-timing-function: ease-out; } 50% { -webkit-transform: translate(0, -50px) rotate(5deg); -webkit-animation-timing-function: ease-in; } 100% { -webkit-transform: translate(0, 0); } } @-webkit-keyframesでキーフレームを作成 -webkit-animation-nameで、作成したキーフレームを指定
  37. CSSだけでここまでできる(1) • border-radius • box-shadow • text-shadow • -webkit-gradient
  38. CSSだけでここまでできる(2) http://graphicpeel.com/cssiosicons iOS標準アイコン
  39. 参考文献 Safari Dev Center
  40. Safari Dev Centerに今すぐアクセス! Safari CSS Reference サポートするCSSを網羅的に解説。 Safari CSS Visual Effects Guide アニメーションについて詳しく解説。 Safari HTML Reference HTMLタグと属性を網羅的に解説。 metaタグの情報はここに。 Safari Web Content Guide タッチイベントの扱いなど、 主にWebアプリを作る観点から、関連機能を解説。 http://developer.apple.com/devcenter/safari/index.action
  41. UIWebViewでつくるUI DOTAPON Software @cocopon http://dotapon.sakura.ne.jp

このスライドを共有する

  • このエントリーをはてなブックマークに追加
↑