SlideShare a Scribd company logo
1 of 68
Download to read offline
マルチブラウザ
やりました
sugie takafumi
アジェンダ
・自己紹介
・話の概要
・なにをやったか
・振り返り
自己紹介
sugie takafumi (@sssgggiii)
frontend engineer
and server-side
- i.Color co.,Ltd
- playing guitar, drums
話の概要
Chromeだけでプレイできるゲームを、
他ブラウザでもプレイできるようにした話
その時の苦労とか、知見とか
ここから内容
プロジェクト立上げ
マルチブラウザ対応して!
3人で1.5ヶ月で!
Firefox, Edge, IE11
プロジェクト立上げ
マルチブラウザ対応して!
3人で1.5ヶ月で!
Firefox, Edge, IE11
メンバー
フロントエンドエンジニア3人
全員マルチブラウザ対応未経験
れ出る不安
れ出る不安
本当にこの工数でできるのか?
れ出る不安
本当にこの工数でできるのか
IEとかEdgeとかFFとかIEと
か、ちゃんと動くのか?
れ出る不安
本当にこの工数でできるのか
IEとかEdgeとかFFとかIEと
か、ちゃんと動くのか?不安
不安不安不安不安不安不安不
安不安不安不安不安不安不安
不安不安不安不安不安不安不
安不安
とりあえず動かしてみよう
@開発環境
Edge:それなりに動く!
とりあえず動かしてみよう
@開発環境
Firefox:チュートリアルで止まる!!
とりあえず動かしてみよう
@開発環境
IE11:ログインできない!!!!!!!!!!
え・・このPJやばくね?
え・・このPJやばくね?
怖くなってきたので
予防線を張ろう
OKとするライン=最低ラインを決める
→えらい人と
・動作止まらないこと
・ゲームの進行に支障をきたさないこと
そして
当面の目標をたてた
全ブラウザでチュートリアル突破!
チュートリアル突破への道
まずは「動作しない」系のバグ対応
チュートリアル突破への道
IE11ログインできない問題
別ドメインからのCookie受け入れが拒否
コンパクトポリシーをHTTPヘッダに追加で解
決!
http://www.ark-web.jp/sandbox/wiki/240.html
チュートリアル突破への道
IE11ログインできない問題
別ドメインからのCookie受け入れが拒否
コンパクトポリシーをHTTPヘッダに追加で解
決!
http://www.ark-web.jp/sandbox/wiki/240.html
チュートリアル突破への道
Firefoxチュートリアルで止まる問題
指定のanimation-nameが無いと怒られている
クォーテーションで括られてると認識できない
→クォート外して解決!
http://kuroanco.hateblo.jp/entry/
20130929/1380407952
チュートリアル突破への道
Firefoxチュートリアルで止まる問題
指定のanimation-nameが無いと怒られている
クォーテーションで括られてると認識できない
→クォート外して解決!
http://kuroanco.hateblo.jp/entry/
20130929/1380407952
チュートリアル突破への道
音声でない
→boombox呼び出し時の書き方
チュートリアル突破への道
フルアニメーションがクリックできない
→座標の指定方法
etc ……
チュートリアル突破!!!
同時に、問題を洗い出せた
→チケット約50件
同時に、問題を洗い出せた
→チュートリアルの特性
チュートリアル機能の特性
一通りの機能をユーザーに見せる
→ 一通りの機能は確認できた!
このあたりから感じた
結構いけるかもしれない!
いけるかも、の理由
サーバサイドの問題がほぼ出てない
いけるかも、の理由
サーバサイドの問題がほぼ出てない
問題量:js < CSS
いけるかも、の理由
サーバサイドの問題がほぼ出てない
問題量:js < CSS
タスクランナー(gulp)導入済み
いけるかも、の理由
サーバサイドの問題がほぼ出てない
問題量:js < CSS
タスクランナー(gulp)導入済み
→autoprefixerで解決じゃね?
autoprefixer
is 何
css
normal style
autoprefiexer
config
css
normal style
+
vendor prefix style
autoprefixer
autoprefixerで解決!
autoprefixer
autoprefixerで解決!
だが問題が
autoprefixer
autoprefixerで解決!
だが問題が
元々Chromeでのみ動作する想定のゲーム・・・
autoprefixer
cssはこんな感じ
あっ・・・(察し)
通常のスタイルに戻す必要
autoprefixer
perl + 正規表現で自動化するぞ!
autoprefixer
perl + 正規表現で自動化するぞ!
→i am a programmer!
autoprefixer
perl + 正規表現で自動化するぞ!
→i am a programmer!
無理でした
autoprefixer
パターンありすぎ
autoprefixer
パターンありすぎ
元々のCSSの書き方のバラつき
例:-webkit-gradient
autoprefixer
パターンありすぎ
直し方のパターンも
手で直した(置換)
ノーマルスタイルへ
Can I Use?やpleeeaseで直し方確認
ノーマルスタイルへ
gradient
どうしても変換できないパターン(角度指定)
→グラデーション作り直し
cssの物量
20,000line * 1file
1,000line * 10file
2日かけて直した
autoprefixer実行!
いい感じに直った
この後は細かいレイアウトの
バグを残すのみ
順調に外部デバッグ、
ステージング確認完了
リリース!!!
DAUあげ!!!
やった!!!!
DAUあげ!!!
やった!!!!
振り返り1
問題の規模感が分かった時点で精神的に楽になっ
た
→洗い出し作業重要
→チュートリアル特性活かせた
振り返り2
どこまでやるかを予めキッチリ決めておく
→「動く」という言葉の定義
振り返り3
CSSの書き方について、いろいろ分かった
boxスタイルの書き方の経緯
gradientスタイル カオス過ぎ
はじめからマルチブラウザ想
定しておくのが吉
マルチブラウザやるなら
OKのラインは決めよう
調査・手戻りあるよ
→認識合わせないと不幸が起こる
タスクランナー必須
最後に
未知なるものに挑戦するのは
楽しいよ!
以上

More Related Content

What's hot

RaspberryPiを音声コントロールしてみた話
RaspberryPiを音声コントロールしてみた話RaspberryPiを音声コントロールしてみた話
RaspberryPiを音声コントロールしてみた話yousuketakahashi2
 
zshでコマンドライン履歴を活用する
zshでコマンドライン履歴を活用するzshでコマンドライン履歴を活用する
zshでコマンドライン履歴を活用するHideaki Miyake
 
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528Nobuhiro Sue
 
Jenkins plugins
Jenkins pluginsJenkins plugins
Jenkins pluginstyuki39
 
oh-my-zshを使うのは止めよう
oh-my-zshを使うのは止めようoh-my-zshを使うのは止めよう
oh-my-zshを使うのは止めようHideaki Miyake
 
ちりめn for らずぱい3 おさわり会
ちりめn for らずぱい3 おさわり会ちりめn for らずぱい3 おさわり会
ちりめn for らずぱい3 おさわり会tadfmac
 
Androidにメイちゃんをしゃべらせてみた
AndroidにメイちゃんをしゃべらせてみたAndroidにメイちゃんをしゃべらせてみた
AndroidにメイちゃんをしゃべらせてみたDaisuke Takai
 
世間の嫁についてTwitterに聞いてみた
世間の嫁についてTwitterに聞いてみた世間の嫁についてTwitterに聞いてみた
世間の嫁についてTwitterに聞いてみたAkiyuki Nakamura
 
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93Takayuki Shimizukawa
 
AndroidではじめるJava
AndroidではじめるJavaAndroidではじめるJava
AndroidではじめるJavaYutaka Tsumori
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜Saya Katafuchi
 
2 5 音を使おう
2 5 音を使おう2 5 音を使おう
2 5 音を使おうShufu Gaishi
 

What's hot (16)

anyframeを使おう
anyframeを使おうanyframeを使おう
anyframeを使おう
 
RaspberryPiを音声コントロールしてみた話
RaspberryPiを音声コントロールしてみた話RaspberryPiを音声コントロールしてみた話
RaspberryPiを音声コントロールしてみた話
 
zshでコマンドライン履歴を活用する
zshでコマンドライン履歴を活用するzshでコマンドライン履歴を活用する
zshでコマンドライン履歴を活用する
 
rucs_vim LT
rucs_vim LTrucs_vim LT
rucs_vim LT
 
fmSynth16
fmSynth16fmSynth16
fmSynth16
 
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
 
Jenkins plugins
Jenkins pluginsJenkins plugins
Jenkins plugins
 
oh-my-zshを使うのは止めよう
oh-my-zshを使うのは止めようoh-my-zshを使うのは止めよう
oh-my-zshを使うのは止めよう
 
ちりめn for らずぱい3 おさわり会
ちりめn for らずぱい3 おさわり会ちりめn for らずぱい3 おさわり会
ちりめn for らずぱい3 おさわり会
 
Androidにメイちゃんをしゃべらせてみた
AndroidにメイちゃんをしゃべらせてみたAndroidにメイちゃんをしゃべらせてみた
Androidにメイちゃんをしゃべらせてみた
 
世間の嫁についてTwitterに聞いてみた
世間の嫁についてTwitterに聞いてみた世間の嫁についてTwitterに聞いてみた
世間の嫁についてTwitterに聞いてみた
 
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
 
宇宙zsh #2
宇宙zsh #2宇宙zsh #2
宇宙zsh #2
 
AndroidではじめるJava
AndroidではじめるJavaAndroidではじめるJava
AndroidではじめるJava
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
 
2 5 音を使おう
2 5 音を使おう2 5 音を使おう
2 5 音を使おう
 

Similar to マルチブラウザやりました (DMM.Study Night)

Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化COLOPL, Inc.
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability SeminarVisso株式会社
 
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)Masataka Sato
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことKatsutoshi Makino
 
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~UnityTechnologiesJapan002
 
デザイナー目線で Firefox OS を変えよう
デザイナー目線で Firefox OS を変えようデザイナー目線で Firefox OS を変えよう
デザイナー目線で Firefox OS を変えようHonma Masashi
 
Prott Story ( Prottができるまで )
Prott Story ( Prottができるまで )Prott Story ( Prottができるまで )
Prott Story ( Prottができるまで )Naofumi Tsuchiya
 
Delphi Debut Tokyo #1 - FireMonkey HD の基本
Delphi Debut Tokyo #1 - FireMonkey HD の基本Delphi Debut Tokyo #1 - FireMonkey HD の基本
Delphi Debut Tokyo #1 - FireMonkey HD の基本Jun Hosokawa
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事Manabu Koga
 
ゲーム制作で学ぶUnityの基礎
ゲーム制作で学ぶUnityの基礎ゲーム制作で学ぶUnityの基礎
ゲーム制作で学ぶUnityの基礎schoowebcampus
 
PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話Hiroto Imoto
 
Secret of Firefox
Secret of FirefoxSecret of Firefox
Secret of Firefoxdynamis
 
メガドラ実機で自作のROMファイルを動かしてみた話
メガドラ実機で自作のROMファイルを動かしてみた話メガドラ実機で自作のROMファイルを動かしてみた話
メガドラ実機で自作のROMファイルを動かしてみた話Yuma Ohgami
 
Nseg3 firefoxとmozillaコミュニティの紹介
Nseg3 firefoxとmozillaコミュニティの紹介Nseg3 firefoxとmozillaコミュニティの紹介
Nseg3 firefoxとmozillaコミュニティの紹介hATrayflood
 
俺/私はゲーム作りたいのになんで英語やんなきゃ いけないか説明せよ
俺/私はゲーム作りたいのになんで英語やんなきゃ いけないか説明せよ俺/私はゲーム作りたいのになんで英語やんなきゃ いけないか説明せよ
俺/私はゲーム作りたいのになんで英語やんなきゃ いけないか説明せよSelf Employed
 
Firefox FAQ
Firefox FAQFirefox FAQ
Firefox FAQdynamis
 
AI-Java-for-Financial.pdf
AI-Java-for-Financial.pdfAI-Java-for-Financial.pdf
AI-Java-for-Financial.pdfYoshio Terada
 
イマドキのUbuntu活用法
イマドキのUbuntu活用法イマドキのUbuntu活用法
イマドキのUbuntu活用法Hiroshi Chonan
 

Similar to マルチブラウザやりました (DMM.Study Night) (20)

Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
 
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
 
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
 
デザイナー目線で Firefox OS を変えよう
デザイナー目線で Firefox OS を変えようデザイナー目線で Firefox OS を変えよう
デザイナー目線で Firefox OS を変えよう
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
Prott Story ( Prottができるまで )
Prott Story ( Prottができるまで )Prott Story ( Prottができるまで )
Prott Story ( Prottができるまで )
 
Delphi Debut Tokyo #1 - FireMonkey HD の基本
Delphi Debut Tokyo #1 - FireMonkey HD の基本Delphi Debut Tokyo #1 - FireMonkey HD の基本
Delphi Debut Tokyo #1 - FireMonkey HD の基本
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
 
ゲーム制作で学ぶUnityの基礎
ゲーム制作で学ぶUnityの基礎ゲーム制作で学ぶUnityの基礎
ゲーム制作で学ぶUnityの基礎
 
Let’s study unity
Let’s study unityLet’s study unity
Let’s study unity
 
PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話
 
Secret of Firefox
Secret of FirefoxSecret of Firefox
Secret of Firefox
 
メガドラ実機で自作のROMファイルを動かしてみた話
メガドラ実機で自作のROMファイルを動かしてみた話メガドラ実機で自作のROMファイルを動かしてみた話
メガドラ実機で自作のROMファイルを動かしてみた話
 
Nseg3 firefoxとmozillaコミュニティの紹介
Nseg3 firefoxとmozillaコミュニティの紹介Nseg3 firefoxとmozillaコミュニティの紹介
Nseg3 firefoxとmozillaコミュニティの紹介
 
俺/私はゲーム作りたいのになんで英語やんなきゃ いけないか説明せよ
俺/私はゲーム作りたいのになんで英語やんなきゃ いけないか説明せよ俺/私はゲーム作りたいのになんで英語やんなきゃ いけないか説明せよ
俺/私はゲーム作りたいのになんで英語やんなきゃ いけないか説明せよ
 
Firefox FAQ
Firefox FAQFirefox FAQ
Firefox FAQ
 
AI-Java-for-Financial.pdf
AI-Java-for-Financial.pdfAI-Java-for-Financial.pdf
AI-Java-for-Financial.pdf
 
イマドキのUbuntu活用法
イマドキのUbuntu活用法イマドキのUbuntu活用法
イマドキのUbuntu活用法
 

マルチブラウザやりました (DMM.Study Night)