2019/04/10(水)に行われた「Otemachi.swift #03」のまとめです。
ハッシュタグは#otemachi_swiftです🐦
「Otemachi.swift」とは?
日経新聞社さんが開催しているiOS・Swiftの勉強会です。
私は初参加にてLTをさせていただきました。
イベントページはこちら↓
開場
- 時間:18:30-
写真は撮っていないのですが、落ち着いた雰囲気の素晴らしい会場でした。
発表
アプリ流入用広告のデータ分析基盤を整える~FirebaseとiAd.frameworkの連携~
- 時間:19:05–19:15
- 発表者:Marina Nakagawaさん(@marina10172013)
アプリ流入用広告のデータ分析の基盤を作成されたお話でした。
NakagawaさんはiOSとAndroidアプリをインストールさせるための施策について担当されているとのことです。AppleやGoogleが持っている広告の情報と、自社(日経新聞社さん)が持っている課金の情報を紐付け、ユーザーがアプリ流入用広告から課金した際の情報を分析し、アプリの課金率を上げるのに繋げているようです。
FirebaseとiAd.frameworkを使った具体的な方法まで紹介されており、素晴らしい発表でした。もし業務で同じようなことを行う機会があれば絶対に参考にさせていただきます。
ちなみに日経新聞社さんの広告だと、私は三国志の「婚活アプリで知り合った男がいきなり重い」が頭に残り続けています笑
5分でわかるSwift 5のRaw Text
- 時間:19:15–19:20
- 発表者:Tsukasa Komiyamaさん
Raw Textについての発表でした。
Raw TextはSwift 5で追加された機能です。
プロポーサルはこちら↓
簡単にいうと「文字列を#で括ることでエスケープ不要になる」というものです。
便利だと思いましたが、変数展開やエスケープ文字を使うためには#の数を増やさなければならず、かえって手間になる場面もあるように感じました。そのため、使いどころはよく考える必要があると思います。同一プロジェクト内で混在していても可読性が落ちるので、そのあたりも考慮しなければいけなさそうです。
発表がとてもわかりやすく、たったの5分でRaw Textの機能を一通り理解することができました。まとめていただき感謝です。
最後に…
###”とても素晴らしい発表でした”###
日経電子版にApp内課金を導入してみた
- 時間:19:20–19:30
- 発表者:Ikaiさん
日経電子版iOSアプリでApp内課金(In-App Purchase)を導入されたお話でした。
App内課金の他社事例は聞いたことがなかったので、参考になりました。
App内課金の状態とログインID(日経ID)をどのように紐付けているかが気になりましたが、App内課金時にAppleが発行するレシートを使って紐付けられていました。
私が業務で担当しているアプリはすでにApp内課金を導入済みなのですが、スクラッチで実装したことはないので、もし行う機会があったら参考にさせていただきたいスライドです。
Firebaseで作るiOSアプリ
- 時間:19:40–19:50
- 発表者:mogamingさん(@_mogaming)
Firebaseを使ってiOSアプリを作られたお話でした。
実際に「checka!(チェッカ)」というアプリはFirebaseを使って個人で開発されたとのことです。すごい!
Firestoreについての説明と実装例がわかりやす過ぎました。Firestoreを使う際は参考にさせていただきます。
「Firebase Authentication」は初めて知りました。認証サービスとのことであり、パスワードや電話番号認証をはじめ、TwitterやFacebookなどのSNS認証などにも対応しています。
なんかもう「Firebase便利過ぎ」の一言です笑 個人アプリの開発ではもはやデファクトスタンダードです。
SE-0246: Generic Math Functions
- 時間:19:50–20:00
- 発表者:S_Shimotoriさん(@S_Shimotori_pub)
Math関数についての発表でした。
プロポーサルはこちら↓
2019/05/04現在ではまだリリースされていません。
ちょっと難しかったので全部は着いていけませんでしたが、数学の演算が今より便利になるようです。
素朴な疑問↓
発表が面白かったのと、スライドの色づかいが好きでした。
未リリースのプロポーサルを勉強会で発表できるまで落とし込めるのは本当にすごいと思いました。素直にSwiftを勉強されるのが好きな方なのだと感じました!
コードカバレッジとの付き合い方を知ってテストを書く
- 時間:20:00–20:05
- 発表者:kariaduuさん(@kariad_uu)
コードカバレッジについての発表でした。
「ステートメントカバレッジ(C0)」や「ブランチカバレッジ(C1)」という言葉は聞いたことがなかったので勉強になりました。
…と思って聞いていたら、「命令網羅」や「分岐網羅」と同義のようだったので、意味としては知っていました。
ただ、Xcodeではステートメントカバレッジを計測しているということは知らなかった(というより意識していなかった)ので、カバレッジだけでは発見できない不具合もあるということを念頭に置いてテストコードを実装していこうと考えさせられました。
ちなみに技術書典6でkariadさんが技術書を頒布していたので購入して読ませていただいたのですが、スライドの内容に加え、+αでテストのことがたくさん書いてあって勉強になりました。
あと、スライドの自己紹介にあった↓は一体何だったのでしょうか…笑
循環的複雑度を上げないためのSwiftプログラミングTips
- 時間:20:05–20:10
- 発表者:Tomohiro Imaizumiさん(@imaizume)
循環的複雑度(CCN)についての発表でした。
CCNは昨年(H30春)の応用情報の試験に出てきてわからなかったので、勉強して記事を書いたことがありました↓
そしたらなんと参考資料として読んでいただけていました…!私の書いた記事が誰かの役に立っていることを直接知れる機会はなかなかないので、本当に嬉しかったです。
ちなみに私がぼそっとつぶやいたところ…(もちろんimaizumeさんの発表に対する文句ではないです)
後日ブログにて取り上げていただきました! こちらも嬉しかったです。
SwiftでCCNを減らすテクニックまでは考えたことがなかったので、参考になる発表でした。
@unknown defaultについて
- 時間:20:10–20:15
- 発表者:shinji_kurosawaさん(@kuroFront46)
@unknown defaultについての発表でした。
@unknown defaultはSwift 5で追加されたアノテーションです。
プロポーサルはこちら↓
自分の発表の直前ということで、あまり集中して聞けていなかったのですが(46kuroさん、すみません…)、Swift 5では警告が出るので@unknown defaultは使わざるを得ないようです。(懇親会で伺いました)
ただObjective-Cで定義された列挙型を使っていなければ関係ない話なので、Swift率100%のアプリでは気にする必要はないです。ただObjective-Cで書かれたライブラリを使っていることもありますし、現実はそうもいかないと思いますが…。
そしてDangerも触ったことがないので気になります。
既存PJにSwiftLintを導入したら大変だった話
- 時間:20:15–20:20
- 発表者:ウホーイ(@the_uhooi)
既存のプロジェクトにSwiftLintを導入した際の話でした。
ウホーイ史上、2回目のLTでした⚡
長くなりそうなので、自分の発表については別記事で書きます。
懇親会
- 時間:20:30–21:15
懇親会はタリーズコーヒーを貸し切って行われました。すごく…すごいと思いました(語彙)
例によっていろいろな方とお話できて楽しかったです!
おわりに
Swift 5のリリース直後だったので、Swift 5で追加された機能の紹介が多かったです。私はまだSwift 5を触っていないので、非常にありがたかったです。
そろそろ業務でもSwift 5を使い始めるので、それまでに個人アプリをSwift 5に対応させたいです。
おまけ
技術書典6で日経新聞社さんが技術書を頒布されていたので購入しました!
まだ読めてはないので、時間を作って読ませていただきます。