koogawa blog

iOS、Android、foursquareに関する話題

#yidev 第24回横浜iPhone勉強会に参加してきたよ

f:id:koogawa:20160702235648p:plain

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

https://atnd.org/events/78243atnd.org

今回も発表枠はあっという間に埋まり、参加者枠もキャンセル待ちが出るほどの盛況ぶりでした。

参加者のアイコンを並べたスライドが今回も大活躍😃

f:id:koogawa:20160702235824p:plain

また、岸川さんより try! Swift の参加証を頂きました!ありがとうございます。

f:id:koogawa:20160702235910p:plain

当日のツイートはTogetterにまとめています。

***

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

Xcode 8 + Server

noriri_ さんによる発表です。Xcode 8でパワーアップしたServerについてのお話でした。

  • Xcode Server
    • メリット
      • バイスでテストできる
      • Betaをテストできる
      • パフォーマンスがよい
    • デメリット
      • セットアップが難しい(.travis.yml みたいに簡単にいかない)
      • 他のサービスとの連携がしづらい
      • Github の clone にめっちゃ時間かかる
  • Server 5.2 + Xcode 8 でいろいろ改善されている
    • 好きなユーザでビルドできるようになった

CoreData 大容量データ マイグレーション

yaso_san さんによる発表です。大量にメモリを消費するCoreDataのマイグレーションについて、その理由と改善策を解説されていました。Instruments を使ったデモがわかりやすかったです。

  • CoreDataのマイグレーションは大量にメモリを消費する
  • マイグレーションの仕組み
    • Lightwight Migration - おまかせ
    • Custom Migration - 細かくカスタマイズ可
    • の2種類が存在する
  • Custom Migration
    • Stage 1: オブジェクトをSourceからDestinationに新しい形式でコピー
    • Stage 2: 関連をセット
    • Stage 3: 検証
  • 何故メモリを消費するのか?
    • データを引き継ぐために全てのオブジェクトをメモリに載せてるから
  • マイグレーション分割の壁
      1. 分割する数だけMapping Modelが必要
      1. SourceとDestinationのオブジェクトの結びつきは分割すると引き継げない
      1. 分割した数だけ時間がかかる
  • マイグレーション分割の改善
      1. オブジェクトに一意の値を持たせる
      1. グループ分けできる値を持たせて1つのエンティティ内で分割する
      1. Mapping Modelをコードで分ける
      1. 関連先のエンティティのマイグレーション順を前にする
  • まとめ
    • メモリと時間はトレードオフ
    • エンティティ毎のデータ量によって分け方をかえる
    • 処理の順番を決めて無駄な関連付けをしない
    • 必要のないデータは引き継がない

Xcode 8 移行に備える

田畑浩平 さんによる発表。みんな気になる Swift 2.3 / 3 移行のお話でした。

  • ATS必須化
    • すべての通信においてHTTPSが要求される
    • それ以外で使う場合は設定が必要
  • Swift 2.3/3 への移行
    • Swift 3 : Xcode 8 がメインでサポート
    • Swift 2.3 : Swift 3 への移行準備ができていない開発者が最新のSDKを使うためのもの
  • 移行ToDo
    • まずはSwift 2.3移行
    • Swift 2.3でエラーを吐くライブラリにはPR
    • 2.3 での動作が担保されたら3への移行を試す
    • Xcodeにバグが有る場合はApple Bug Reportからバグ報告
    • 使用しているライブラリがすべて3をサポートした時点でSwift 3へ移行

マルチプラットフォーム展開アプリに音声インタラクションを追加するお話!

k2-ikeda さんによる発表です。SiriKIt、OK Google、コルタナのデモもありましたよ!

  • SiriKit
    • iOS 10以降
    • 日本語が使える
    • 特定ドメインへの対応アプリが作れる
    • 対応シーンは限定的
  • OK Google
    • アラーム、電話をかける、フィットネス、乗車予約などが可能
    • 日本語が使える、と書いてあるが実際は不安定
  • コルタナ(Windows
    • Windows 10〜
    • 応答パターン用のxmlを書かないといけない
  • まとめ
    • 最近の環境であればどのプラットフォームも対応している
    • SiriKit対応は他のプラットフォームのことはあまり気にしないで行えばよいのでは
    • 対応するドメイン領域もそうだけど、「どのプラットフォーム版のアプリでも同様のUXを提供」みたいなのが要件にのってくるアプリには特に日本語環境では向かない

React-native について!

yuumi3 さんによる発表。Facebookが公開している React-native のお話でした。

  • React-native
  • React.js とは
    • *.js 系は色々出てきたけど、これが勝者!
    • シンプルなプログラミングモデルと性能を両立
    • メンテナンス性の高いコードが書ける
  • ES2015(ES6)
    • class 構文が導入された!
    • すべてのブラウザがサポートしているわけではない

iOS 10 Extensions ざっくり確認!

tmokita さんによる発表です。iOS 10で追加された Extensions について、みんなでおさらいしていくスタイルがとても良い感じでした。

  • Map Extensions
    • 使おうとしたけどできなかった
  • Extensions ざっくり確認
    • Xcode 8 増えたもの
      • Broadcast UI
      • Broadcast Upload
      • Call Directory
      • Intents
      • Intents UI
      • Message
      • Notification Content
      • Notification Service
      • Sticker Pack

なお、Map Extensions については次の順番で調べていけばよいのでは、と id:KishikawaKatsumi さんがおっしゃっていました。

さいごに

id:niwatako さんがとても良いことを言っていました。

これは本当に同感で、yidevは発表者でなくとも、勉強会が終わった後に不思議な充実感が得られるのです。

yidev には発表中にも普通に参加者から質問が投げられ、そのままディスカッションが始まる文化があります。これは他の勉強会ではあまり見られない光景だと思っています。きっと「講習会ではないですからね :D」の文化が根付いているんでしょうね😃

yidev、次回も楽しみです!