強火で進め

このブログではプログラム関連の記事を中心に書いてます。

「conferenceWithDevelopers」に参加して来ました

「conferenceWithDevelopers」に参加して来ました。

公式サイト

conferenceWithDevelopers
http://conference-with-developers.info/

Togetterまとめ

#confwd conferenceWithDevelopers on 2013/2/23 at GREE - Togetter
http://togetter.com/li/461461

『Dynamic Objective-C 2013』 - 木下 誠さん

執筆された本。

Dynamic Objective-C

Dynamic Objective-C

iOS開発におけるパターンによるオートマティズム

iOS開発におけるパターンによるオートマティズム

最近作ったアプリの中での自信作。

音楽のある情景
https://itunes.apple.com/jp/app/yin-lenoaru-qing-jing/id586157909?mt=8

  • クラスのメソッド一覧を調べる:class_copyMethodList
  • クラスのインスタンス変数一覧を調べる:class_copylvarList
  • ランタイムにあるクラスの一覧を調べる:objc_getClassList
  • クラスのメソッドを追加:class_addMethod
  • クラスのメソッドを変更する:class_replaceMethod
  • クラスの親クラスを変更する:class_setSuperclass


iOS 6で Remote View Controller といクラスがこっそり導入されたらしい
http://oleb.net/blog/2012/10/remote-view-controllers-in-ios-6/
http://oleb.net/blog/2012/10/more-on-remote-view-controllers/
http://oleb.net/blog/2012/10/update-on-remote-view-controllers/

iOSはRemoteViewControllerで進化を遂げるか | Cocoaの日々情報局
http://cocoadays-info.blogspot.jp/2013/02/iosremoteviewcontroller.html


zuccoi/REKit · GitHub
https://github.com/zuccoi/REKit

REKitはインスタンス毎にメソッドを追加上書きが出来るライブラリ


プロセス間通信OSXはXPC

QA

Q : 最近、GDCやARCなど新しい仕組みが導入されたが「Dynamic Objective-C」の連載が再開される予定は無い?
A : 新しい仕組みの解説などはHMDT BOOKSという電子書籍アプリを作りそちらで連載している。最近は更新されていないがユーザが増えてくると更新頻度も上がると思うので購入をお願いします。

HMDT BOOKS
https://itunes.apple.com/jp/app/hmdt-books/id500860946?mt=8

iPadで立体映像を表示する【ハコあに】 』 - 小田 恭央さん

「ハコあに」は iPad を使って立体映像を可能にする装置。

ハコあに - 動くフィギュア -ハコあに-
http://www.hakoani.jp/

「ハコあに」の活用事例

Unity製の「ハコあに」作品

Amazonで購入可能。

ハコあに for iPad ?動くフィギュア?

ハコあに for iPad ?動くフィギュア?

『けっこーすごいよ、Audio Unit』 - 永野 哲久さん

セッション用作成されたデモプロジェクト。

7gano/augraph_demo · GitHub
https://github.com/7gano/augraph_demo

執筆された本。残念ながら絶版との事。

iPhone Core Audioプログラミング

iPhone Core Audioプログラミング

Audio Unitプログラムをする時に使うと便利なアプリ「AU Lab」。
Xcodeのメニューのここから表示されるページからダウンロード可能。表示されたページで「AU Lab」で検索。

AU Labで作ったデータはiOSプログラムで利用可能。

パラメータ設定を .aupreset ファイルで書き出し、iOSプログラムで読み込んでAudio Unitにセットするだけで利用可能。

  • iOS 5から超本格サンプラーiOSに内蔵
  • AU Labでプリセットが作成可能
  • AU LabでPresetを作る
  • ゼロから作るのはしんどいので今回は SoundFont を利用
  • EXS24のフォーマットにも対応
  • 適当なサイトから .sf2 ファイルをダウンロードしてきて読み込むだけでOK


今回の話を倍の時間で詳しく説明したセミナービデオがMOSAで販売されるらしい

特定非営利活動法人MOSA
http://www.mosa.gr.jp/

mixiにおけるiPhoneアプリ開発』 - 武田 祐一さん

mixi iPhoneアプリ
  • アップデート回数 : 23回(2012年)
  • スマートフォンからのアクセス : 月間約800万ユーザ
  • 巨大なコードベース : .m ファイルは574個


開発はスクラムを導入

  • 開発チーム 計11人
    • ディレクター1人
    • デザイナー1人
    • エンジニア7人
    • QAエンジニア2人


モデル層の単体テスト

  • GHUnitを利用
  • 他のクラスの挙動に左右される部分はモックを準備
    • 通信するメソッドなど
    • モックには method_exchangeImplementations を
    • OCMockも使ったら便利でした


ユーザ操作のテスト

  • KIF
    • テストの記述:Objective-c
    • 内部の状態と合わせたテストが可能(例:意図的にKeyChainのデータを破棄した状態でのテストなど)
  • UIAutomation
    • テストの記述:JavaScript/ユーザの操作を記録して利用
    • テストはユーザの出来る操作に限定される
    • Xcode 4.2からコマンドラインからの実行が可能に


コードレビュー:Gerrit(Google製)を利用


App Storeのレビューを確認出来るツール

punchdrunker/AppReviewViewer · GitHub
https://github.com/punchdrunker/AppReviewViewer

『リアルタイムチャットSDKのできるまで 〜ダンゴルのチャットを支える技術〜』 - 小野 将司さん

スライド資料。
http://www.slideshare.net/masashiono1/sdk-16733662


ユーザ登録方法

  • 電話番号を登録させてSMS
  • メール&パスワード
  • 空メール
  • ゲスト


SMSはどうする→サービスを利用

Clickatell(海外)

FullCourt(日本)

(筆者注:後で「FullCourtが到達率が高いという表現だったけど到達率は100%では無い?」と質問をした所、回答は「100%じゃない」との事でした)

外部に提供するSDKについて

ダメな例

  • バイナリ汚染をしている

具体例

  • 一般的なライブラリがSDKに含まれている為、ユーザのプログラム内でそのライブラリを利用した場合、同一のシグネチャが2つ有る為エラーになる
  • ユーザが別途オープンソースのライブラリを導入する必要が有る。しかも、そのライブラリがサポートを既に停止したもので有ったりする
  • 自分はこの時無理矢理対応した。詳しくはブログを…

(筆者注:この記事かな? http://akisute.com/2011/11/blog-post.html )

  • 画像ファイルをプロジェクトに追加する必要が有るがそのファイル名が普通に使いそうなファイル名で有った為、同じファイルが2つの状態になりエラーが発生

良い実装

  • 画像は.bundleで追加


NLTHTTPStubServer
通信部をモックする際に重宝


ドキュメントはSphinxで作成

  • Sphinxはテキストで記述するのでgitでバージョン管理が可能
  • テキストの記述だけでシーケンス図も作成可能

『いかにしてユーザーを手玉に取るか 〜ユーザーの行動の三手先を読んで実装する〜』 - 菅宮 佑介

スライド資料。
https://speakerdeck.com/dnpp/ikanisiteyuzawoshou-yu-niqu-ruka


発表者さんが以前、ツイートされた洗練されたUIについてのコメント

現在制作中のBeatroboのiOS版を例にUIの解説。

Beatrobo
https://www.beatrobo.com/

(※ここで実際にアプリを操作しなが色々と解説が入りましたが実際に操作している動画などが無いと説明が難しいので省略)


ビルド設定を変更すると環境変数の違いにより接続先サーバを開発、本番に自動的に切り替える様に


iOS6から導入されたUIRefreshControlをiOS5でも同様の処理を行う様に実装されたライブラリ。
(筆者注:UIRefreshControlはiOS 6のメールアプリに導入されている「下に引っ張って更新をかける」というUIのコントローラ)

ishkawa/ISRefreshControl · GitHub
https://github.com/ishkawa/ISRefreshControl#readme


トランジションの処理はこちらのライブラリで作成。

dnpp73/DPPrismViewController · GitHub
https://github.com/dnpp73/DPPrismViewController

LT

Androidとの同時開発だけどモデルをC++で書けば問題ないよねっ

LTに参加された長谷川孝二(@nowsprinting)さんのスライド資料。
http://www.slideshare.net/nowsprinting/conference-withdevelopers-20130223lt

執筆に参加された「Androidアプリテスト技法」という本がそろそろ出るとの事。モバイル環境向けのテスト本って日本だと初めてじゃないですかね?

Androidアプリ テスト技法

Androidアプリ テスト技法

Androidアプリ テスト技法|書籍情報|秀和システム
http://www.shuwasystem.co.jp/products/7980html/3704.html

@"UIWindow for Development"];

conferenceWithDevelopers( #confwd )のLT資料とソースコード | 松桐坊主
http://blog.mazgi.com/2013/02/uiwindow-for-development/

1行で導入するBack Gesture

1行で導入するback gestureの話とUINavigationBarを拡張した話 - blog.ishkawa.org
http://blog.ishkawa.org/blog/2013/02/24/backgesture-in-confwd/

食事

昼食と懇親会で軽食とドリンクの提供が有りました。

【昼食】

【懇親会】

GREEさん食事と会場提供ありがとうございます!!