😆

try! Swift Tokyo 2025に参加しました!

に公開

今年もtry! Swift Tokyo 2025に参加しました!
去年が初参加だったので、2回目の参加となります。この1年は色々な勉強会などに積極的に参加していたからか、なんとなく会場内でも知っている人に会う確率が増えたような気がします。

さて、今年も徒然なるままに感想を書き綴っていきます。随時更新です。

day1

絵を描く人が多い印象でした。いくつか試してみたいと思うものもあって、刺激を受けたday1でした。

iOS 17, 16, 15などの新機能

WWDCでとても便利なAPIが新登場しても、最新バージョンしかサポートされないため実装を見送り、そのまま忘れ去っている人に向けたトークでした。
SwiftUIとかの、iOS15切ったら絶対こっちに乗せ替えるんだ...!という強い決意を持っているものは覚えてますが、ちょっとスッキリ書けるようになるAPIなんかは忘れがちなので、ありがたいトークでした。

紹介されていた中だと、 formattered は早く置き換えたいなと思いました。
https://developer.apple.com/documentation/swift/duration/formatted()
https://developer.apple.com/documentation/swift/duration/timeformatstyle

大体こんな感じでしょうか🤔
DateStyleの書き方がわからん...というところはありますが、たしかに安全な気がします。

日付のフォーマッタなどは一度便利関数を作ってしまうとあまり手入れをしないような気がするので、これを機にメンテしたいなと思いました。

Japan Symbol QuizによるSwiftUIのPathアニメーションの探求

すぎーさんによるPathアニメーションについてのLTです。
以前Kanagawa.swiftを開催した際にも作ってくれたシンボルクイズのJapan版もありました!
https://x.com/u5_03/status/1909839787445665930

早速try!
パスアニメーション

謎の四角が最初に描画されてしまうのですが...動いた!
FigmaのVectorizedプラグインでPNG画像をベクターに変換し、塗りつぶしを線に変更してSVG画像に書き出し、それを記事にあるSVG to SwiftUIツールにかければ元になるパスを作れました。線が太すぎるとラインとして認識されず、変な描画がされてしまうらしく、1ptとかで描画します。

中々うまく動かせなくてday2に本人に聞いて教えていただきました🙏感謝...
https://x.com/u5_03/status/1910329403646857224

Swift WTF: 奇妙な挙動、落とし穴、そして修正策

オモロかったです!
国旗の絵文字が内部的に2つの文字で表現されているから、置換しようとするとうまくいかない...と。
そういった面でも、新しいAPIを使っていく重要性の学びになりました。

素早く実現する優れたアプリデザイン

デザインを形作っていく中での経験を色々紹介してくれましたが、何よりもアプリに対する熱量と、アプリで実現したいことに対する愛情がすごいと思いました。
カメラが好きで、カメラに印字されているフォントが好きで、カメラの感触が好きで、それらをアプリで最適な形で表現しよう!と試行錯誤するには生半可ではない情熱が必要だと思います。
私は自分の作るアプリに対してこのくらい愛情や熱意を注げているのだろうか...と、内省しました。

Charts APIで作るグラフアート – データビジュアライゼーションを超えて

Swiftでお絵描きLT第二弾でした。
https://x.com/akkiee76/status/1909808668423733598
https://x.com/akkiee76/status/1909991207390097544

やってみた!
ピクセルアート

サンプルのpixels.csvファイルをみてもらうとわかるのですが、座標と色を表した表...!?となりました。akkieさんはスクリプトを組んでCSVを作ったらしいのですが、まぁちょっと試したいだけだし...と思って人力で座標を書き出しました。大変だった。。
準備ができたらスクリプトも公開するらしいので、そうしたらもうちょっと解像度高めて動かしてみたいです。

Pathアニメーションのもそうですが、アスペクト比の指定をする必要があるのが共通のコツっぽい雰囲気です。

SwiftUI Textを使った特殊効果

去年のトークも面白かったので、今年も楽しみにしてました!
古のワードアートをSwiftでふたたび...!というテーマでしたが、テキスト描画に関しての新しい学びも多かったです。

特に、TextRenderer を使ったテキスト装飾の話は知らなかったことが多かったです。
以前テキストにハイライトをつけようとしたときは、UITextViewにハイライト装飾を弄ったLayoutManagerを設定した上でRepresentableする必要があり、しかもそのUITextViewのRepresentableも中々曲者で一筋縄ではいかなかったりと、大変苦しんだ記憶があります。それが...こんなに簡単に書けるようになったの!?と、早くiOS18が最低バージョンの時空にいきたいです。

また、Metalに関しても興味はあるものの一体にどういう場面でどう使えばいいのか...と思っていたので、具体的な使用例が知れたのもよかったです。

そして、それらのサンプル集も本日公開とのこと_φ(・_・
https://x.com/twostraws/status/1909943183032946964

これもやってみた!CurvedViewとRainbowGradientViewを組み合わせてみました。

初Metal記念日です。
day3には覚えたてのMetalでDeNAさんのブースを彩ってきました。
https://x.com/__ryomm/status/1910578876977500429

日本語でのSwiftプログラミング

コードとして日本語がここまで使えるんだ...!と驚きがありました。
日本語だと大文字小文字が区別できないからクラスか変数か名前で判断できない、というのは新視点で面白かったですw
私がSwiftで好きなところは、文章みたいにコードが書けるところなので、語順も入れ替えられるともっといいのにな〜と思いました。

40万以上DLされた個人開発アプリをサービス終了するためにしたこと

アプリを作るときには、アプリを終了させることも考慮しておく。VisionPro1台分の重みのある教訓でした。
個人開発だと見切り発車で終わらせることなんて何も考えてない...というのはやりがちなので、心に刻みたいです。

宇宙人を探して

星の数が多ければ宇宙人のいる可能性も高くなるように、コード量が増えると色々問題が増えてくるよ、といった感じの内容でした。
アプリのCO2排出量の計算式なんてものがあるのか〜...。
デッドコードをなくすところから、取り組んでみるのはいいかもなと思いました。

day2

day2はVisionProの話が多かった印象です。自分はVisionProを持っていないので割と受け身なスタンスできいていましたが、VisionPro開発やってみたいな〜VisionPro欲しいな〜という気持ちになった1日でした。
また、day1から通じてMetalの話も多かった印象です。

一度作れば、どんな入力でもプレイ可能なiOSゲーム

day2で1番好きだなと思ったLTです。
左右にオブジェクトを操作するシンプルなゲームを題材に、様々な入力方法が紹介されていました。
ゲームの陽気な音楽と、イタイイタイイタイというミーム?が周期的に繰り返され、すごくシュールな空間で面白かったのですが、それだけではなくあらゆる入力の対応方法などもしっかり紹介され、学びにもなりました。
ネタと真面目な部分のバランスが良くて良い発表だな〜と思いましたw

紹介されていた視線トラッキングによる入力は特に、何かに応用できないかな〜と想像が膨らみ、使ってみたい気持ちになりました!

MSDFとMetalを用いた美しいテキストレンダリング

こちらは私にはコンテキストがほぼないのと話が難しくて理解できてるのか自信がないのですが、わかりたいと強く思うトークでした。
無限キャンバスにすると超拡大ができるため、文字の解像度が足りずにモヤモヤするのが気になってくるぜ…どうにかしたいぜ…!というのが主題でした。そこで、Metal側に何らかの距離を表す数値に変換した画像を渡すといい感じに補完してくれると言っていた…と思います。正直、シェー…ダー………?といったレベルでほとんどコンテキストを持ち合わせてない状態なので、Metalのこととか3Dモデリングのことをある程度勉強してから出直します。

SwiftUIでレイマーチングシェーダー

SwiftUIで3Dグラフィックスを描画する話でした。
ライブコーディングもあったのですが、かなりサクサク書いて動かしていて、やってみた〜い!と思いました。

NeXTSTEP向けアプリを作った話 ― Objective-Cを恐れるのをやめ、愛するようになった理由

NeXTSTEPはじめてみました。これが...NSHogeHogeのNSの元...!
どうやって動かしているのか不思議です、
Paulさんのトークも90年代のモチーフで、Y2Kブームがカンファレンスにまで到来してる...と思いました。

Swift × Android: Skipが切り拓くクロスプラットフォーム開発の未来

まずストレッチから始まってびっくりでした。場慣れ感がすごかったです。
ストレッチのおかげか、英語が...わかるぞ...!となって、flittoに頼らなくても結構理解できた気がします。
最近Skipの話題はたまに見かけましたが、実際どういうもので何がいいの?と言うところは全く知らなかった状態でした。Swiftで書けるクロスプラットフォームというのはたしかに今まで見たことなかった気がするので、今後どう展開されていくのか気になりました。

Party

懇親会?のパーティーが Tachihi Beach で開催されました。Tahichiのもじりかと思ったら、本当に立飛という地名だそうです。
ご飯も美味しくて、ベジの稲荷寿司が美味しかったです。フラフラと彷徨いつつ色々な人と話せたり、野良Ask the speakerのような形で質問ができて良かったです。同僚の新たな一面も知れました。

day2にはKTCメンで写真撮りました📸
https://x.com/KintoTech_Dev/status/1910262119788073423

day3

day3はハイカロリーでした!1回だと消化しきれていない感覚があるので、何度も動画を見返したいトークが多いです。2025.04.11時点では、とりあえず書けるところだけ先行して感想を書いています。

SwiftSyntax: evalの力、善にも悪にも

具体的なコード例を見ながら、SwiftSyntaxでどのようにインタープリターで思い描く挙動をするようにしていくかを紹介してくれました。
実際書くとどんな感じなのか、手元で試してみたいなと思ったトークです。

通知に彩りを加えよう

通知にカスタム絵文字を出せるようにハックしていく話でした。
Genmojiが通知に表示されることを解析して、カスタム絵文字も通知に出せるようにしていてファンキーで面白かったです。
昨年のiOSDCで話されていたトークを思い出しました。
https://fortee.jp/iosdc-japan-2024/proposal/6f205759-58b0-4200-85b6-aaf25e74169c

あまりしっかり通知を直接さわった経験はないですが、ちょっとやってみたいな...!と思いました。

SwiftUIの8番出口

すごく!!面白かったです!!エンターテイナーだ...と思いました。
以前Kanagawa.swiftを開催した際にはSwift Evolutionカルタという企画をojunさん発案でしていただいて大変盛り上がったことがあり、今回も会場が沸いていて、エンタメ力が突出していて本当にすごいなと思いました。
段々スピードアップしていくトークの緩急もあって、飽きずに最後までワクワクして聞けました。

おわりに

今年も総じて楽しく、学びも多い try! Swift Tokyoでした!
色々な人とも話せて、自分の課題や今後やっていきたいことなどにも気付ける機会となり、大変大きな刺激を受けました。
来年もまた参加できるといいな、と思います!そして、来年はもっとトークをその場でしっかり理解して質問できるくらいに成長できてるといいな...!あと英語も...!

Discussion