#はじめに
iOSDC Japan 2018に参加してきました。
私が聞いたセッションで興味を持ったものをまとめました。
#AR関連
###ARKitのための3D算数
https://speakerdeck.com/fujikawakei/arkitfalsetamefalse3dsuan-shu
####ARKitで使う座標系
ワールド座標系
一番大きな座標系
オブジェクト座標系
オブジェクトが持つローカル座標
カメラ座標系
カメラのローカル座標
スクリーン座標
スライドで①と②の変換を省略しようとスクリーン座標でZを入力したが、
計算が大変だから①と②は必要という結論になっていた。
スクリーン座標をワールド座標に変換した後にワールド座標でのカメラの座標と向きを取得し計算したものを
zに入力すれば簡単にできるのではと思いました。
###ARKit Maniacs
https://speakerdeck.com/satoshi0212/arkit-maniacs
ARKit2
World Map Persistence
EnvironmentTexturing
平面を見つけてからの工夫
World Map Persistence
建物をシェアできるのでリアル脱出ゲームなどで活用できそうだと思いました。
###ARKit2.0でAppleが伝えたいアプリ体験を考える
https://speakerdeck.com/mcz9mm/arkit2-dot-0deapplegachuan-etaiapuriti-yan-wokao-eru?slide=17
https://twitter.com/mcz9mm/status/1035803170536976384
(チートシート)
##デバッグ関連
###iOS アプリの開発速度を70%高速化したデバッグノウハウ
https://speakerdeck.com/orgachem/debugging-knowhow-that-improved-our-development-velocity-to-170-percent
#####①LLDBを使いこなす
A:コールスタックを遡る
B:リビルドなしで再実行
C:起動したまま状態を変更する
#####②デバッグのタイミングを変更直後にする
#####③不安駆動でセルフチェックする
#####④動作確認を自動化する
A:AppDelgate経由
欠点
・複数の動作確認が失敗すると、
先に実行された方しか把握できない
・fatalErrorをprint へ変えれば複数の失敗を把握できるが、
失敗した際にIDEがジャンプしないので不便
B:動作確認のための標準ライブラリ
欠点
・ビルドの設定が壊れていると直すまで動作確認のコードが実行できない
(設定をすぐに直せなさそうならAppdelgateの方法を一時的に使うのも手段)
#####⑤間違いにくい設計にする
A:IDを直接のIntやStringにしない
IDを個別のstructにする
B:コードを自動生成する
###AutoLayoutエラー診断所 ~発狂しないためのデバッグ手法~
https://speakerdeck.com/akatsuki174/wan-quan-ban-autolayouterazhen-duan-suo-fa-kuang-sinaitamefalsetehatukushou-fa?slide=28
#####コンソールを読む系
CASE x
Warningを頑張って読む
CASE 2
WTF Auto Layout
http://www.wtfautolayout.com/
CASE 3
Identifierをつけて見やすくする
CASE4
制約を出力する
Constraints()
制約を取得できる
constraintsAffectingLayout(for:)
軸を指定して取得できる
CASE 5
シンボリックブレークポイント
CASE 6
hasAmbiguousLatoutを使う
CASE 7
recursive Descriptionを使う
CASE 8
_autoLayoutTraceを使う
CASE 9
_printHierarchyを使う
CASE 10
_icarDescriptionを使う
####ビジュアルから判断する系
CASE 11
cellの高さを疑う
CASE 12
ビューデバッガーを使う
CASE 13
contentHuggingPriorityを使う
CASE 14
contentCompressionResistancePriorityを調整する
####LLDB使う系
CASE 15
色々使ってみる
・LLDB上でオブジェクトを操作する
・text filterを使う
CASE 16
Facebook / chiselを使う
##Swift4.2
###Swift4.2はどのような進化をしているか?
https://speakerdeck.com/yusukehosonuma/whats-new-swift42?slide=51
RandomUnification
importが不要になった
1.範囲から作成
2.配列からランダムび要素を取得
3.配列をシャッフル
Boolを反転
末尾から要素を探す
全ての要素が条件を満たすか判定するAPI
letな値に対しても直接呼び出せるように
指定したキーパスのオフセットを取得するAPI
####言語仕様
Hashableプロトコルの方法が変更
Enumのcaseが列挙できるように
allCaseのカスタマイズ
コンパイル段階のプロバテイに
ドット記法でアクセスできる仕組み
IUO属性 →IUO型
条件付きのプロトコル適合
配列などがHashableに適合
コンパイル時に警告、エラーがだせるディレクティブ
#Compileの導入
モジュール間のインライン化を指定できるように
####SwiftPackageManager
Localパスも依存関係で指定できるように
SwiftLanguageVersionsの指定がEnumに
システムライブラリの依存指定が変更
###プッシュ通知はどのように進化をたどってきたか
https://speakerdeck.com/urouro/putusiyutong-zhi-hadofalseyounajin-hua-wotadotutekitaka
iOS12
通知のグループ化
複数の通知をまとめられる
通知設定周りの改善
通知から直接設定できるq
通知の許可ダイアログを出さずに通知でき
一番最初の通知に確認のUIがつく
##感想
iOSでの開発を始めたのが去年の11月頃でiOSDC初参加でした。
まだまだ知らない事の方が多い中、専門的な物が多いんじゃないかと
カンファレンスに参加するのが少し不安でした。
ですが、実際のにセッションを聞くと全てわかりやすく丁寧に説明されており
私でも理解することができました。(難しいものも中にはあります)
最終日には聴くのが楽しみになっていました。
色々な技術を知ることができ、
とても楽しい四日間でした。
来年もまた参加したいです。
会場の準備、案内をして下くださった
スタッフの皆様
快適なネットワークの環境を提供してくださった
ネットワークスタッフの皆様
素晴らしいセッションをしてくださった
スピーカーの皆様
飲み物や様々なノベルティを提供してくださった
スポンサー各社様
本当にありがとうございました。