memocon プログラミングのメモや物欲日記、雑記等

デブサミ2015参加メモ

2015年02月19日 20時37分

3セッション参加してきたのでメモの書き起こし。

ゲンバのSwift

クラスメソッドさんの発表。

テストに関して

使用OSS

Quick/Nimbleを使用。

QuickでDSL記述してNimbleでテスト実行。
BDDテストフレームワークなので宣言的にテストがかける。

iOS7でのSwift OSS

iOS7ではダイナミックライブラリ形式のインポートが使えないので
cocoapodsでは対応できないとかどうとか…

なのでgit submoduleで対応している。

よく使うライブラリ

注意

後方互換の無い破壊的変更が多い。
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

使用ライブラリ紹介


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を綺麗に記述すること。