データ
- 2013/06/01 14:00〜18:30
- 記念すべき第50回(実は0始まりなので第51回目)
- 今回、内容が盛り沢山でめっちゃ面白かった。
- CocoaでUnitTest、BDDは今後チュートリアルみたいなのがほしいな。
3Dフレームワーク for Mac 意味検索 & SceneKit Wordnet 30分
シソーラス辞書検索
資料は後ほど公開。
- WordNet -> iOS!無料!日本語版!
- 文字判定 -> n-gramと形態素解析
- n-gramなら網羅。いらないもの含む。
- 形態素解析なら必要な物のみ。抜けはありうる。
- 使うのに必要なもの
- wnjpn.dbとかいろいろ
確かOSXにMecab入ってなかったかなと思ってググるといくつか出てきた。
SceneKit
- OSXのフレームワーク
- 3Dの表示が簡単にできる
iOSにのる?(のって欲しいなぁ)
.deaファイル(COLLADA)
- 文字が簡単に使える
- ファイル作らなくてもできる
アイコンメモを支えるWeb技術 30分
アイコンメモとは? * iPhoneのホーム画面に付箋紙を貼るアプリ
前提条件
- そもそも審査に通るのか?
- いろいろしがらみが……
実現の流れ
- ネイティブ->Safari->Webアプリ
- Webアプリ
- Safariの中で動くもの
- フルスクリーンで動くもの <- こっち!
- フルスクリーンの仕方やアイコンの指定の仕方がある
- テキストを画像に変換するには?
- メモの記憶
- 技術的にはクリア。しかし審査は通るか? -> ネイティブっぽくしたい
- フレームワーク的なもの -> bootstrapとか
- jQuery Mobileを使う
- ネイティブっぽくするために大変な思いをした
- jQuery Mobileを使う
- 軽くしたい
- シンボルフォント
- 日本向けと海外向けでサーバが違う(日本:さくらインターネット、海外:GAE)
- デバッグ
- Safariで!
BLEモジュール基板について 30分
- LSD-BLE112
- デモとして手旗を動かす。
個人的な感想として、iOS+BLEの発表が多くなってきたなという印象。 ボードを売り出す!4800円ぐらい。
NJKWebViewProgressについて 20分
- UIWebVIew Progress Interface -> プログレスAPIを持っていない -> 作ろう
- GitHUbで300☆
中身
- ロードされるリソースを数える
- UIWebView Delegateをフック * 全部取れるわけではない
- あくまでそれっぽく見えれば良い
- UIWebViewとViewControllerで通信したい
- ViewController -> UIWebView
- Javascript使える
- 逆は?
- iframeを使う
- プログレス値
- 組み込みやすさ
- UIWebViewDelegateが必要 -> もう使ってる
- プロキシにしよう!
- 他の方が黒魔術版を作る
- 個人的にはプロキシのほうがわかりやすい
cocoapodsいい!便利!
- OSSを意識すると色々捗る
Kiwi最高 30分
- OCUnit(ビルトイン)
- ⌘+U LOVE
- 非同期とかだとうまくやらないとダメ(よきに計らってくれない)
- GHUnit
- Powerful
- 非同期とか使える
- Kiwi
- BDD for iOS
- Simple to setup and use
- ⌘+U
- Blocksを使う
- 準備・後始末も細かくできる
- 重要なのはshould
- Nocilla
- HTTP stubbing for iOS
- なんかUnderscore.mを思い起こす書き方
- テスト難しい
紹介ではfor iOSとされていたけど、一応KiwiはOSXでもつかえる模様。
Cocoa で CUI ツールを作る 20分
- LLとかいろいろめんどくさい -> Cocoaでうまいことやればいいんじゃね?
- JSONがみづらい
- Pythonでやる -> 日本語読めない(Unicodeエンコーディングのせいだと思われる)
- Objective-Cでやる
- man pageを書く -> めんどくさいのでmarkdownで書いてPandocで変換
- Pandocまじ便利です。
- jqがあったよ……
ワタシはSingletonがキライだ 45分
前提と問題
- 単体テストしたい
- グローバル変数は悪
- よい設計
- 疎結合
- 高凝縮
- 適切な名前
- 大きな泥団子がもっとも人気ある設計
- Singletonの誘惑
- 単体テスト
- オブジェクトが単体で動く必要がある
- ファイルシステム・ネットワークは邪魔
- static結合はテストの敵 -> dynamicなら手のうちようがある
Singletonはstatic結合をまねく……Singletonは単体テストの敵
解決策
- DI(依存性注入) * 取りに行くから問題になる。必要なら与える!
- DIコンテナ -> Springとか
- オブジェクト生成は大仕事
- 生成と仕様を分ける
- Cocoa向けDIコンテナ結構ある
- Typhoon Framework
- AppleのサンプルにTyphoonを適用 -> AppDelegateに書かれていたコードを一掃
- DIの気持ち悪さ
- わかるけど、DIはオブジェクト指向の基本
- DIコンテナの誤解
- コンテナへのアクセスが多発する? -> アクセスはごく一部
- テストコードでコンテナを使う -> 別に使わなくていい
- initialzerが長い -> 本当かも
- Singletonはきらいだー!
次回の予定
7月の終わりらへん。-> 8月3日。
懇親会
- 第0回から今回までを振り返るスライド。
- 懐かしい話題がいっぱい。
- Singletonはありかなしかで、酒が進む。