ペンギン村 Tech Blog

技術をこよなく愛するエンジニア集団が在住するペンギン村から、世界へ役立つ(かもしれない)技術情報を発信する技術系ブログです。某アラレちゃんが済む村とは一切関係ありません。んちゃ!

Xcode 10 betaにおけるSource ControlとAsset Catalogの新機能のお話

f:id:kamui_project_tony:20180701181028p:plain

はじめに

ども、かむいです
気がついたら2018年も7月に突入してますね(´・ω・`)
投稿がご無沙汰だったので、先月弊社で登壇したイベントがあったので、その話について書きたいと思います

WWDC18報告会 in 弊社

dmmcj.connpass.com

当日はまさかの申込数約200人と大変注目を浴びたイベントとなりましたmm
登壇1番手として変なプレッシャーもあったり(´・ω・`)

そんな中で発表した内容がこちら
https://speakerdeck.com/tony1224/wwdc18-cherry-pick-xcode-10-beta

WWDC18 cherry-pick Xcode 10 beta

というお題目で発表しました
ただXcode絡みのテーマのセッションは複数あったので、その中から

  • Source Control Workflows in Xcode

developer.apple.com

  • Optimizing App Assets

developer.apple.com

の2つについて話しました

Source Control Workflows in Xcode

XcodeにあるSource Control機能がパワーアップしたよ!というお話
具体的には

- Git上の差分をエディタ上に表示
    - 色線で変更行, 競合行が色分けで表示される
- GitLab, Bitbucketもサポート対象に追加
- pullボタンで--rebaseオプションを設定可能に
    - チェックボックスの初期値設定はPreferenceより変更可
- Xcode上でSSHキーの登録, 更新ができるようになった

ていうもの
競合箇所は競合した行のコミッター情報とか、競合した箇所の修正対応(こちらの変更を取り消す, 競合差分を見る)とかもできたりしてより便利に
ちなみにXcodeの3大競合あるあるファイル

- .storyboard
- .xib
- .pbxproj

ではこの機能に反映されては無いようでした
ただここは素直にPull時に指摘される箇所ではあるので、その時点で解消できれば問題ありませんね

ちなみに僕のプロジェクトでは .pbxproj の競合についてはXcodeGenで対処する予定です
まだ実際に使い倒してみての選定ではないため、完全に熟知したタイミングで僕も記事を書こうと思っています

qiita.com

Optimizing For Assets

Asset Catalogの中がパワーアップしたよ!というお話
ただiOS12における新機能はセッションで話された4項目のうちの1項目のみだったので、その項目のみ話させてもらいました
(10分LTだったので意図的に省いてしまったのもありますが)

ちなみにXcodeの話ちゃうやんけってツッコミがあるのですが、Asset Catalogだしまぁいいよねて魂胆です

Session Talk1: Apple Deep Pixcel Imgae Compression

ていうのが今回iOS12から追加されました
Asset Catalogに格納されているリソースをiOS12端末にインストールする場合、これまでと違い最大20%※のサイズダウンを実現させてまっせというもの
※色や画像など、全てをAsset Catalogでまかなっていた場合による差分値なのではという推測です
(セッションでもここについては言及してませんでしたが、自分のアプリで検証済)
そのため画像のみの管理で20%のサイズダウンを発揮できるものでは無さそうです

iOSerの方々はどのあたりまでAsset Catalogを活用されてますでしょうか?

僕は個人アプリの場合

  • 色: 🙅‍♂️ColorUtil.swift とか作って定数で管理。Asset CatalogのColor SetもiOS11からしか使えないというバージョン都合もあったり
  • 動画/音源: 🙅‍♀️ Data Setで入れられるんですよね。まだ対応できてませんでした(´・ω・`)

dev.classmethod.jp

  • 画像: 🙆‍♂️ ただVector使えてなかったり解像度も2xのみだったりしてました

結論: 20%のサイズダウンは出来ずorz

なので諸々のリソースをAsset Catalogに突っ込んでいくと、今後は良いことがあるよという話でした
色はiOS10をカバーするかどうか問題が残るので、チームで相談してみても良いかもしれません

Session Talk3: Cataloging - Namespace

f:id:kamui_project_tony:20180701175919p:plain

最後にこちら発表では話せなかったネタを1つ
Swiftでは相変わらず名前空間が無いよ状態なんですが、Asset Catalog上では名前空間は使えるんですよ奥さんってのを発表されてました
R.swiftも使ってこれを活かせるとかなり便利だったので、僕のプロジェクトでもこれを活かしていく予定です

実装方法もすでにまとめられてる方がいましたので紹介させて頂きます

qiita.com

さいごに

とにもかくにも、発表疲れました(´・ω・`)
当面は勉強会で登壇予定はないものの、8-9月に行われるiOSDC2018にCfP出しました
当選されることがあれば、次回はそのあたりかなと思ってます

ただ申込数半端ないって!多すぎて締め切りのアディッショナルタイムが8時間やもん!そんなん出来ひんやん普通!

なので落ちてもリジェクトコンにすら受かるか怪しい
その場合は技術書典5に申し込んだので、そこで改めて本の形で発表したいッス

え、そこも落ちるの?(´・ω・`)
泣いちゃうよ?(´・ω・`)