[イベントレポート] 「SWWDC(仙台iOS開発者コミュニティ)-34 反省したり振り返ったりするプレゼン会」に参加してきました! #iosendai #swwdc

はじめに

こんぬづは、わざわざ勉強会に外付けの分割キーボードを持ってドヤリングした田中です。持ち運びがめんどくさかった!そして茶軸がうるさくて迷惑をかけました。ごめんなさい。

さて今回の記事は、昨日開催された、仙台のiOS開発者コミュニティであるSWWDCにお邪魔してきましたので、そのレポートをお届けします!

「SWWDCの活動振り返りと来年の展望」 @totottiさん

  • KPTで振り返ります
    • K
    • P
      • もう少し開催回数が多くてもよかった
      • iOS11 & Swift4の話題が少なかった
      • 仕事でiOS書いてる人が少なくなってきた
    • T(優先順位順)
      • 年6回以上開催
      • 技術的な方面でWWDC復習会(セッション動画を見る会とか)
      • コラボ勉強会
      • ハンズオン
      • 読書会
      • 初心者入門的なイベント
      • もくもく会
      • アプリお試し会
  • 2018年の方針
    • 技術の話ができる集まり
    • 気楽に開催、気楽に参加
    • 質を気にしない
    • 要はこれまでと変わらない!
  • 予定表を組んでみました
    • 気づけば1/3が花見とか新年会とか忘年会になっているw

「Swift4プログラミング始めました!」 @magickworxさん

  • SocialAccountKitSwift
    • iOS 11 以降使えなくなった、Account.framework と Social.framework の代替フレームワークを
    • Swift 4対応済み
  • 「あについ」
    • TVアニメの公式ツイッターアカウントをフォローするだけのアプリです。
    • これもSwift 4で書きました
    • アニメ関連で、肌色の強いツイートが流れてくると審査のときに引っかかって大変だった
  • Codableは便利
  • Objective-CとSwiftの書き方比較
    • Enum
    • OptionSet
  • 一回Swiftを使うとObjective-Cに戻れない。Swiftは楽しい
  • APNsの設定ではAuth Keyを使おう。一年毎の証明書の更新が入らなくなるよ
  • Pechat
    • ぬいぐるみとおしゃべりするボタン型ガジェット
    • BLEでiPhoneとつながるスピーカー
    • ラズベリーパイのスピーカーとして利用しようと考えている

「今年ハマったIn App Purchase」 @asmzさん

  • VideoMarketで勤めています
    • 東京に本社があって、仙台にも支社があります
    • 自社サービスやってます、積極採用中です!
  • In App Purchaseでハマりました
  • Case1. iOS11でSandbox課金に失敗
    • Forumに同様の質問があったが、解決していないようだった
    • iOS 11.1 beta2にバージョンアップしたら解決した。
    • まとめ
      • Forumのチェックは大事
      • iOSのマイナーバージョンアップでも油断せずに動作確認しよう
  • Case2. tvOS実機で課金が動かない
    • iOSとtvOSで課金実装を共通化していた
    • iOSでは動作するが、tvOSでは動作しないという状態
    • どうやら課金処理のオブジェクトを強参照していなかったのが原因
    • OS(または端末)ごとにメモリ開放のタイミングが異なり、iOS端末でたまたま動作していたのではないかという推測
    • まとめ
      • 共通処理だからといって油断せず、実機デバイス毎の動作確認が必要
      • 公式ガイドの更新履歴をチェックしよう
  • Case3. 自動更新型の問題
    • 未解決問題
  • まとめ
    • Sandboxを過信しない
    • 調べても解決せず、実装も間違ってなさそうならバグ報告しよう
    • 年2回くらいAppleに直接問い合わせできる魔法のチケットを使おう

「実録iPhoneリジェクト物語」 @KyasuSoftさん

  • 毎週金曜になにかを喋る会をやっている。ネタはなんでもよい。それで喋った話です(エンジニア以外もいる場)
  • Apple大好き。でもWindowsとかAndroidが嫌いなわけではない
  • アプリ申請時のリジェクトの種類
    • バイナリリジェクト
      • アプリの問題
    • メタデータリジェクト
      • アプリの説明文などに関する問題
  • 最新のリジェクトネタ
    • 「iPhone Xに対応しました!」とアプリの説明文に記載
      • 2017/10に申請したら、「まだ発売されていないプロダクトに言及してはいけない」とリジェクトをくらった
  • アイコンバッジについて
    • カレンダーアプリのアイコンバッジを今の月を表すために使っていた
    • 「アイコンバッジは通知の残り件数を表示するものなので、それ以外の日付や気温の表示などに使ってはいけない」ことがガイドラインに明記され、リジェクト
    • 代替策としてアイコンを変更する新機能を使ってそれっぽく表示した
      • 変更するアイコンはバンドルでないとだめなので、事前に作ってアプリに仕込んでおく必要があって大変だった
      • アプリを起動しないとアイコンを変えられないので、毎月1日にアプリを起動してもらうようにLocal Notificationを使って催促している
  • 今のアプリバージョンにもうすでに存在しない機能については言及してはいけない
    • ver.nで削除した機能について、大切な告知なのでver.n+1のアプリ説明文にもその旨を記載したところ、もう存在しない機能については言及してはいけないとメタデータリジェクトをくらった
  • 権利侵害でリジェクト
    • スタートレックっぽいアプリを申請したら権利侵害でリジェクトされた
    • 「わかる人にはわかる」ネタのアイコンに変更して再度申請
    • ステラトレック
  • ソーシャル系アプリに関するリジェクト
    • ソーシャル系アプリには通報機能が必要
    • ソーシャル系アプリにはブロック機能が必要
    • アプリを使い始める前にユーザー登録をさせてはダメ
  • GPSを使うアプリに関するリジェクト
    • GPSの機能は著しくバッテリーを消耗するので、アプリ内で注意を明記しないとダメらしい
    • 「注意: このアプリはGPSを使うので、電池を多くしようします」など
  • 参加者からのリジェクトネタ
    • HealthKitを使ったアプリに関するリジェクト
      • 「このアプリで使う研究データは正しいものなのか?」とAppleに聞かれる
      • これからそのアプリを使って研究をしようとしていたので困った

「An iOS Engineer challenges Web.」 @ktanaka117

  • 以下にまとめました!

「Visual Studio App CenterでiOS、Android、Windows、macOSアプリのライフサイクルを自動化」 @nnasakiさん

[公開され次第スライドを貼ります]

  • Visual Studio App Centerの紹介
    • CI + UIテスト可能 + テスト配信 + クラッシュレポートという、アプリ開発でよく使うものがセットになったもの
  • Master-Detailテンプレートで作ったiOSサンプルで、トラックイベントを送信するデモの紹介

まとめ

仙台にもエンジニアの勉強会コミュニティはあります!しかもとても楽しいよ!

SWWDCは参加者のバックグラウンドが様々で、やっていることや興味の対象が三者三様なので、多岐に渡った話が聞けるのがとても魅力的です。iOS以外のネタも展開されます。

来年も盛り上げていきたいという主催の@totottiさんの意気込みに感化されたので、私も来年はもっと仙台のコミュニティに参加しようと思いました(˘ω˘)