Google 及川さん / シーエーモバイル 白石さん
「Web技術者の祭典」
- 2004 WHATWG
- 2004 Gmail/Google Map
- 2007 Google Developer Day 2007
- Google Gears
- ローカルデータベース
- ローカルサーバー
- ワーカーズ
- Google Gears
- 2008 Google Chrome
- 2009 HTML5の普及が開始
- 2010 Apple Shock
- Flashから脱却
- スマホの普及
- 2011 モダンブラウザが普及
- 2011 ~ 2012 HMTL5の技術
- Canvas
- WebGL
- WebIntents
- Web Audio
ネイティブに追いつく
パフォーマンス向上
より簡単に、よりスケールする
コンポーネントの考えをWebに適用する
- Web Intents
- Web Components
- Shdow DOM
各ベンダーが力を入れてる
- ネット閲覧からクラウド環境のフロントエンドへ
- オフラインでも各ブラウザと連携
もっと低レイヤーのAPIも。
- Raw Socket API
- Message API
Mozilla Japan 浅井さん@dynamis
ふぉくすけ可愛い
Web is Platform
HTML5への期待
- HTML
- CSS
- ECMAScript
- 通信割り
- これからオーディオなど
- HTML5 = 安定ブランチ
- HTML = 最新のHTML
- HTML != HTML5
ブラウザ戦争は過去の話。 今は単独ベンダー vs Web Platformの競争
- Window8、RT、 Phone
- Blackberry 10
- Tizen
- Firefox OS
HTMLでモダン?アプリ
- 感覚はHTML開発とは違う
- XAMLの方がマシなんじゃ…。
- MetroはWebと非互換
Webと違い過ぎて残念
- HTMLでも開発可能
- W3C仕様があるものは実装
- 無いものは実装追加・標準化
- HTMLでも開発可能
- メインはEFLのネイティブ?
- W3C仕様があるものは実装
- 無いものは実装追加・標準化
- Webがネイティブ
- アプリ開発はThMLのみ
- OSのUIも全部HTML
- PC/スマホも同じアプリ
Webではできなかったこと
- システムステータス
- 各種センサー
- 低レベルハードウェア制御
モバイルがWebに向かないならWebをモバイルにしていく! Mozillaカッコいい
- SMS
- 電話
- コンタクト
- WebRTC
- Web Activiteies
- Push Notification
- Power Management
- TCP Socket
仕様のない実装もないし、実装のない仕様もダメ
Web技術がネイティブ > HTML/CSS/JavaScriptでガリガリ書ける > ホーム画面もネイティブで
開発パートナーと製品化 > 最初はブラジルで発売予定
アプリストアはネイティブっぽくダウンロードできたりする。
何か普及してほしいOSだわー。とても面白い。本当の意味でWeb技術で アプリが作れるのは素晴しい。
NHN Japan 上村さん・富田さん
- ME6-7割がMac
- エディターバラバラ
- 導入はCUI
- Wikiで共有
- 今後はCompassで解決していく
config.rbでの設定すれば、compass watch
で大丈夫
- GUIツールの導入
- GUIツールとCUIが混在しても問題ない
- 無償
- config.rbが読めない
GitHubからダウンロード
- Sass3.2の対応が遅かった
- $10
- インストール不要
- Dropboxに入れておけば、環境またいで利用できる
- 作業者毎にファイル分割
- 分割する際にはパーシャルで作る
- パーシャルファイルをインポート
- ファイル分割すると上書き/コンフリクトが発生しない
関係者全員へのSassインストールの徹底は難しい
CSSディレクトリにSass管理外のCSSを作って解決。 放置するとカオスになるので、定期的にマージ。
問題のSassコードがどこにあるか分からない
--line-comments
をつけてコンパイルして解決
コンフリクトがCSSで頻発するので複数人での作業時はexpand
にしておく
@color
にカラーコード入れるとカラーネームに変換される
- 存在しないカラーコードを入れる
- 文字列型にする
unique
にするか#{}
にする - 出力をcompressedにする
状況によって分けておく
@import
や@mixin
なんかをフル活用して保守性を上げる- 変数を使っておく
コメントをSassに残しておく
- コンパイル後を意識する
@mixin
や不要なネストや@import
などの使い過ぎに注意 @extend
を有効に使う使うと修正が怖いので運用でカバー。プレフィックスにextendを付ける 不要なCSSが吐かれてしまうので代わりにプレースホルダーを使っていく
Compassの導入はムダなCSSが吐かれたり、未対応のCSSがあったりしたから
_utility.scss
のようにする
- inline-block
IE6/7対応に無駄なCSSが出てくるので、グローバル変数でフラグを立てておく事で対応
- link-underline
@mixin
で指定 - font-family
@mixin
で指定 - place holder
@content
を使う- Minor CSS Hack
- 毎回書いて面倒なコードを見つける
@mixin
にする- 引数に変数を入れられるようにする
グローバル変数に命名規則を作る
Cookpad 太田さん
凄く…立ち見出てました。
将来が不安な要因。
- IT業界は歴史が浅い
- 新しい技術がどんどん出てくる
- 転職・引越しなどの環境の変化
- 記憶量が増え、体感時間が長くなる傾向
- ジャネーの法則
繰り返す事による経験
- 英語が読めるようになること
技術情報を得られる程度の英語力はそんなに難しくない
- コミュニティに参加する
- iOSやAndroidでは個人だし、ソーシャルゲームなんかは大規模になってる
- グラフィックから統計まで様々
- 自分の興味とマッチして利益になるのが最善
- 一番怖いのは何もしないこと
- 簡単な方法(ライブラリなど)と簡単ではない方法
- 浅い知識はそれ以上ではない
- jsdo.it
- jsfiddle
- jsperf
開発ツール
- CoffeeScript / JSX / Hase / Dart
- Sass / Stylus
開発環境
- Mac
- node + npm
- Closure Linter
エディタ
- WebStorm
- Sublime Text2
アウトプットは非常に大切
フレームワーク
- Jasmin
- Mocha
Headlessな実行環境
- capybara-webkit
- phantomjs
- jasmin-headless-webkit
CL
- jenkins
- travis.ci
- Rails
- capybara
- capybara-webkit
- jonacha (or jasmine)
- 単体テスト←ライブラリ向き
- 結合テスト←アプリ向き
これらがCIで動く事により、JavaScriptを使ったアプリの開発サイクルを高速化
- 将来分からない
- 柔軟に動ける環境を作ろう
- 広く浅くではない
- 自分の得意と好きの重なる部分を伸ばしていこう
DeNA 城戸さん / Gree 坂本さん / UEI 清水さん / バスタイムフィッシュ 村岡さん / フリー 秋葉さん
- 動くように
- 低スペックAndorid端末などでもちゃんと動くようにする
- FlashからCanvasに移行する際にどのように書き出すのか
- やっぱりAndroidなどは一般的にはDOMじゃなくCanvasの方が速い
- Android 2.2/2.3やiOS4以下でもスムーズに動かすようにする
- PCとモバイル向けで、どちらでも違和感無いようにラッパーを作る事
- Androidだと機種依存が激しいので、そこの吸収が問題
- ゲームデザイン上の問題(右クリックだと、モバイルでは使えない)
- アニメーションの問題
- 決定的なオーサリングツールが無い
- 新しいブラウザやOSが出るたびにバグが出るかもしれない
- 同じ端末なのにズームした状態でCanvasの
clearRect()
を呼ぶと、ほぼ止まる
- 同じ端末なのにズームした状態でCanvasの
- webkitのNightly Buildでは移動と回転が一緒になると、どちらか動かない
- WebGLで変数が多いシェーダーを書くとブラウザが落ちる
- MicroSoftがHTML5の話をすると席を立つw
- MSのプレフィックスを付け過ぎ
- WebGLがIEに入らないのはActiveXのせい
- インストールが無い
- アップーデートがスピーディー
- 開発コストが少なくなる
- 全体的な傾向としては、Canvas > CSS3の順番で速度は出る
- 関数型プログラミングが実用的にJavaScriptで使える
- コード量が劇的に減る
- 5万行のiOSネイティブのシューティングのコードが、JavaScriptでは700行で済んだ
- ゲームとしては、CanvasとJavaScriptだけでも問題ないくらい
- HTML5ではコードを隠せないのが素晴らしい。MITライセンスに必然的になるので再利用が出来る
- indexedDBやlocalStorageなんかのキャッシュの強化
- WebGL
- 表現力が高くなる
- CSS3があるのがWebGLが使えないんじゃ…
- 立体視
- DRM
- カメラ・音声
- 新しいフィールドが出て別の側面での収益になるんじゃないか
- ネットワークが繋ってる事が前提でゲームを作れる
- コンテンツダウンロードなんかの新しい形態が出てる
- Webゲームとコンシューマーではゲームバランスが違うので、ツライ
- チームフォートレスのWebGLでの移植版は16GBのメインメモリが必要とかw
- ユーザー体験としては、新しい大剣になるんじゃないか
- ソーシャルゲームがドル箱だよね
- 実際にそのゲームを体感してみる
- Web製作者とかゲーム製作者のくくりは関係ない
- 変わった人が良い
感想としては、清水さんのお話が面白過ぎる