cutmail's blog

write the code

第6回 南東京iPhone開発者勉強会の参加メモ

「デザイン」を「パクる」ということ

@yopita_


  • うろおぼ絵17

  • 手順

    1. 下地になりそうなものをググる

    2. フォントと写真でごまかす

    3. パクって組み合わせる



  • はじめてのiPhoneアプリ開発





@Yuumi3


  • 並列処理

    • 複数のCPUを使う



  • 並行処理

  • iOSのプロセス

  • 排他制御

  • デッドロック

  • スレッド

  • スレッドセーフ

    • OS、システムが提供するライブラリーが全てスレッドセーフとは限らない

    • Cのrandomはスレッドセーフじゃない



  • iOSのスレッドはスレッド毎にNSMutableDictionaryを持っている

  • スレッドセーフにする方法

    • 状態のもつ変数をimmutableにする



  • 再現性の低いバグが出やすい

  • GCD

    • C言語レベルでマルチスレッドに対応したプログラムを簡単にかけるようにした拡張




GoreData Migration
@Aoi_Wakusei



  • CoreData Migrationとは



Bluetoothについて

@shu223


  • カヤック

  • EncountMe


  • Bluetoothを利用するメリット

    • 省電力

    • オフラインで利用可能

    • サーバーサイド不要(P2Pなので)

    • ちょうどすれ違い的な範囲(10mちょっと)





  • GKPeerPickerControllerを使う場合


  • 使わない場合

  • できること/できないこと?

    • ユーザー操作なしで接続確立

    • Pickerを使用すると、接続確立時にユーザーにOK/NGを選んでもらう必要がある。



  • できること/できないこと?

    • どっかのピアと接続した状態で新しいのが繋がるか

    • 複数ピアとの同時接続

      • 最大16人まで?ピアモードでは無関係?未検証

      • できる





  • できること/できないこと?

    • アプリ内でのON/OFF

      • できない



    • ピッカーは使える

    • 非公開API

      • BluetoothManager.framework



    • デバイスonnいしてもらうまでピッカーを使用して、そのあとGKSessionだけ使用ってのはできない

    • peesWithConnectionsStateをポーリングして、「状態変化が起きているか」は調べられる

    • ただoffだから起きないのか周りいに接続相手がいないからかはわからない



  • Notification

    • BluetoothAvailabilityChangedNotification

      • on/off検知には使えない



    • BluetoothPowerChangedNotification

      • on/offが切り替わったタイミングで飛んでくる



    • もしかしたらon/off検知はできるかも

      • session.didFailWithError:でエラー出てるっぽい

      • wifi/bluetoothが両方offだった場合に、30509エラーがでてる





  • AndroidとのBluetooth通信

    • できない

    • iPhone側がGameKit同士でしか接続できないため



  • Wi-Fiとの干渉

    • 問題:BTを使用しているとWi-Fiの速度が遅くなる

    • 原因:GameKitがWi-Fiを使用している(両方が有効な場合、フレームワークが勝手にWi-FiかBTかを選ぶ)

    • 対策:Wi-Fi接続時にはGKSessionを無効に(available=NO)する



  • GKSessionインスタンスを使い回す場合


  • まとめ

    • ユーザーにはバッテリーを喰うと思われている

    • アプリからon/offする手段がない

    • on/off検知できない

    • Androidと接続できない