デブサミ2015参加メモ
2015年02月19日 20時37分
3セッション参加してきたのでメモの書き起こし。
ゲンバのSwift
クラスメソッドさんの発表。
テストに関して
使用OSS
Quick/Nimbleを使用。
QuickでDSL記述してNimbleでテスト実行。
BDDテストフレームワークなので宣言的にテストがかける。
iOS7でのSwift OSS
iOS7ではダイナミックライブラリ形式のインポートが使えないので
cocoapodsでは対応できないとかどうとか…
なのでgit submoduleで対応している。
よく使うライブラリ
- Alamofire https://github.com/Alamofire/Alamofire
http通信ライブラリ - SwiftyJson https://github.com/SwiftyJSON/SwiftyJSON
Json扱うのがとても簡単になる - Bright Futures https://github.com/Thomvis/BrightFutures
非同期処理が綺麗に書ける - Quick 上参照
- Nimble 上参照
注意
後方互換の無い破壊的変更が多い。
0.0.1のマイナーアップデートでも結構ある。
Swiftのメイン開発者でLLVMのメイン開発者でもあるChris Lattnerの哲学は
「過去の判断を見直して、より良い変更は積極的に行う」だそうで、、、
利用する側もそれに則っていかないと辛いよと締めてました。
LineのWeb開発
- 基本Native
- ここ最近Webアプリ(WebView)も増えてきた
- WebView内でNativeな機能を使いたい場合はApache Cordova( http://cordova.apache.org/ )を使用
-
- 使いすぎずシンプルUIにすること
- In App WebViewはほとんどがSPA
デバッグ方法
- 主な使用アプリ
-
- Charles
-
- Safari(Chrome) Remote Debbuger
- 実機での確認は早めに!
- UI/UXをNativeに近づける
- ブラウザ依存、バージョン依存のバグが多発するが無理しすぎない(Android 2.x …)
使用フレームワーク紹介
- Lineバイト 安定性重視の選択
backbone, knockout - Line@ ライブラリが充実していて高速開発
AngularJS - Lineタクシー ???
zepto.js
JSフレームワーク選定の大まかな目安
- Vue.js
-
- 軽量
-
- データバインディング
-
- Smart Phone
- AngularJS
-
- 大規模アプリ
-
- PC
- Backbone.js
-
- 中規模
-
- 軽量
- Knockout.js
-
- 軽量
-
- データバインディング
- zepto.js
-
- 小規模Webサイト
- jQuery
-
- 小規模Webサイト
-
- PC
使用ライブラリ紹介
- FastClick.js https://github.com/ftlabs/fastclick
-
- Smart Phoneだとダブルタップ判断の為にonclickが発火するまでに300msディレイがある。
それを無くすライブラリ。
- Smart Phoneだとダブルタップ判断の為にonclickが発火するまでに300msディレイがある。
-
- 使うとスクロールを止めるタップでもonclickが発火したりする副作用有。
- flipsnap.js https://github.com/hokaccha/js-flipsnap/
-
- スワイプ対応
- director https://github.com/flatiron/director
-
- ルーティング
JSフレームワークの歩き方
いろいろと紹介
- AngularJS
-
- good
-
-
- (覚えれば)機能を簡単に作れる
-
-
-
- (google製なので)手厚いサポート
-
-
-
- 利用者が多いので情報が多い
-
-
- bad
-
-
- オール方言
-
-
-
- 関心の分離の原則に反している
-
-
-
- 魔法だらけ
-
- Ember.js
-
- good
-
-
- フレームワークのサポート範囲が広い
-
-
-
- ドキュメントが読みやすい
-
-
- bad
-
-
- 柔軟性に欠ける(作者もEmber.jsのサポートしないことをするならEmber.jsを使用するべきではないと公言)
-
- Backbone.js
-
- good
-
-
- 小さくシンプル
-
-
-
- フレームワークのソースも短く理解しやすい
-
-
- bad
-
-
- Backbone.jsを用いて(オレオレ)フレームワークを作る必要がある
-
- React.js
-
- good
-
-
- ハイパフォーマンスレンダリング
-
-
-
- ステート管理
-
-
-
- 単なるWebレイヤ
-
-
- bad
-
-
- テンプレートシンタックスが不自然
-
-
-
- ファイルサイズが大きい
-
- Ampersand.js
-
- good
-
-
- 柔軟性、結合性のバランスが良い
-
-
-
- コマンドラインツールで色々と生成できる
-
-
-
- 多くのプラグインが存在する
-
-
- bad
-
-
- まだ若い(2014年6月〜
-
-
-
- IE8以下サポートなし
-
- Aurelia.js
-
- good
-
-
- ES6/ES7へのフォーカス
-
-
-
- モジュラー性が高い
-
-
- bad
-
-
- IE11以下サポートなし
-
使用例
- 大規模サイトのスタートアップにAngularJSを使用。既存サイトを置き換えるには向かない。
- 管理画面にEmber.jsを使用。Ember.jsの固さが生きる
- 既存サイトのmvc化にはBackbone.jsを使用。軽量で組み込みやすい。
その他
html/cssが蔑ろにされていることが多い。
DOMが汚いとJavaScriptも自然と汚くなるのでまずはhtml/cssを綺麗に記述すること。