yamakenの呟き

Hakodate.swiftを開催しました

2026/02/22に函館でHakodate.swiftというAppleプラットフォームの開発者・学習者向けのイベントを開催しました。

開催準備から当日までを雑多な感想を交えてまとめます。

 

 

一番上の函館のロゴはKeynoteで頑張ってそれっぽく作りました。職人ですね。

背景画像は2021年に函館行った時の夜景を加えています。

今までregion.swift系のサムネは白や黒背景にアイコンとhogehoge.swiftみたいな感じでしたが、Hakodate.swiftでは背景に函館山からの夜景を入れたところ、Kanagawa.swiftやOkinawa.swiftもサムネの背景に写真が追加されたようで、いい影響になったなと笑

 

開催前

実はHakodate.swiftの始動は2024年10月です。

開催されたのは2026年2月なので開催に至るまで時間をかけてしまいましたね。

気合いは十分だったのですが、運営メンバーの仕事なりプライベートなりがそれぞれ忙しくなったこともあり、約1年後の2025年10月あたりから再始動しました。

shizさんが急遽運営に入っていただけることになり、そこからshizさんパワーでゴリゴリ進んでいきました。爆速で会場や日程が決まり、connpassの公開まで辿り着きました。

開催当日は別件で参加できなかったようですが、この場で感謝申し上げます。ありがとうございました。shizさんがいなければHakodate.swiftは開催されてなかったと思います。

 

企画の悩み

connpass公開が10月で開催が2月だったこともあり、公開直後は「connpass公開が早い!すごい!」みたいな感じの投稿をXで見かけましたが、会場、日程、ざっくりスケジュールが決まっただけで、region.swiftでお馴染みの「企画」が全く決まっておらずどうしようかとずっと悩んでました。

他のregion.swiftの企画のレベルが高すぎて、参加予定のメンバーも他のregionによく参加されてる方が多かったのもあってプレッシャーでした笑

当初は未来大の教授と現役未来大生、未来大卒の僕やあつやさんとで何かトークとかしようかと思い、実際に教授に声をかけたりまで行ったのですが、どうにも盛り上がる未来が見えず、断念しました。

そこからとりログでお馴染みのaikawaさんにも声をかけて企画のアイディア出しをし、カントリーサインの旅にちなんでカントリーサイン当てや北海道の難読地名など、そういったものをSwiftと組み合わせてアレコレする企画も出てきましたが最終的にはChatGPTと壁打ちしてる中で思いついた「北海道描画チャレンジ」に決まりました。

 

懇親会でTRさんに「(Discord管理者なので)企画めちゃくちゃ悩んでたの見てましたよ笑」と言われて、「いやー本当そうなんですよー」としか返せなかったです笑

 

前日

裏話だけでなく普通にいち参加者としての記録も書いておきます。

函館には前日の昼に着きました。

未来大にいたので函館には4年住んでいたのと、卒業して1年後に友人らに会いに来ていたりもして、5年ぶりに来たのですが函館はいいところだなーと改めて思いましたね。

新函館北斗から函館駅について改札を出た瞬間、感慨深い気持ちでした。大学生の頃はiOSエンジニアになりたいという気持ちでずっといたので、「ちゃんとなれてるし色々頑張れてるぞ」と昔の自分に語りかけてる感じでした。

 

↓せっかくだから写真を撮りたいなと思い、通行人に声をかけて写真を撮ってもらった

 

昼メシ探しに朝市散策してたところ、生の鮭とばが目に留まり、たくさん試食させていただいて、味噌汁や焼きエビまでいただいて、流石に1本購入しました笑

実質お昼はここで済ませたようなものでした

 

 

参加者の皆さんと合流して赤レンガ付近を観光。

函館出身の方がいるとディープなところまで行けて最高ですね。

桜のスナッフルスが美味しすぎた...

 

函館山は学生の頃何度も行ったのに何度見たって飽きなくて美しい

 

開催当日

流石に飲みませんでした。

 

函館のホテルの朝食といえばこれなんですよねー

 

散歩

早朝の赤レンガは全然人いなくて最高の景色ですね

路面電車の線路

八幡坂

赤レンガとは反対側にある砂浜と海。学生の頃はここで朝までBBQして朝市に行って、いかにも大学生らしいことしてましたねぇ...

 

 

会場行って準備して開始

イベントの司会やパネルディスカッションのファシリなど何回かやってきましたが、僕はこういうのに少し向いてるかもですね。もちろん参加者の皆さんがリアクションしてくれるので成り立ってるのですが、うまく盛り上げれたんじゃないかなと思います。

 

会場よかったですね。過去に大学のイベントなどで何回か利用したことがあったのですが、設備も整ってますし、何より綺麗な空間でした。

 

久々のラッピ。

 

北海道描画チャレンジ。AIがあるからこそできる企画でしたね。1時間で北海道に関するものをSwiftで表現する、今思えばプチハッカソンのような感じでした。盛り上がるように一番面白いものを作った方には北海道のギフトカタログをプレゼントするようにもしたのですが、結果的にはこれが無くても盛り上がりました。

最後に1人30秒程度で発表していただいて、皆さんどれもユニークで面白いものばかりで発表のたびに笑いが起きていました。

 

 

 

 

 

 

 

↓Xのトレンドにもなってた

 

集合写真。イカのポーズのつもり。

懇親会

人が来るたびに何回も乾杯をした記憶。


運営メンバーの皆さんに感謝

割とギリギリになってから本格的に動きましたが、結果的に大成功だったのかなと思います。 本当に皆さんのおかげで無事に開催できました。

特に`あわ`僕の大学の後輩でSwiftもこのコミュニティにも関わりがないのに、Hakodate.swiftのことを知ってDMで「函館いるので手伝い必要ならやりますよ!」ときて、準備から当日まで本当に助かりました。ありがとう。

 

おわり

函館は美味しいものたくさんで、夜景も綺麗だし海もすぐそこだし、本当にいい街ですよ。次回のHakodate.swiftは数年後かな?今度は未来大で開催しようかな?ガラス張りの大学でまた会いましょう!

 

記録として皆さんの感想ブログ載せておきますmm

 

 

 

 

 

2025年振り返り

晦日なので2025年にやったことあれこれをまとめる。

 

try! Swift Tokyo 2025へ登壇

通らないだろうくらいの気持ちでプロポーザルを出して通ってしまって初めて英語で登壇した。2025年の中で一番気合を入れて頑張った出来事だった。

周りのエンジニアを見てもこの場に登壇できた人はごく一部だと思うと、とても自信がついた出来事だった。

何でも挑戦してみるものだ。

 

yamakentoc.hatenablog.com

アプリのリリース

MyFitsLogという、日々のコーデ写真を管理するアプリをiOS/Androidでリリースした。

try! Swiftでも話したマルチプラットフォームツールであるSkipを使ってアプリをリリースするという1つの目標があったので無事にリリースできてよかった。

リリース後しばらくはユーザ数も少なかったが、少しずつ改善し続けてMAUも右肩上がりで成長している。ユーザが爆増ということはないが、自分のプロダクトが少しずつ成長してユーザに使われるのは嬉しいものだ。

MyFitsLog:コーデ日記・服管理・コーデ管理

MyFitsLog:コーデ日記・服管理・コーデ管理

  • Kento Yamaguchi
  • ライフスタイル
  • 無料

apps.apple.com

play.google.com

自分は服が好きで、よく出かける前に「今日のコーデいいな」となったら姿見の前で写真を撮り、どこかのタイミングでまたそれを見て同じコーデにしようということが多いのだが、写真なんてすぐに埋もれてしまうのでそれを管理するためのアプリといった感じだ。

カレンダー画面からぱっと見で「あの日これ着てたのか」というのがわかるので便利なんですよ。よくやるのが「先週の出社日はこれ着てたから今日は違うの着て出社しよう」みたいなムーブができて素晴らしい。

 

16言語対応していて50%は日本ユーザで残り50%は海外ユーザで構成されてる。韓国、フランスあたりが比較的多めで何となくファッションといえばみたいな感じがする。

 

「よく着るコーデ」というよく着るコーデ写真を登録しておくことで、わざわざ毎日写真を撮らなくてもワンタップで登録みたいなのを考えているが、中々時間が取れなかったりなので少しずつ動きたいところ。

 

よくストア上にはアイテムを1つずつ写真を撮ってそれを組み合わせてその日のコーデを登録みたいなのがあるが、1つ1つ写真を撮るのが大変すぎて僕には合わないのでそのようなことはこのアプリでは(今のところ)やらない予定。個人アプリなので自分のやりたいようにやる。

 

個人事業主として開業

そのMyFitsLogのAndroidアプリをリリースするにあたり、個人事業主として開業した。

Google Play Consoleの個人アカウントでAndroidアプリをリリースするにはテスターの条件や住所公開などデメリットが多いので思い切って開業して組織アカウントを取得した。

開業は大変なイメージがあったが、freee開業を使ってすんなりオンライン上で全て終えることができた。組織アカウントを取得するにあたってDUNS Numberというのが必要だが、その申請をするために屋号が必要で、自分はfreee開業で申請した時に屋号を付けてなかったので結局税務署に行って手続きをしたりだったので、もし今後開業する人は気をつけてほしい。

 

iOSDC Japan 2025でのパンフレット寄稿

去年はポスターだったが、今年はパンフレット記事8ページ分を書いた。内容はもちろんSkipについて。

Adobe InDesignというガチ目に雑誌や書籍を使うときのツールを使って書いた。今までWeb上での記事は書いてきたが、紙媒体での記事というのは初めてだったので色々と大変だったがいい経験になった。

 

yamakentoc.hatenablog.com

 

記事の構成とか見やすさとか工夫して8ページ。結構それっぽくできているので是非見てほしい↓

前述した開業周りについてももう少し詳しく最後のページに記載している。

github.com

別部署へ

去年の振り返りで一時的に他のプロダクトにお手伝いみたいな形で入ってると書いたが、そこから正式にそのプロダクトにジョインした。

yamakentoc.hatenablog.com

入社から5年同じプロダクトをやっていて、そろそろキャリア的にも他のサービスや組織に入った方が新たな刺激や成長ができるんじゃないかと思い、動いてみたが今思うとこれは大正解だった。

自主的にあれこれ手を挙げて動いた結果というのもあるが、以前よりチームを横断した動きを求められそれに応えるようになったと思うし、組織に対して多少なりとも影響を与えるような動きができてるんじゃないかと思う。

 

組織といえば、この組織設計の本が面白かった。今まで組織をどのように構成するのかとか全然興味なかったが、自分らが普段抱えている問題は実は組織設計が1つの要因だったりするので、管理職をやっていない人でも読むべきものだと思った。

gihyo.jp

生活

去年から植物にハマって今年も色々お迎えした。

大きめのやつもう一つ欲しいな〜と思ってセロームを飼うことにした。

葉がでかいし、背もでかい。

↓スイカぺぺ。葉がスイカの模様っぽいのと、茎が赤いのが良い。

↓サボテン柱。途中で剪定してそこから生えてきてまた剪定した結果ヒトデみたいな形をしてて可愛い

↓こういうカエルの置物とか買ってしまう

↓他にもドライフラワーとかスワッグ、エアプランツとか天井から吊り下げるようになって段々森になってきた。大体1週間に1回水やりをやるが、その1回が50分くらいかかるようになってしまった。

最後に

2026年も頑張ったり頑張らなかったりします!

植物は可能な範囲でコレクションしていきます...!

 

 

iOSDC Japan 2025に参加・寄稿しました

昨年に引き続きiOSDC Japan 2025に参加しました!

感想だったり、パンフ記事についてまとめます。

 

プロポーザル

今年のプロポーザルはLT1本とパンフレット記事1本を提出し、ありがたいことに記事の方が採択されました。去年はポスターで今年はパンフ記事で...実はまだLTやレギュラートークとしてiOSDCで登壇できてないです(泣

去年はプロポーザルを9本も出してましたが、今回は落ち着き目。

yamakentoc.hatenablog.com

 

今回Skipのトークについては出してませんでしたが、Skipについてのトークは現状やり切った感があるので今回記事としてまとめました。前々から「Skipまとめ」のような記事を書こうと思ってたのですが中々タイミングと気合が足りず、いい機会になりました。

 

記事の執筆

今まで物理的なものになる記事の執筆をしたことがなかったため、どういうツールを使って執筆すべきか悩みました。去年のパンフ記事を見たところAkkeyLabさんが「Adobe InDesign を使った技術書作成の基礎」という記事を出しており、その影響を受けてAdobe InDesignを使うことにしました。

丁度、WWDC25 Recap - Japan-\(region).swiftのタイミングでお会いできたので色々聞いてみたところ、Adobe InDesingは結構ガチで雑誌や書籍を作成する際に使うツールのようです。

iOSDCのパンフ記事執筆において便利なツールなどもあるようですが、自由なフォーマットでやりたかったのでInDesingに決めました。

最初は使い方がよく分からず何回もやり直しました。InDesingについて解説しているブログやYoutubeをみながら理解してなんとかそれっぽい形にできました。

フォントサイズに悩みましたが、実際に印刷してなどで調整しました。最終的に本文は8ptにして「小さいかな?」と思いましたが全然読めますね。

 

今回8ページでの執筆でした。とはいえ全て盛り込んだところ10ページほどになってしまったので色々と削ってます。Qiitaなどで改めてフルverの記事を投稿するかもしれません。

 

今回寄稿した記事はPDFで公開しています。ぜひご覧ください。

github.com

 

また、フィードバックもお待ちしております。今回執筆した内容は、Skipを実際に触る人じゃないと読まないだろうなとは思ってますが、フィードバックがあると「読んでくれた人がいたんだな」と圧倒的感謝の気持ちになれるのでよろしくお願いしますmm

↓↓↓↓↓↓↓↓↓↓↓↓

https://fortee.jp/iosdc-japan-2025/me/feedback/b6f27965-9ea6-4d9b-ace5-fada1e9e1070

 

既に口頭で「一番綺麗にまとまってた」といったフィードバックをいくつかもらっていて超嬉しかったです。記事の構成については去年のパンフ記事や、WEB+DB PRESSなどを参考に時間かけて調べていたので報われた気持ちです。

 

プロポーザルにもある通り、最新の情報を網羅した解説記事に仕上がりました。現状日本でここまでまとめている記事はないでしょう。

fortee.jp

 

iOSDC当日

 

Day0, 1, 2と3日間フルで朝から晩まで参加していました。とはいえ前回に引き続き会社のブース運営も対応しないといけないため、セッション自体は1個しか見れなかったですね。もちろん時間はあったのですが、他社のブースではどういった企画をしているのかが気になってしまい、自由時間はほとんどブース巡りをしたり、会場で会った方々と無限におしゃべりしてました笑

 

 

特にPixivさんのブースで出していたアプリはすごかったですね。参加者が楽しめる企画として最高でした!

 

ブースの話はまた別のところでまとめます。

 

↑エンディング最前列でニッコニコになっていたっぽい

 

懇親会

初めてiOSDCに参加したのは2018年の当時は学部3年で、その時は懇親会ではほぼぼっちみたいなものでした。ですが今回の懇親会では少し歩けば知り合いや顔見知りがいて、成長を感じました笑

さらに話しかけられることも多くなり、外部に発信し続けた甲斐があったなと感じました...!

 

学生さん方ともお話しし、「ネットワークスタッフに興味がある」という方や「昨日のあのトークをしていたSpeakerの方と話したい」という方がいたので、全力でサポートして人探ししました。結果的に最後にネットワークスタッフでLTをしていた方に繋げることができたり、色んな人に声かけてSpeakerの方をなんとか見つけることができたりと、自分のコミュ力を最大限に活かせた気がします。

 

 

カンファレンスの度に大学の後輩に「こちら未来大出身の方で〜」と紹介されて毎年未来大生が増えてる気がしてましたが、今回多く集まった記念に写真を撮りました笑

卒業してから思うのは、未来大では学部3年になると「プロジェクト学習」という地域課題を解決するようなプロダクトを一から実践的に作る授業があるのですが、そこでアジャイルだったりチーム開発などするので、他に比べて経験値が多く強い人が多いのかなと思ってます。

 

ずっと誰かしらと話してて懇親会が一瞬でした。次回は6時間くらいやって欲しいです!

 

余談

リョウさんのブログで僕のことを触れていただけました。

誰かの人生に少しでも影響を与えることができたことを誇りに思います。

 

おわりに

iOSDCに毎年参加してることもあり、参加するたびに「あー!お久しぶりです〜!」となる方も結構います。遠方の方は普段の小さなイベントには中々足を運べないことが多いので、こういった大きなカンファレンスじゃないと会えない方も多く、僕にとってはiOSDCはお祭りでありつつも、みんなが集まる場所になっています。

このiOSDCに参加して多くの仲間に出会い、コミュニティの活性化や自分自身の研鑽ができています。この素晴らしいカンファレンスをより多くの方に興味を持っていただけるよう、来年の開催に向けて行動していきたいと思います。

運営の皆様、スポンサーの皆様、参加者の皆様、ありがとうございました!

 

 

 

try! Swift Tokyo 2025で登壇しました

try! Swift Tokyo 2025は4月に開催され、これを書いてる日は丁度iOSDC Japan 2025が終わった後でもう5ヶ月も経ってるが、blogにしてなかったので当時のXやSlackを見ながら簡単にまとめておく。

 

プロポーザルの提出

2024年度は周りの方に影響されてとにかく登壇を頑張っていた。なのでtry!についても出そうかと思いきや、最初は全然出すつもりもなかった。というのも流石に国際カンファレンスだし英語だし「いやいや流石に自分はそこまでの人間じゃない」と思って遠慮してた。

そう思ってXを見ていたところ後1時間でプロポーザルの締切という投稿を見てしまい...

何を思ったのか1時間でざっと内容を書いて提出した。

どうせ通らないだろうけど、とりあえずやっておくのがやらないよりマシだろうなくらいの気持ちでいた。

 

内容はもちろんSkipの話。2024年の終わりあたりからキャッチアップしていて外部のLT会で2回ほど話してたので丁度ネタ的にそれにした。実際に提出したもの↓

www.papercall.io

 

採択された

丁度友人とDiscordで通話しながらゲームをしていた時にメールが来て、これを見瞬間「は?」と声にしてしまったことを覚えてる。

 

Slackを見ると社内のつよつよなiOSエンジニアの方々が「ダメだったー」と報告している中、自分が通ってしまい「本当に大丈夫なのか...」と弱気になってたが、最終的に運営の方に価値あるトークだと認められたのだと考えて全力で取り組むことにした。

 

 

準備

それからひたすらに準備をする毎日だった。開催が4月上旬なので2ヶ月と時間に余裕はあった。

まずはトークの構成を考えてラフのスライドを作ってみた。だが一番最初に考えていた構成は社内の有志の方によるレビューでボツになり、そこから何度も構成を練り直した。

Skipを使ったアプリの開発開始

あれこれ考えている中「大勢の前でSkipの話をするのにSkipで実際のプロダクトを作ってないのは恥ずかしいな」と思い、完成までいかなくても実践的な知識を身につけておこうとひたすら毎日コードを書いていた。

既存アプリの移行も試したりもしたが、あれは無理ゲーだった。

↓Skipの中の人も移行は新しいのを作るよりむずいぜって返信をくれた。

SkipへのContribute

giginetさんから「try! Swiftで絶対SkipのContributorの人も来るからyamakenもcontributeした方がいいよ〜!」と飲み会で言われ「いや〜流石に無理っすよ〜!笑笑笑」とか言ってた矢先、Skip関連のframeworkでほんのちょっとした不具合を見つけてしまい、そのまま修正PRを出してマージまでできたのは良い経験だった。

なんだかんだ初めてOSSに貢献できた。

 

プレゼンの本を読んだ

大勢の前に振る舞うのだから改めてプレゼンの立ち振る舞いについて勉強しようと、「スティーブ・ジョブズ 驚異のプレゼン」というのを読んだ。

例えばこんなことが書いてあった

- プレゼンのストーリーを作ることに時間の大半を使うべし

- パワポで急に作る前に絵を描いてイメージする

- 早い段階で敵役(問題)の導入、正義の味方(解決策)の登場

- 聞き手はなぜこれを気にする必要があるのか?

- 聞き手は3つしか記憶できない

 

この本の中身全てを実践できたわけではないが、当日のトークまでに多くを活用できた。

 

ドキュメント全部読んでまとめた

Skipについて把握できることは把握しておこうと、今まで必要な箇所しか読んでなかったSkipのドキュメント公式ブログを最初から最後まで全部読んで自分のNotionに日本語で全てまとめた。(Swift ChartsのAPI全てまとめたこともあったので、僕はそういう癖があるのだろう。)

 

 

 

...と、この2ヶ月間不安と闘いながら毎日何かしら当日に向けて動いていた。登壇駆動開発とはこういうことなんだな。

 

当日まで

構成も決まりひたすらスライドを作っていた。当時のSlackを見る限り3月中旬には8割ほどできていたらしい。Skipの進化が早く、スライドを作成している途中で更新が入り書き直したりもした記憶がある。

 

英語の発音も大丈夫かなーと心配していたがChat GPTの音声モードで試しに練習してみたところ、もちろんJanglishではあるものの、文字に書き起こさせたところscriptと一致していたので自信がついた。

 

iOSエンジニアをしながらDevRelも兼務という形でやっていたので、会社のブース運営周りも自分が中心となり、協力してくださった仲間と共に準備も進めていた。

techblog.lycorp.co.jp

 

余談

3月末、そろそろWWDCの時期も近づいてきたし、去年のiOSDCで作った「年表で振り返るWWDC」のポスターをMacFan編集部に投げたら掲載してもらえないかなーと専用フォームみたいなところから投げたが全然反応なかった。せっかく作ったし好評だったからきっとMacFanを読む層にもぴったりだと思ったが残念...!

github.com

 

Day1 

初の立川会場だったが、想像以上に大舞台だった。

 

宣伝もしつつ。

 

ブース運営しつつ。

 

3日間あるうちの自分は2日目だったので空き時間にセッションを見たが、後ろから見るとこんなにも大勢が見るんだなと...。改めてすごい会場だ。

 

Day2 登壇当日

夕方頃の登壇だったので午前中は普通にブース運営をしていた。周りから「緊張してないの?」とたくさん言われた記憶があるが、正直ほぼなかった。というのも2ヶ月必死で準備していたのであとはもう話すだけだ。ここ1年間登壇しまくってた自分にとっては大勢の前で話すことは特別問題ではなかった。

そんなことより1つ懸念していたのが、2日目の夕方なんてみんな絶対眠いに決まってるしどうにかせねば...!という方だった。全然そっちの方が重要なことだ。とか考えていた所、大学の後輩がスタッフをしていて、話してるうちにどういう流れか「トークの前にストレッチしよう」ということに決まったのである。照明を一度明るくしてほしいなど要望を伝えてOKをいただいた。(とはいえ今考えると時間押してしまうので普通に迷惑極まりない)

 

Day 2のハイライト動画でSpeakerの皆さんは基本トーク中の映像が入ってるが僕のところだけストレッチしてる部分になってたのが面白かった

 

ストレッチする流れで笑いも取れて完全に自分のペースに持って行けたので「勝ったな...!」と思いながら話し始めました。

 

主催のMatsudateさんにも褒めていただけて大変ありがたかったです!

 

トークの本編の動画。

www.youtube.com

 

 

Skipを使ったアプリも無事リリースしました

前述した通り、登壇の前にSkipを使ったアプリを開発し始めた訳ですが、先日無事にiOS, Android両方でリリースしました。コーデ写真管理アプリで「あの日何着たっけ?」を解決するアプリです。

 

終わりに

try! Swift Tokyoは間違いなく自分を大きく成長させてくれたカンファレンスでした!時間が経ってしまいましたが、改めて運営の皆様、スポンサーの皆様、参加者の皆様に感謝申し上げます。

 

 

 

 

 

 

2024振り返り

なんだかんだ初めてになるが2024年の振り返りブログ的なのを雑に書いてみる。

 

仕事

2020年にヤフーに入社して今年で5年目になった。ありがたいことに大学1年の頃から独学で始めたiOSアプリ開発の仕事を入社当時から担当させていただいている。気づいたら会社が合併してLYになり、iOSの仲間がたくさん増えてワイワイ仕事できている。

とにかく登壇しまくった

きっかけはtry! Swift Tokyo 2024の懇親会で、とあるiOSエンジニアの方に刺激を受けたからだ。多少ぼかしておくが、とりあえず自分が率先して登壇して周りのエンジニアにも影響を与え、社内の多くの人に登壇する意識をつけてもらおうという気持ちだった。

そこからまずは社内でほぼ毎月開催しているiOSのLT会で登壇するようにし、弊社で開催している社外向けのイベントや、Swift愛好会、potatotipsなどのイベントでも登壇するようにした。

そして2018年から参加しているiOSDCで今年初めてプロポーザルを出して登壇することができた。

 

数えてみると4月から社内外のイベントで合わせて14回登壇していた。2日連続で登壇することもあったので同じネタで話すこともあったが、それでも我ながらよくこんなに行動できたなと思っている。

別プロダクトへの参画

入社してからずっと同じプロダクト開発に携わっていたが、機会があり別プロダクトにしばらくお手伝いという形で関わることになった。プロダクトが違えばチームの体制も文化も全く違く、まるで別の会社に来たような感覚だったがとてもいい刺激を受けた。

また、プロダクト開発とは別のチームに興味が出て参画したり、社内LTの運営にも参画したりなど、とにかくチャンスが来たら手を挙げて行動した1年だった。

挑戦という意味ではペパボの「バッターボックスに立ち続ける話」がとにかく刺さった。

tech.pepabo.com

生活

完全に私生活の話。

奈良美智にはまった

1月に青森県立美術館で開催された奈良美智の個展に行ってきた。

僕も同じ弘前出身で昔から母に連れられて個展に行っていたが、女の子の絵が怖い印象しかなかった。しかし1月の個展に行ってきてからハマってしまい、東京の家に帰ってからポスターを買って家に飾るほどになった。

↑県立美術館に行ったときの。

↑買ったポスター達。

観葉植物をたくさん飼い始めた

それまではドライフラワーやフェイクグリーンをたくさん持っていたが、2月におしゃれな園芸店を見つけてそれから少しずつ増えていった。

実家も植物だらけなので趣味が遺伝したのかもしれない。

 

 

久々のハーフマラソン

最後に走ったのが大学1年の時なので約8年ぶりくらいに走った。ずっと陸上部で長距離をやっていたので、さすがに現役の時に比べたらタイムは縮めれないだろうと思っていたが1ヶ月前からタイムを意識して走り始め、結果的には現役の時のタイムより2分差だけのタイムになった...!途中で歩いてしまおうと何度も思ったが諦めずに足を動かした。久々に自分と闘って勝った気がする。

 

最後に

セクション分けることの話でもないのでここに書くが、自分は天パでかなりクルクルな方だ。学生時代この髪型が嫌すぎたが、2024年の前半頃から完全にこのクルクルを全面に出すようにして一周回ってめっちゃいい感じになってると思う()

色んな人に「パーマかけたのいいね」って言われますが天然ものです。

2025年は2024年と同じようにひたすら挑戦し続けます。そして12月頭頃から開発し始めている個人アプリのリリースを目指します。

iOSDC Japan 2024のポスターセッションで登壇しました

iOSDC Japan 2024に参加し、ポスターセッションで登壇してきました。

当日の会場の様子やトークの話は他の参加者の方がblogにしてると思うので、僕はポスターセッションについてblogに残します。

「年表で振り返るWWDC」というポスターで採択

iOSDCには2018年から参加し続けてますが、今年は勇気を出して初めてプロポーザルを出しました。そして以下のプロポーザルが見事採択され、ポスターセッションにて登壇しました。

fortee.jp

実際のポスターはこんな感じ↓

PDFをGitHubに挙げています↓

github.com

元々はExtended Tokyo 2024というWWDCの直前に開催するイベントでLTする際に「せっかくだからWWDCに関連するLTをしたいな」というところから始まり、その時は「WWDC創設期から現在まで」というタイトルで主にWWDC創設期の話を中心にしました。iOSDCのプロポーザルとして何か出そうと思った時「WWDCの年表を作るとポスターとしても相性いいんじゃないか?」と思い、今回の登壇に至ります。

 

プロポーザル計9本を提出

今年の4月あたりから登壇をガンガンしていまして、多い時は3ヶ月で8回登壇していたくらいなのでもちろんレギュラートークやLTでも5本出しましたが全て採択されず、多くの方が「また来年!」と言ってる中、諦めずにポスターでも4本出して1本通ったという感じです。なので合計で9本プロポーザルを出しました。多分登壇者の中で一番プロポーザル出してるんじゃないかなと思います。

なんでこんなに頑張ってプロポーザルを出していたかというと、社内でたくさんのiOSエンジニアに「プロポーザル出しましょう」と声掛けをしていたので、声かけをした本人が採択されないなんてことがあれば恥ずかしいのでめちゃくちゃ頑張りました。

実際僕が声をかけたことがきっかけで「せっかくだからやってみよう」と挑戦した方も多かったようで、最終的にはLYから18名が登壇することができました。(社内での合計のプロポーザル提出数も61本でとてつもない数でした。)

僕は背中を少し押しただけで後は皆が勇気を振り絞って動いた結果だと思います。

 

当日の様子

ポスターセッション自体は3日間常にポスターが貼られている状態なのでいつでも参加者が見れる状態です。つまり常に主役です。Day0とDay2はなるべくポスター前にいるようにしていたので多くの方と会話することができました。

見にきていただいた方には、WWDCを見始めた・キャッチアップし始めた年にシールを貼っていただき、そこから当時の話や気になる年の話、iOS開発いつからやってたかなど幅広く話をしていたので、一人当たり5分から10分、長い方で多分20分ほど話してました。

1990年代から見ていた方は流石にいないかなと思いましたが、1995年から雑誌でキャッチアップしてた方が現れて当時の話をたくさん聞くことができました。

ポスターの作成

どうやらA0ポスターを作成する便利なツールがあるとかなんとか聞きましたが、僕は地道にKeynoteで作りました。Adobe製品は普段使ってないので使い慣れてるKeynote一択しかなかったです。

サイズを2384×3370にすると実際のA0ポスターのサイズと一致するようなのでそのサイズに指定し、色々な年表系のポスターのレイアウトをPinterestで見て参考にしました。その後ひたすら情報をインプットして整理し、文字で書き起こしてた感じです。学会などのA0ポスターの場合、本文のフォントサイズは32ptあたりですが、情報量を詰め込みたいので22ptにしました。会場の大きさ的にも実際遠くから見ることはまずないので全く問題なかったです。(なんなら18~20ptにしても良かったかも)

A0ポスターの場合は当日会場に持って行けばOKなので、前日に社内の印刷機で印刷して筒に入れて当日持って行きました。(kinkosなどに頼むと6000円ほどかかるので社内の設備に感謝です。)

作成中は大学時代の友人達や社内でレビューを何回もいただいてブラッシュアップしました。本当にありがとうございました。。。

 

最後に

ポスターセッションは多くの方とコミュニケーションが取れるのでとても楽しいのでおすすめです。トークだと終わるまで緊張しますが、ポスターは当日会場に持ち込めば完了なので(A0の場合)。後はたくさんの方が見にきてくれるので、気分でポスター前に立ったり立たなかったりするだけです。

約1ヶ月半かけて作成したポスターなので多くの方に「すごいですね」とお褒めの言葉を頂き、本当に頑張って良かったなと思います。「Mac Fanなどの雑誌にも掲載してもらえるのでは?」という声もありましたので「是非機会があれば」と考えております。

最後になりますが、ポスターを見にきていただいた皆さま、当日までレビューしていただいた皆さま、そしてスタッフの皆さま、本当にありがとうございました!!!

 

追記

僕の後ろでポスターを掲載していたy.imajoさんのblogで取り上げていただきました笑

curiosity.co.jp

【iOSDC Japan 2021】セッションの概要&感想まとめ

f:id:yamakentoc:20210920212757j:plain

今年もiOSDCに参加してきました。

去年に引き続きオンライン開催となりましたが、セッションの方は興味のあるものが多く、知見の塊でした。

ここでは、自分が見たセッションの概要と感想を軽くまとめます。やっぱりこういうのって自分の言葉で振り返らないと忘れてしまうので大事ですね。

 

Day0

大規模リファクタリングの極意

約1年間かけて大規模サービスのリファクタリングを見事成功させた時の方法や知見がまとまっていて、今後リファクタリングする際の参考になりそうです。

特に、リファクタリングをしないと負のスパイラルが生まれる、陥ってしまうというのは、日々コードを書いてて感じます...。

事業案件開発チームとリファクタリングに専念するチームに分けるのは大胆というか、1年かける大規模リファクタリングなのでそこまでやらないといけないんだな〜と。

Danger(プルリクの作法に則って自動で指摘するツール)は初知りでした。

 

SwiftUIで作ったアプリを1年間運用してみて分かったこと


普段開発しているアプリでもそろそろSwiftUIを導入したいなと思っていたので、このセッションを聞けて良かったです。

iOS13をサポートした状態でSwiftUIを導入していくにはまだ課題が地味にあって難しいというのは意外だったし知見でした。

他のトークでもiOS13の時点ではSwiftUIが未成熟なので活用するのは厳しいといった意見もあったのでiOS13のサポートを切るまで待つべきかどうか…と少し悩みそうです。

SwiftUIで実プロダクトを音速リリースした話

まず、スピーカーであるAkkeyLabさんの話し方などのプレゼンの仕方がとてもうまくてとても印象に残りました!

プロダクトでSwiftUIを95%使用しているというのは、「あ、ここまでできちゃうんだ」と少し驚きました。でも100%まではいかず、やはり残り5%はUIKitを使わないといけないんですね。

SwiftUIを用いることで、アニメーションも簡単に実装できるし、XcodePreviewsを用いることでPDCA的な感じで早くチーム間での共有ができるのは魅力的!

そのプロダクトも1人で開発したとのことだったので、スピード感重視していくならSwiftUIが良さそうですね

UIKitとSwiftUIでの装飾ボタンを作る時の比較が、圧倒的にSwiftUIの便利さを表しているのは良い例でした。

 

Initiatives in Rakuma iOS App

Compositional Layoutsで実現する疎結合な実装


Compositional Layouts : 縦にも横にもスクロールできるCollectionView

SwiftUIではCompositional Layouts的なレイアウトを現状実現できないし、画面が自動でリフレッシュされるので状態を保持できないため、プロダクトではSwiftUIを採用してないとのこと。

Compositional Layoutsはレイアウトが増えるとViewControllerの肥大化につながる。

そこで、ViewControllerからCompositional Layoutsを切り離すことで、疎結合となり、コード量が増えても肥大化に繋がらないという手法。

レイアウトの抽象化をすることでかなり簡潔にコードが書けるので、Compositional Layoutsを使用する際に参考にします!

それにしても一見複雑化しそうなコードでもここまで簡潔に書けるものなんだな..

Qiitaにまとめられていた!

Half modal comparision in iOS15

iOS14以前だとハーフモーダルを実装するのはコード量も多く手間だった。

↓関連記事に実際のコードが載っているが、確かにこれを実装するのは手間。

 https://commerce-engineer.rakuten.careers/entry/tech/0024 

iOS15からはこんなにも簡単に実装できるけど、2つのサイズしか定義されてなくてカスタマイズできないし、更に親の画面のボタンなども触れてしまうから気をつけようというお話。

確かにiOS15からお手軽に実装できるようになっているけど、痒いところに手が届かなそうだなーと思いました。

かといってiOS14以前のように大量のコードを書くべきなのか。iOS15以上サポートでハーフモーダルを実装することになったら悩みそうですね。

 

Day1

Source Editor ExtentionとSwift Syntaxでコード自動生成ツールを作る

コードの自動生成手法としてSource Editor ExtensionとSwiftSyntaxを組み合わせたものを提案していた。デモでは、DIを簡単に実装するためにツールを用いて、クラスからプロトコルを自動生成し、更にそのプロトコルからモックを自動生成していた。

ボタンをポチポチするだけで、期待するコードを生成することができるのは便利ですね。

コード自動生成ツールは複数ありますが、コードを編集しながら実行可能かつ、macOS Appとして配布可能なのが特徴らしい。

自分が作った自動生成ツールを配れるのはもちろん、他の人が作ったツールを使えば更に開発効率アップしそうで流行って欲しい…!

 

機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話

大規模なアプリをビルドするとビルド時間が長くなるため、1機能に関連する画面を1モジュールとして切り出すことでビルド時間を短縮し、爆速に動作確認できるというお話。

自分が普段関わっているアプリも大規模アプリの類なので、ビルド時間長いのはいつも課題に感じてるのでめちゃくちゃ魅力的な内容でした。

外部ライブラリや他のfeatureモジュールに依存しちゃいけない課題や、そもそもチームで利用してもらうための課題など、仮に自分が関わっているアプリに導入するとなれば結構難易度高いなぁ〜と思いました。。。でもその課題を解決した方が結果的にプラスになりそうですね

↓テックブログにまとまっていた!

https://techlife.cookpad.com/entry/2020/08/05/090000

それにしてもほぼ1週間に1回リリース入れてるのすごい…

 

StoreKitのこれまでとこれから

まとめるとこんな感じ↓

自分も旧StoreKitで課金機能の実装をしたことがありますが、かなり手間だったのを覚えています。追加するコード量もまあまああるが、StoreKit2ではたった1行で目的の処理が書けたりなどで劇的な進化を遂げていてワクワクしました!

ただ、今のところiOS15未満では使えないのは仕方ないというか残念ですね。

機能ごとに1つ1つ旧StoreKitとStoreKit2の比較をしていたり、購入処理フローの図を解説のたびにスライドに挟んでいたりしてめっちゃわかりやすかったです👏

 

noteのiOSアプリで実装したアクセシビリティの全て

そもそものアクセシビリティの定義や原則などに触れ、実際に受けたユーザからの問い合わせをきっかけにnoteのiOSアプリのアクセシビリティを向上させたというお話。

このセッションは知見の塊でした!自分も直近でアクセシビリティ(VoiceOver)の対応をする予定で、まだ深いところまで触れられてなかったので非常に勉強になりました!ありがとうございました!

今回の内容がnoteにもyoutubeにもまとめられていた!

https://fromkk.me/n/n2dbeb54cdf0d?gs=26eccf78b8bf

https://youtu.be/rDX_tJ7t28M

 

宣言的UIの状態管理とアーキテクチャ - SwiftUIとGraphQLによる実践

状態管理アーキテクチャの歴史を振り返りつつ、それぞれの特徴を1つのサンプルを用いて解説していてわかりやすかったです。

それぞれのアーキテクチャの細かいところまでは自分の知識では理解できなかったところもありますが、最終的にGraphQLの方が他のアーキテクチャと比較しても考慮することが少ないし、メリットもデメリットもあるというのがわかりました。

「GraphQLはいいぞ!」というのが伝わってきました!

 

Finder Sync ExtensionでMac向け便利ツールを作ろう

DropBoxやGoogleDriveのような、ローカルとリモートでファイルを同期するための拡張機能であるFinder Sync Extension。これをアプリを同期する以外に流用し、常駐型ユーティリティツールを作ろうというお話。

これには聞いた時には良い意味で発想がすごいなぁ…と思いました

実際に作ったツールとして、開発に使用する画像の@2x, @3x向けの画像を自動生成しているのを見て、これは何か作ってみたい!となりました!

 

スタディサプリ」がFull SwiftUIを選択した先に見えてきたもの。

プロダクトにSwiftUIを全面的に採用した時に得たものをまとめていた。

他のセッションでも聞きましたが、やはりSwiftUIはアニメーションに強いんですね。

デメリットとしてライブラリがまだSwiftUIに未対応なのか挙動が変になることがあるらしい。

他にも画面遷移時のTipsなど、まさにこれからSwiftUIを採用していきたい自分としてはありがたいセッションでした!

 

 

Day2

ランタイムデバッグのススメ

ランタイムデバッグ(実機デバッグ)のコツや運用方法について解説していた。

ショートカットを使用してアプリ自身を再起動させる方法を提示していて、こんなことできちゃうんだなーと。

あとはReplayKitのRPScreenRecorderを用いることで、操作の15秒前までを記録することができ、「なんか重い」などの定性的な意見を裏付けることができるというお話など。

これめちゃくちゃ便利ですね!常に裏で録画し続けていてデバッグ用のボタンなどをタップした時に録画を止めるとのこと。ただ、iOS15からしか使えないのが残念…!

DebugMenuというライブラリを作成したようで、パフォーマンスの常時表示機能や、常にデバッグメニューのランチャーを画面に表示したり、他にも便利そうなデバッグ機能があって便利そうですね

https://github.com/noppefoxwolf/DebugMenu

 

Hello, Swift Concurrency world.

Swift Concurrencyとは?から、その中の機能やルールなどについて詳細かつわかりやすく解説していた。

自分は全然async/awaitなどもあまり詳しく把握できてなかったので、今回のセッションで大体把握することができて良かったです。

スライドが綺麗にまとまっていましたし、何よりスピーカーのshizさんの解説がわかりやすかったです!

スレッドモデルや、その処理の細かい挙動など、こんなに詳細かつ丁寧に解説しているスライドはあるのか?と思うほどタメになったので、今後ここらへんを実際に使用していくときに見返したいと思います!

 

KMMを使って感じたPros/Con

KMM(Kotlin Multiplatform Mobile)は、iOSAndroidビジネスロジックを共通化できるSDKで、これをWantedlyで導入したときのお話。

UIとビジネスロジックを分離して、ネイティブ側ではUIの実装に集中できるの良いですね。ただ、型パラメータが失われる問題があって回避ためのラッパーが必要というのは実際に導入した時ハマりそう。

導入する前提として、iOSAndroidのチームがそれぞれ近い距離・存在でなければいけないのは結構壁になりそうですが、Wantedlyではそこもクリアしているので組織として素晴らしいなと思いました!

 

ケースに応じたUICollectionViewのレイアウト実装パターン

UICollectionViewを用いたレイアウトを実装する際に複数のパターンがあり、どれを選択するのがいいのか迷う。そこで、どういったケースでどのパターンを採用するのが適切なのか?というお話。

UICollectionViewLayoutの各パターンの特徴をおさらいしてからそれぞれの利用ケースを言語化し、設計例を挙げていた。

Layoutに関しては毎回実装する度に「どれがどうなんだっけ…?」と毎回調べていましたが、このセッション(スライド)でうまくまとまっていたので今後はこれを見直すことになりそうです。

他のセッションでも見ましたが、CompositionalLayoutsで大体なんでもできるからそれをまず使うのを検討した方が良さそうですね。

 

UICollectionViewの最新のAPIを使いましょう

セッションの説明欄の一行目に「UITableViewはもう捨てましょう!」と書いてるのには笑いました。セッションでも触れてるように、iOS14からはCollectionViewでUITableViewのようなList表示が可能となっており、UICollectionViewを使った方が拡張性が高く、わざわざUITableViewを使用する必要はないとのこと。

「とりあえずUITableViewで実装するのは時代遅れ」は肝に命じておきます。

ただ、UITableViewにしかないカスタマイズを行う時や、セルフサイジング(AutoLayoutによる高さの自動調整)するセルを実装する際は、動的に高さを変更するにはUICollectionViewが苦手なため、UITableViewを使用した方が良い場合もあるとのこと。

iOS15でのアップデートなどを見ると、今後Apple的にもUICollectionViewを拡張していくのかな?

UIKit DynamicsというAPIを使用することで物理学的な動作を表現できるのは初知りでした。バウンスするUICollectionViewのレイアウトに使えるとのこと。コード量が増えそうなのでOSSにも色々あるのでそっちを利用するのも良さそう。

 

Swift Package中心のプロジェクト構成とその実践

こちらは本題に入る前に前提知識を1から説明しており、本題での話もさっと入るようになりました。この前提知識の部分もなんとなくでしか理解できてなかったので助かったのと手元の方で更にまとめて理解が深まりました!圧倒的感謝です。

そして本題のSPMの話なのですが、SPMを使用するときの基礎的な話から始まり、実際にプロジェクトで使用する際の流れを1つ1つ解説しており、今までCocoaPodsとCarthageを愛用してきた身としてもめっちゃわかりやすかったです。

あとはモジュールごとに分けられていることでMini-Applicationの状態にできたり、最終的にXcode Projectで管理するファイルが数種類しかないのも魅力的ですね

 

SceneKitを使ってアプリのクオリティを劇的に上げる

SceneKitを使うとことで簡単にアニメーションやエフェクトを追加することができ、これによってアプリのクオリティを上げることができるというお話。

個人開発は自分もしていますが、確かにクオリティには悩むことがあります。ちょっと凝ったアニメーションを追加したいときはOSSをそのまま流用していました。

スピーカーの方が個人開発で累計200万DLしているというのは驚きました。。。iOSDC 2019のLTを動画で見たのですが、かなりASOに力を入れているようですね。特にリリース後のDL数のピークが下がってきた時にASOを色々と試して更にそこからDL数を伸ばしたというのは、中々できることではないので尊敬します…!

 

最後に

今年のセッションはSwiftUIに関するものが多かった気がします。おそらくiOS15が出るとともにiOS12、もしくはiOS13のサポートを切って本格的にSwiftUIをプロダクトに導入するところが多いからなのかもしれないですね。その他にも await/async関係のセッション、UICollectionView系のも比較的多かった気がします。

普段の仕事や趣味で開発している分ではカバーしきれないというか、知ることもできなさそうなことがこういったカンファレンスで得ることができるので、こういうカンファレンスに参加するのって大事だなと改めて思いました。

エンディングで来年はオンライン?オフライン?みたいな話がありましたが、自分はオフラインだと2018年の時の1回、オンラインだと去年と今年の2回参加で、両方いいなーって感じるところがあるので、ハイブリット形式で今後やっていくのもありかなとは思いました。(もちろんその分運営さんにとっては少し手間かもですが)

来年も引き続きiOSDCに参加しようと思ってます!次は登壇しているかもですね!(来年の自分に期待!)

iOSDC JAPAN 2021、今年もありがとうございました!来年もよろしくお願いします!