第56回Cocoa勉強会関西に参加しました

先日行われた 第56回 Cocoa勉強会関西 に参加しました。

今回は発表数が多くて充実していました。また、「勉強会の歴代代表が全員揃って発表をした」という記念すべき回でもあったそうです。

@studioshin さん : WWDC2014 参加レポート

http://www.slideshare.net/studioshin/wwdc2014-report

前回で予告されていた WWDC 参加レポート。Keynote で前列の席をとる奥義を伝授されました。STUDIO SHIN さんは、ビデオにも映り込んでましたね。

良寛和尚さん : ObjectALでサウンドを極める第一歩

http://www.slideshare.net/akinobuyamamoto/object-al-kiwamerustep1kansai-36133909

ObjectAL を使って立体的なサウンド再生をする、という話。ObjectAL とは、OpenAL + AVAudioSession + AVAudioPlayer を Objective-C でラップしたもので、「極!! 和太鼓」で使われているそうです。

僕はサウンドはあまり詳しくなくて、OpenAL もかすかに聞き覚えがあるけどほとんど知らない、というレベルでしたが、分かりやすくて勉強になりました。

@oogon さん : iOSMacで共通のビューを使う

http://www.slideshare.net/oogon/cocoa20140621-macios

iOSMac とで、ビュー周りのクラスの微妙な違いをどう解決するか、という話。該当クラスを継承したサブクラスを作り、そのクラス内でプリプロセッサマクロを使って切り分ける解決方法が紹介されました。

これについては、別の解決として compatibility_alias を使うという方法もあります(紹介された事例をすべてカバーできるわけではないかもしれませんが)。実用例として、 SECoreTextView で使われています(SECompatibility.h)。

ところで、@oogon さん開発のベジエ曲線作成ツール motion editor が Mac App Store で公開され、着実にアップデートしているようです。最新版では Objective-C のコードだけでなく、Swift のコードも生成できています。

熊谷友宏さん : Build 番号の自動更新スクリプトについてネットで教えてもらったこと

http://www.slideshare.net/tomohirokumagai54/build-cocoakansai

Info.plist をビルド時に更新する話。agvtool や PlistBuddy といったコマンドラインツール活用や、ビルド時のスクリプトで Info.plist を加工したり、Info.plist にプリプロセス処理を適用したり、といったマニアックな話がありました。

なんだかあまり首を突っ込みすぎると闇の世界に突入しそうで怖いですが、CI 連携を考えるうえでは知っておきたい話ですね。

また、個人的には CotEditor のリリース作業が、わりと毎回面倒というか手作業が多くて神経を使うため、なるべく自動化したいと考えていたので参考になりました。

@yashigani さん : リファレンスから読み解くWebKit.framework

https://speakerdeck.com/yashigani/whats-new-webkit-dot-framework

WKWebView の話。UIWebView と違って Mobile Safari と同じエンジンが使えたり、API が便利になってたり、といった利点の紹介と、stringByEvaluatingJavaScriptFromString: が使えないという欠点の紹介がされました。

アプリ内からの JavaScript 実行ができないのが致命的すぎてあまり見ていなかったのですが、いいところたくさんありますね。使いたくなってきた。

まだ iOS 8OS X Yosemite もベータ版なので、要望(バグレポート)を出せば機能追加してもらえるかもしれませんね。

@nakiwo さん : 1画面から始めるStoryboard

http://www.slideshare.net/nakiwo/1storyboard-36133648

1 画面 1 Storyboard メソッドの話。XIB やコードではできなくて Storyboard でしかできないことがある。そこで、1 画面だけの Storyboard を使うという手がある、という話でした。

最初に「1 画面 1 Storyboard」を聞いたときは XIB と何が違うんだろうと思いましたが、Storyboard にしかない機能を使うため、というのはありかもしれませんね。プレゼンでは Storyboard の便利機能として、TableView の Static Cells などが紹介されました。

ほかに僕がよくやるパターンとして、Container View を使って、TableView 部分だけ別の View Controller として切り出す、といった使い方も便利かと思います。

@ninjinkun さん : 中規模iOS開発とコードレビュー

https://speakerdeck.com/ninjinkun/zhong-gui-mo-ioskai-fa-tokodorebiyu

コードレビューの話。エンジニア3人での開発事例で、レビュー→LGTM→マージ、という開発フローが紹介されました。その過程で暗黙知が言語化されるという好影響があったとのこと。

http://ninjinkun.hatenablog.com/entry/2014/04/24/125151

また、コードレビューのおかげで、デザイナーにコードや Storyboard を編集してもらうことができた、というのが印象的でした。確実にレビューされるので安心してもらえるのだとか。すばらしいですね。

ようにゃんさん : 世界の通信環境について

http://www.slideshare.net/windblume/20140621-cocoa-36245402

日本と台湾での通信環境の違いの話。台湾でのモバイル通信の速度は日本の 3G 並み、ブロードバンドは日本の ADSL 並み。日本は恵まれた通信環境にある。

バックグラウンド通信をさせている場合、バッググラウンドで通信が完了せず無駄にバッテリを消費するだけ、という事態もありえるので注意が必要なようです。

@kaniza さん : いまOS Xアプリがアツい

http://www.slideshare.net/kaniza1/os-x-appishot

OS X の 10.7 以降の進化の話。また、最近の追加機能で夢が広がってきて、iOSOS X 界隈で新しいゲームがはじまるのではないかという所感が語られました。

こうして振り返ると、10.7 Lion は大きな変化だったと改めて思うのと、10.10 Yosemite も大きな変化になりそうだという感じがします。

最後に

懇親会には参加できず残念。次回は行きたい。発表もできたらいいな。