iOSDC Japan 2024という国内最大級 1のiOSカンファレンスで登壇させていただきました。
初回の2016年〜2024年までで通算8回目の登壇となります。
- 2016: 海外カンファレンスに登壇する
- 2017: 飛び道具ではないMetal
- 2018: Depth in Depth
- 2019: 今こそwatchOS
- 2020: 機械学習のブルーオーシャン Core ML
- 2022: MLOps for Core ML
- 2023: iOSではじめるフォトグラメトリ
目次
トーク内容
資料と概要
今回は「GIS入門 - 地理情報をiOSで活用する」というタイトルで発表させていただきました。プロポーザルはこちらですが、もしタイトルを修正できるなら
「GIS入門 - 地図をしくみから理解し使いこなす」
とした方がより内容の実態に近いと思います。地図がどんなデータを用いて、どう描画しているのか、しくみから理解することで色んな応用ができるよ、という話です。
スライドはこちら:
MapKitやCore LocationはiOS黎明期からあり 2、「2024年にもなって、いまさら地図の話!?」と思われるかもしれません。しかし本トークはMapKitや特定SDKの解説ではなく、地図アプリケーションを構成するデータや技術について紐解き、それら本質的理解をもって地図/GIS領域であれこれできるようになろう、という趣旨のトークなので、いまさら?と思われた方もぜひ見ていただけると嬉しいです。
GIS楽しい
整理してみると要素はこれぐらいだったりします:
GIS入門、昨日25分話しましたが、まとめてみると結局これだけだったりするんですよね。ラスター/ベクトルタイル、スタイルぐらいを理解しておけば、世界中の色んな団体が公開してる膨大な地図データや各種統計、衛星データ、3D都市モデル等々が自分の引き出しに加わって、一気に世界が広がる #iosdchttps://t.co/pb3RRAnnYfpic.twitter.com/HwgKtUCXAJ
— 堤修一 / Shuichi Tsutsumi (@shu223) August 23, 2024
ツイートにも書いてますが、このあたりのことを理解しておくだけで、世界中の色んな団体が公開してる膨大な地図データや各種統計、衛星データ、3D都市モデル等々が自分の引き出しに加わって、一気に選択肢が広がってめちゃくちゃ楽しくなります。このトークが採択され、この領域について勉強する機会を得られて本当に良かったなと思います。
フィードバックください!
発表やスライドを見ていただけた方、以下からフィードバックをいただけると大変喜びます:
https://fortee.jp/iosdc-japan-2024/me/feedback/71a271a5-faea-4083-b0f9-1fa1487e42d6
当日の発表時間帯のツイート:
その他本発表への反応:
ちょうど、Map Kitを使ったアプリを個人で作っているところで、地図の仕組みについて気になっていたところでした。地図はラスターデータ/ベクトルデータ、地図タイル/タイルインデックスといった要素のもとに成り立っていることが分かりました。驚いた点としては3Dマップは3Dモデルが用意されているのではなく、3D的に描画しているという点でした。
準備メモ
例年、「そろそろ準備しないとやばいのでは」「今年はさすがに間に合わないかも...」と焦るので、昨年あたりから簡単な進行メモを書くようになりました。
自分にはこれが大変有用だったので、お試しで今年の進行メモを公開してみます:
8/3
- 技術調査に着手
- GIS関連の本を買ったり、Mapbox Maps SDK for iOSのサンプルをビルドしてみたり
- 技術調査に着手
8/5〜8/9
- Mapboxの公式サンプルのコードリーディング
- GIS本を読み、内容を実践
- ざっくり発表の流れ案を書いた
この時期に書いた記事:
- 8/11〜8/14
- 「MapKitや他のSDKなしで地図実装」サンプル実装
- マップカスタマイズサンプル実装
- 別のサンプル実装にもこの頃着手(流れから外れるので結局発表には盛り込まなかった)
MapKitや他のSDKを「使わずに」地図をiOSで実装してみた。
— 堤修一 / Shuichi Tsutsumi (@shu223) August 12, 2024
・地図タイルの表示 & ズームレベルの変更
・現在位置の表示(緯度経度→ピクセル座標→スクリーン座標)
原始的すぎて「だから何」となりそうだが、地図をしくみから理解するとっかかりにはなるかなと。 #iosdcpic.twitter.com/XVXGrNTx89
この時期に書いた記事:
8/15, 8/17
- スライド作成着手
- 友人に流れだけ見てもらった
- 8/16は進捗なし
8/18〜8/19
- Mapbox Studioを使ってカスタムスタイル作成 → iOSサンプル実装
- ベクトルタイルについて調査(ローカルメモのみ、時間があれば記事にしたい)
8/20
- スライド作成に戻る
- 友人・同僚に作成途中のスライドで流れを見てもらってFBもらった
8/21(発表前日)
- 東京へ移動
- スライドの初稿ができた
- 初めて通しでやってみた。途中資料の修正とかをやりながら話して37分ぐらい
8/22(発表当日)
- 通し練習と資料のブラッシュアップ
- 最後の通し練習で26分弱(デモなし) 3
- 通し練習と資料のブラッシュアップ
今年のトークテーマもそうですが、僕の場合は「登壇ドリブン学習」が登壇のモチベなので、基本的に
技術調査 → 実装(サンプル作成) → 資料作成
の流れで登壇準備が進行していきます。作成したサンプルが発表での解説の軸になる(こういうのをどう実現するか?を解説していく)ので、基本的に準備期間の80〜90%ぐらいは 技術調査 → 実装
のサイクルを回しています。
大量のトークをいかにキャッチアップするか
高い競争率の中で選ばれた珠玉のトーク群、あれもこれも見たい。しかし会期中は自分の発表の準備や開発者同士の交流も忙しく、トークを見に行けないことも多い。
そんなわけで会期終了後に追っかけ再生でキャッチアップするわけですが、総トーク時間1,765分(30時間弱)もあるトークを忙しい日々の中でいかにキャッチアップするか。
例年であれば見たいトークをピックアップし、見たい順にスキマ時間をみつけては見ていく、という感じでやっていた(やろうとしていた)のですが、まーこれが頓挫します。ほぼ毎年ピックアップしただけで結局見ずに終わります。
というわけで今年はこうしてみることにしました:
- day 0のトラックA〜D → day 1のトラックA〜D → day2のトラックA〜D、という順番でニコ生のタイムシフトを見ていく
- 基本的に倍速再生(1.75x)し、スキップや早送りはどんどんやっていいが、戻ったり、メモのために一時停止したりは絶対にしない
この方法のポイントは、日毎、トラック毎に順番に見ていくことで、「どのトークから見ていこうかな」という優先度の意思決定が不要になることです。とにかくサッと取り掛かることができます。また全体の中でいまどのぐらい見終わったかという進捗状況も明確になります。
あとは戻ったり止めたりしないこと、これを課すことで、メモ等で無限に時間がかかってしまい途中で頓挫する問題を回避できます。どうしても見返したいトークは控えておいてあとで見返せばよく、とにかくまずは「見ようと思ってあれこれピックアップしたのに結局ひとつも見なかった」という最悪の事態を避け、「いったん見る」ことを重視した方針となっています。
今年はこれのおかげで、例年より調子良くキャッチアップできています。半日ほどで半分ぐらい見終わったので、実質4倍速ぐらいで見れているかもしれません。
勉強になったトーク
(たくさんあるので後でまとめます)
アフターイベント開催&登壇します!
iOSDCアフターイベントを開催&登壇します!
オフラインでぜひわいわいしましょう。
またその前日にあるSTORESさん主催のアフターイベントでもLTさせていただきます。
どちらもiOSDCで話した内容とは別のテーマで話す予定です。準備がんばります。
おわりに
今年もiOSDC最高でした!自分の勉強としても有益だったし、懐かしい方やはじめましての方、おなじみの方々ともたくさん交流できてとにかく楽しかったです。
ブースの中にこそ立っていなかったものの、何度も立ち寄らせてもらいました【#iosdc2024お疲れさまでした!】
— SansanTech (@SansanTech) August 24, 2024
3日間、ありがとうございました!
iOSDCは本日で終了してしまいましたが、Sansan&ANDPADでiOSDC Japan 2024を振り返る交流イベントを開催します。お互いに学びをシェアできる時間なれば幸いです。ぜひご参加ください! #iosdchttps://t.co/7kb8OuSIXSpic.twitter.com/JuZroZn3cn
主催者の長谷川さんをはじめ運営スタッフのみなさま、スピーカーのみなさま、参加者のみなさまどうもありがとうございました!来年に向けてまたプロポーザル案を温めておきます!