iOSDC2021に参加した話
お久しぶりです。
1年に1回、iOSDCの時だけ更新するブログです。
タイトルの通りiOSDCに参加しました。
今年の関わり方
去年はスピーカーとして参加したので、今年も何か話たいと思ったのですが、プロポーザルが落ちてしまい...笑
なので、単なる参加者として参加しましたが、今年は単に話を聞く以外にも色々できました。
- Podcast
- アンカンファレンス
- iOSDCチャレンジ
Podcast
会社の先輩に誘われて、会社のPodcastでiOSDCについて話しました。
技術的な話とかではなくて、「iOSDCって楽しいよな」って雑談を収録をしました。
Podcastを聞いてくださった方ありがとうございます。
Podcastの中でも「iOSDC終わりにまたrecapしたいよね」って言っていたので、またrecapを出すかもなので、お楽しみに!笑
アンカンファレンス
今年からはアンカンファレンスというのがありました。
アンカンファレンスとは何かちょっとしたことを話したい時に自由に予約して話せる場のことで、今年からの取り組みとのことです。
「プロポーザル落ちたけど、何かやっぱり話したい!」と思っていたので利用して、iOSDC前日にできたResizableSheetというライブラリについて話をしました。
少しだけResizableSheetの話すと、これはハーフモーダルをSwiftUIで簡単に利用できるようにしたライブラリです。
SwiftUIでハーフモーダルを簡単に扱えるライブラリを作成中。
— まつじ (@mtj_j) 2021年9月13日
iOS15で登場したUISheetPresentationControllerと違って、中のViewに応じてリサイズできるし、割と良い感じ。 pic.twitter.com/uEmAy7NoFG
これについてはまたどこかで詳しく書きたいと思うのですが、もう少しAPIを手直ししてから、書きたいと思います。
(本当にiOSDC前日にできたので、まだ色々と雑なのです...)
Twitterとかで「ResizableSheet使ってみたい」みたいなツイートも見て、嬉しかったです。
iOSDCチャレンジ
今年のiOSDCでめちゃくちゃ流行った企画です。
#
から始まるトークンというものを、パンフレットやスポンサーのサイト、ノベルティから探し、入力するとポイントがもらえ、そのスコアを競うイベントです。
正直なところ、去年まではそこまでやっている人は多くないイメージでしたので、「ガチでやれば、そこそこのところまでいけるのでは」と思ったのが、沼の始まりでした。
ノベルティが届いた時にトークンを探し、それをnotionのデータベースでまとめてました。
しかし、今年は同じように考える人が多く、 さらに上には上がいて、上位陣の方はもっとしっかりとまとめていました。
一番調子がよかったときでさえ4位で、最終日には心が折れてしまって、最終的には12位でした。
11位の人はキリ番賞があったみたいで「惜しい!!!!」って思いましたw
ちなみに順位の遷移が見れるものがYouTubeに上がっています。
mtj0928が僕ですので、見てください。
トーク
さすがにトークンで終わるのもあれなので、今年特に面白かったトークも紹介します。
意識したわけではないのですが、二つともプロジェクト構成になりました。
大規模なアプリのマルチモジュール構成の実践
最近マルチモジュール構成が流行っていて、僕も強く興味があったので、聞いてみました。
技術的な話だけでなく、会社としてどう取り組むかまで丁寧に説明してあり、知見の塊でした。
発表の本題ではないですが、GenesisというOSSは知らなかったので、この機会に知れてよかったです。
Swift Package中心のプロジェクト構成とその実践
あまりビルド周りの知識がない僕でも理解できるわかりやすさ、そして今すぐ使いたくなるプロジェクト構成、正直もうすごすぎました。
一度自分でも小さいサンプルプロジェクトでこの構成を試してみて、色々と検証してみようと思います。
その他の思い出
雑談チャンネルで、「Twitterのウィジェットってないよな」って話になったので、僕が個人開発しているWdigetterを紹介しました。
apps.apple.comすると一瞬でリンクが共有され、みんなすぐにインストールして、iOSエンジニアの皆様がそれを触って感想を言い合う時間が突然始まりました。
ネガティブな意見はあまりなく、「おーUIきれいー」とか「ウィジェット使ってこなかったけど、これは使おうかな」など良い意見をたくさんもらえたのが嬉しかったです。
最後に
来年こそは登壇したい、そしてiOSDCチャレンジの上位に食い込みたい!
iOSDC Japan 2020 で「Swiftで始める静的解析」というタイトルで発表しました!
タイトルの通りです。
今回で4回目の参加となるiOSDCでついにスピーカーとして登壇することができました!!
iOSDC とは🤔
年に一回、日本中のiOSアプリ開発者が集まり各々が技術についての発表をするイベントです。
例年はオフラインでの開催でしたが、今年は初のオンライン開催でした。
なんで登壇したのか?
初めてiOSDCに参加した時から、「いつかスピーカーとして登壇したい」と感じていました。
しかし、当時理系大学(院)生であった僕は連日の課題 / テスト / 研究 でなかなかiOSアプリ開発、ましてや発表のために資料を作成する時間なんて到底なかったわけです。
しかし、今年からは就職し、労働基準法という素晴らしい法律によって土日が土日として休めるわけです。
これで発表のための時間的余裕ができたので、「今回こそは...!」とプロポーザルを提出しました。
(プロポーザルとはこんな発表したいからさせてくださいってやつです。みんながみんな発表できるわけではないんです...)
なんで静的解析の発表?
端的に答えると大学院でソフトウェア工学、特に静的解析にまつわる研究をしていたからです。
(と述べていますが実はiOSの内容でオリジナリティのあるネタがなかったから...)
ソフトウェア工学とはソースコードや開発過程を対象に、「どうやったらもっと効率的に開発ができるのか」を追求する学問です。
ソフトウェア開発が好きな人は、みんな効率的に開発がしたいわけで、この学問を嫌いな人はいないと勝手に思っています。
そんなソフトウェア工学に少しでも興味を、せめてどんなことをしている学問かをiOSアプリを開発している人たちに知ってもらいたい、というのが今回の発表の裏テーマでした。
結局何を話したのか?
前半は静的解析に必須の構文木の話をし、そこからSwiftで構文木を扱うSwiftSyntaxの話につなげました。
その後、「IntelliJにはあってXcodeにはない機能を実装してみよう」ということでtype-2コードクローン検出の実装を紹介しました。
詳しくは資料をみてください。
発表では述べませんでしたが、Swiftとコードクローン検出は案外良い組み合わせだと思っています。
というのもSwiftで開発をしていると、extensionで簡単に既存の型を拡張できるので、実は別の場所ですでに作った拡張メソッドと全く同じ拡張メソッドを作ってしまう場合がありそうだからです。
実際、iOSDCの実行委員長の長谷川さんはiOSDCが始まる少し前にこんなツイートをしています。
「このクラスにこういうメソッド欲しいな」と思って定義したらIDEがエラー出して、見たら「同じ名前のメソッドがあるよ」でして。見たら過去に実装したのが見つかりました。動作から全く同じ名前をつけてる自分はブレてなくていいぞ、とご満悦です。(だけど作ったの覚えてないので0点)
— Tomoki Hasegawa (@tomzoh) 2020年9月1日
こんな場合もコードクローン検出ツールがあれば安心ですね(???)
皆さんの反応
静的解析が好きなので次はDをメインに聞きます。 #iosdc #d
— kishikawa katsumi (@k_katsumi) 2020年9月21日
個人開発で140万DLすごすぎwhttps://t.co/hBAHrs2TQF
— Objective-ひろC🍜iOS / Flutter (@hirothings) 2020年9月21日
#iosdc #d
SwiftSyntax の解説、とても分かりやすい #iosdc #d
— Yasuhiro Inami (@inamiy) 2020年9月21日
— あつや🍳 (@n_atmark) 2020年9月21日
トークン化することで、改行などの表記揺れを吸収してコードクローンを検出できる
— ウホーイ@iOSDC2冠達成 (@the_uhooi) 2020年9月21日
スライドがわかりやす過ぎる…#iosdc #d
ノード、ツリー構造、大学の離散数学やコンピュータ概論で見た内容ばかり。大学の学問ってやっぱ大事なのか。うらやましい。#iosdc #d
— ねこきち@ニートエンジニア (@nekokichi1_yos2) 2020年9月21日
Xcodeの静的解析をSwiftで進化させてて感動した👏
— Objective-ひろC🍜iOS / Flutter (@hirothings) 2020年9月21日
説明もわかりやすかったです!https://t.co/y0N8e1O3cG#iosdc #d pic.twitter.com/JSZi9YObol
静的解析の考え方が少しだけわかった。参考になる。 #iosdc #d
— 藤 治仁@㊗️増刷📖iPhoneアプリ開発集中講座 著者 アプリクリエーター (@From_F) 2020年9月21日
— あおい (@aomathwift) 2020年9月21日
静的解析わかった気になれるいい発表だった
— ターク (@tark_ann) 2020年9月21日
#iosdc #d
— だっちゃん (@dchn2904) 2020年9月21日
メモ取るより理解に集中した
— ひっか (@hicka04) 2020年9月21日
こうやって自分で独自のLintがつくれるのか… #iosdc #d
静的解析の話、初めて聞いたけどわかりやすいし面白かった#iosdc #d
— やや (@yayamochi) 2020年9月21日
#d #iosdc
— Moto++ (@Moto_0124) 2020年9月21日
静的解析ちょっとわかった。
トークやスライドがわかりやすかった
登壇してみてどうだったか
いやー、楽しかったです!!
例年は聞き手としての参加していましたが、スピーカーとして参加するのがこんなに楽しいとは思いませんでした。
準備は大変 (スライドのページ数120枚超え、時間の都合上削ったのを含めると200枚超え) でしたが、登壇できて良かったです。
来年も登壇したい!!
(おまけ) 収録風景
WWDCのように立って発表して、体を動かしたりと動きをつけたかったので、収録はキッチンで行いました。
ちょうど良い高さにカメラを持ってこれる場所がキッチンしかなかったんです...笑