koogawa blog

iOS、Android、foursquareに関する話題

#yidev 第21回横浜iPhone勉強会で発表してきたよ

f:id:koogawa:20151213110257j:plain

昨日は第21回横浜iPhone勉強会に参加してきました。

https://atnd.org/events/72310atnd.org

前回は7月開催でしたので、実に5ヶ月ぶりの開催になります。

そして今回も参加者のアイコンを並べたスライドが大活躍でした!

f:id:koogawa:20151213110635j:plain

顔とアイコンが一致するはやっぱり会話がしやすいですね。

当日のツイートはTogetterにまとめさせて頂きました。

togetter.com

***

そんなわけで以下、発表内容の簡単なメモになります。(発表者の皆さま、間違い等あればご指摘ください)

tvOSを拡張する・実践編

@nolili さんによる発表です。デモ用のディスプレイを持ち込んでの発表でした!

f:id:koogawa:20151213110838j:plain

  • tvOSアプリ開発は難しい
    • handoff、Multiple Connectivity、KeyChainシェアリング使えない!
    • CoreBlueToothは使えた!
  • Bluetooth使うと
    • tvOSとiPhone, Mac 間で通信できる
    • 1パケットに 20 bytesしか送れない
      • JSONとかきつい
      • がんばって分割しましょう
  • AppleTVとiPhoneを同期するDemo
  • 暗号化できるの?
    • できる
    • AppleTV, iPhoneがペアリングされる
    • ただし、ペアリングが解除できなくなる orz

2D Graphics on GPU

kaz.yoshikawa さんによる発表。

  • なんで2D Graphics?
    • 手書きアプリを作りたかった
    • iPad Pro + Apple Pencil の力を引き出したかった
    • Electricdraw というアプリを作ってた
    • 当時は OpenGL ES 1.1 (No Shader)
    • スクロールもなし
    • Electricdrawで参考にしたサンプル GLPaint
  • Technologies Overview
    • Open GL ES 1.1
    • Core Graphics
    • Sprite Kit
    • Open GL ES 2.0
    • Metal
    • Cocos 2D/Qt など
  • Shaderのおさらい
    • vertex shader - 頂点の座標を変換する
    • fragment shader - 実際に描画する
  • 2Dでも立体感を出したい
    • Normal Map使う
    • Normal = 法線
  • まとめ
    • METAL使うのはちょっと大変
    • けど10倍速いなら選んでもいいかも

iOS9 からのオーディオ処理

Yaso_san さんによる発表。iOSでオーディオ関連の機能を実装する際、yaso_san さんのブログにはいつもお世話になっておりますm( )m 今回のサンプルコードは下記URLからダウンロードできるようです。

github.com

  • Audio Unitとは
  • Audio Engine
    • オーディオのプレイヤーやエフェクトやミキサーなどがNodeと呼ばれる部品で用意されている
    • Nodeを繋いで音を鳴らす事が出来る
    • iOS 8から導入されたがかなり機能が制限されていた
    • iOS 9からいろいろ機能が追加されて使えるレベルになった
  • Audio Engine使い方
    • エンジンを生成
    • Nodeを追加
    • エンジンにAttach
    • 接続
    • スタート
    • 成功すると音が出る
  • Audio Unitを作る
    • AUAudioUnitを継承したサブクラスを実装していくつかのメソッドをオーバーライドする
    • いつ何度呼ばれるかわからないので、出来る限りallocで作っておく
  • Apple公式サンプル https://developer.apple.com/library/ios/samplecode/AudioUnitV3Example/Introduction/Intro.html

モバイル開発者から見たサーバレスアーキテクチャ

クラスメソッド tanaka さんによる発表。サーバレスアーキテクチャというキーワードが最近はよく使われるようになったらしいのですが、自分にはよく理解できていなかったので大変勉強になりました。

はてなに入って変わったこと

@niwatako さんによる発表。最近はてなに入社されて変わったことについて。ちなみに、にわとりとタコクラゲで「ニワタコ」だそうです。

  • ランチがラーメンから社食に変わった
  • 使う言語がObjc->Swiftにかわった
    • はてな教科書のレベルが高い
    • もっとはやくSwiftやればよかった
  • オプショナルってなに?
    • 宣言した型かnilが入る方
    • swiftの場合は変数に必ず何かが入っている!
    • 入っていないなら特別な処理(?を付ける)が必要、と考えたほうがわかりやすい
    • !記号は「オレを信じろ」という意味
    • if let A = Bは同じ名前
  • Swift 3日目:コードレビューで指摘されたこと
    • StoryBoard の中身も見られる
    • ファイルの並び方も見られる(アルファベット順になってないと怒られる)
    • スペースの空け方も見られる
      • ただしコーディング規約はないので今作ってる
    • メソッド名もアドバイスしてくれる

Swift-Clean

moto44 さんによる発表。会場のメンバー全員でコーディングガイドラインを作っていくのは大変盛り上がりました。

  • Swift-Clean
    • Swiftのコードフォーマッター
    • 有料
    • ビルド時にスクリプトが走って警告を出してくれる
    • 39個の質問に答えるとコーディングガイドライン作ってくれる
  • 設定方法
    • 自動でscriptを作ってXcodeにセットしてくれる
  • まとめ
    • フォーマットは整ってるほうが良い
    • チーム開発では自動化したほうが良い

Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)

わたくし koogawa の発表でございます。今年Stack Overflowに寄せられたiOS関連の質問の中から投票数の高かったものをピックアップし、皆で振り返っていくというコーナーです。

今回はスライド切替時に音を入れてみたのですが、会場からも良い反応をいただけたようで良かったです(スベるんじゃないかと内心ヒヤヒヤしていたw)。

残念ながら発表途中で会場の閉館時間になってしまい、最後までゆっくり話せなかったのですが、

安心してください!続きはWebにまとめています!

Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版) - koogawa blog

まとめ

今回は無理を言って発表枠を作って頂き、主催の @es_kumagai さんには心から感謝しておりますm(_ _)m

今年は yidev で計2回発表することができました。今後も積極的に発表者側に回り、どんどんアウトプットしていきたいですね。

次回は来年の3月開催を予定されているそうなので、話すネタがあればなにか発表したいと思います!