株式会社はてなに入社して6.5年以上経過した

いわゆる在籍エントリです。
現在、退職予定はありません。

2018年2月入社なので、2024/09現在で6.5年強在籍しています。
小学校よりも長く、同じ組織に所属していることになりました。

4年経った時にもエントリを書いていたのですが、出すタイミングを逃していた。
前回のふり返りから、かなり時間が空いたので、改めてはてな生活をふり返ろうと思います。

株式会社はてな

前のものですが、インタビューもされました。

developer.hatenastaff.com

アプリケーションエンジニア

入社してからのほとんどをスマホアプリ、中でもiOSアプリを多く担当しています。
主要な具体的な仕事は、

など、どれも代名詞となるようなサービスたちです。

少年ジャンプ+

その中でも最近やっていた「少年ジャンプ+」は、インパクトの大きい仕事でした。

hatena.co.jp

「ジャンプルーキー!」の開発から離れる時に、「次はジャンプ+をやる時に、チームに呼び戻してください」とマネージャーに言っていたことが実現しました。
正直、エンタメ系には少し疲れを感じていたのですが、ジャンプの仕事はそれを吹き飛ばす程の別格なものです。
20年以上読んでいるジャンプに関われていることは、とても光栄ですね。
どれだけジャンプマンガが好きかというと、「ワールドトリガー*1に学ぶチーム開発」というタイトルで、社内にエントリを書いています。

各所協力して作っていますし、全体に目を行き届かせてはいますが、中でも深く関わって自分の意識が強く出ている機能をいくつか取り上げるなら、以下でしょうか。

  • ビューワ
  • 書籍ダウンロード
  • 閲覧履歴の端末間同期
  • オリジナル初回無料

これからもよくしていきますので、ぜひ、ご利用ください!

shonenjumpplus.com

他の仕事

それ以外にも、はてなブックマーク iOSアプリのAppleシリコンMac対応、GigaViewer for Appsとしてコミックガルド+の開発など、おもしろい仕事を担当しています。

labo.hatenastaff.com

アプリ以外では、PerlでBackends For Frontends (BFF)を実装したり、TypeScript、Reactでフロントエンドをやったり。
細かいものは、数えきれない仕事を経験してきました。
テックリードやプロジェクトのリードを経験し、ソフトスキルも鍛えられました。

査定、評価

はてなでは、グレード制を敷いています。
社内では、社員同士のグレードが公開されていて、ロールモデルや目標を意識するようになっています。

株式会社はてな エンジニア採用資料 / Engineers Recruitment - Speaker Deck

自分はG2で入社して、現在はS5まで昇格しました。*2
まだまだ若手のつもりでいるので、自分としては過大評価な部分もあると思ったりはしますが、評価されるのはありがたいことです。

給与

評価と関連しますが、給与も上昇してきました。
はてな社内では、グレードごとの給与レンジも公開されています。
入社した頃よりも、全社の給与平均自体が上がっていると思います。

円安が厳しいので、Apple製品を気にせず買い続けるためにも、給与はもっと高くありたい。
S5グレードの中ではまだまだ伸び代があるので、給与が上がっていくといいですね。

人々

はてな生活が続いている要因の一つは、確実に関わる人々のおかげです。
普段の仕事での関わりはもちろん、適度な距離感でプライベートでの関わりがあります。

飲みに行ったりはもちろん、ポケモンGOに集まったり、Apple Eventを社内実況したりもします。
この週末は、釣りに行きました。

ハワイまでApple Vision Proを買いに行くような関係は、一般的には珍しいようです。

yutailang0119.hatenablog.com

生活

はてなに入社タイミングで京都に引っ越してきたので、関西も6.5年以上住んでいることになりました。
東京脱出の理由の一つは、東京オリンピックだったのですが、まさか世界がこう変わって、無観客開催となるとは。
計画は簡単に崩れるものです、現在は大阪万博の渦中である...

東京は家賃が上がりすぎていて、住める気がしないですが、東京での宿泊費もどんどん上がっていて、どうなってしまうのでしょうね。

犬派だったんすが、猫との生活は最高です。

yutailang0119.hatenablog.com

おわりに

6年以上在籍すると、自分をはてなに誘ってくれた人、入社時にはてなのイメージだった人、多くの人々を見送ってきました。
その対比に、多くの人を新たに迎え、入社時から環境は大きく変わっていってます。
在籍年数が長くなっている自覚はありながら、まだまだおもしろい仕事がありそうなので、引き続きはてなでやっていこうと思います!

宣伝

そんな株式会社はてなでは、 id:yutailang0119 と一緒に働いてくれる人を募集しています!
まずは、カジュアル面談をしませんか?

hatena.co.jp

*1:現在はジャンプSQ.連載

*2:入社時は6段階だったグレードは、現在7段階に改訂されています

DroidKaigi 2024に参加した #droidkaigi

DroidKaigiオリジナルビール

iOSDC Japan 2024に、パンフレット投稿で参加しました #iosdc - がんばってなんか書く に続いて、今年はDroidKaigi 2024にも参加しました。
所属企業であるはてながスポンサーをしているので、チケットをゲットしました。
同僚の id:bps_tomoya id:mangano-ito id:ytRino id:r4wxii id:kk__777 たちと参加。
実はオフラインで会うのは初めての人もいる...
developer.hatenastaff.com

DroidKaigiに参加するのは、かなり久しぶりです。
普段はiOSとSwiftをメインで生きているので見知った人は少なめではありますが、知り合いづてにコミュニケーション増やしていく作戦でした。
また、DroidKaigi運営スタッフの一部の方には、try! Swift Tokyoをお手伝いいただいているので、運営側として知っている人々もいる安心感。

ワークショップ・デイ

DroidKaigi 2024

せっかくなので、ワークショプから参加しました。
Kotlin Multiplatformを使って、Android、Desktop (JVM)、Web (Wasm) に実装を作っていくお題でした。

Fleetを使った実行、エミュレーター起動、デバッグができておもしろかったです。
複数プラットフォーム用の雛形が用意されていたので、その点の苦労はスキップされていましたが、開発体験はよかった。

できたものは GitHub - yutailang0119/droidkaigi24

セッション

Android固有のセッションはすぐに咀嚼できないかなと思い、現地で見たものは少なめ。

Kotlin 2.0が与えるAndroid開発の進化 | DroidKaigi 2024

言語やコンパイラが好きな人間なので、K2コンパイラにも興味がありました。
移行部分は実感湧きづらいですが、困りポイントの共感はありました。 DataBindingとかはよく知っている。
コンパイラ本体の詳しい知識があると、より楽しめたのかもしれません。

PDF Viewer作成の今までとこれから ~ Android 15で進化したPdfRenderer~ | DroidKaigi 2024

マンガサービスに携わっていると、ファイルフォーマットは気になるトピック。
PDF表示を丁寧に解説していて、簡単なPDF Viewerはこれで全部作れそうな内容でした。
懇親会でも裏話を聞けて、おもしろかった。

展示、懇親会

アイスがあるのがよかった。この発想はなかった。

プリクラを撮るのは難しかった。

オリジナルビールもおいしかったです! t0ki.beer t0ki.beer

まとめ

はじめましての方々と多く交流できたり、感動の再会があったり、すばらしいカンファレンスでした。
来年も参加したい!

今回に合わせて、try! Swift Tokyo 2025の下見やbuilderscon 2024の打ち上げもやってきて、充実した期間でした。

iOSDC Japan 2024に、パンフレット投稿で参加しました #iosdc

空間写真でお届けできないのが残念

毎年夏の風物詩、iOSDC Japan 2024に参加しました。

iosdc.jp

2023にも参加していますが、iwillblogしていなかったことが発覚した...
一昨年は iOSDC Japan 2022にオフライン参加した #iosdc - がんばってなんか書く

パンフレット

最低限に2年に一度はスピーカーになれるように活動しているのですが、今年はいろいろあって締め切りなどを考えた末にパンフレットにプロポーザルを投稿して、採択されました。

fortee.jp

実際に誌面に掲載されていものと同じPDFはこちらからもご覧いただけます!
読んでいただいて、フィードバックお願いします!

タイムライン

パンフレットの納品締め切りは6/20 23:59。

6月に入ってからリポジトリを作って、まずは10日弱検証のコードを書いて、取り扱うトピックの整理をしました。
その後に日本語を書くための環境を準備してから、またコードを書いていた。
要は、パンフレット本体から目を逸らしていました。

その後、もう一度やる気を出して、土日で日本語をガッと書いて90%までいくと、安心してまた停滞。

さすがに締め切りも近づいてきたので、そろそろ収束に向かわました。

せっかくなのでレイアウトはkmuto/reviewを使ってみたいと思ったりしたのですが、0から始めるのはリスクがあると感じて断念。
印刷物ができる人にお願いして、レイアウトをやってもらいました。
レイアウトを仮組してみると、割り当てられた4ページじゃどうやっても収まらないことが判明、運営に泣きつきます...
6ページに増やしてもらえることになったので、助かりました。

最後の調整をして、納品したのは6/20 23:21 。

これでパンフレットの登壇者作業は終わり。
ノベルティボックスに入っているパンフレットで完成を見て、よしよしと思っていました。

イベント当日

自分は現在関西に住んでいるので、移動が必要です。
毎回ですが、前夜祭から最終日翌日までの旅程を組みました。

パンフレットは終わっているので、イベント期間中が気楽でいい。

day0

木曜日の昼に東京オフィスに出社できるように、新幹線に乗りました。
東京に向かうにつれて雲行きが怪しくなっていって、到着した頃にちょうど本降りが始まった。
移動する間に止むかなと思いながら雨雲レーダーを見ていましたが、最終的に最寄駅からオフィスまでのラストワンマイルで立ち往生して1時間弱駅にこもっていました。

オフィスに移動した後は同僚の id:kouki_dan と合流して、東京オフィスに所属で普段オフラインで会わないメンバーと昼ごはんに行ったりしました。
夕方からはiOSDCが始まるので、西早稲田キャンパスの時にはいつも利用している「アパホテル東新宿駅前〉」に先にチェックイン。
のちに分かったんですが、宿泊が必要な人々はこの周辺に宿を用意していることが多かったらしいです。

前夜祭は久しぶりに会う人たちと近況報告をしたり*1id:kouki_dan の発表を冷やかしたり、Swiftコードバトルで盛り上がったりしました。

会後

前夜祭終了後は、お馴染みのメンバーや周りにいる人たちを連れ立って、今年もダンダダンに行きました🥟

day1

同僚2のid:tokizuohの発表を眺めに行ったり、Strict Concurrency座談会を賑やかしに行ったり。

アンカンファレンス

この日のメインは、アンカンファレンスでのApple Vision Pro座談会 公開収録でした。

Apple Vision Proをお持ちの方には会話に参加してもらって、それ以外の方にも特異な集団として気になってもらえたようでした。

収録動画は編集中です、公開はまたお知らせします。
高評価、チャンネル登録お願いします!

www.youtube.com

その後にやったモブプロ開発もおもしろかった。

アンカンファレンスに言えることなんですが、社名などのフックがないと知らない人へのリーチが難しく、内輪になってしまう。
何かいい方法ないですかね?

会後

day1の終了後は 【オフライン開催】visionOS Developer Meetup #2 - connpass に参加してきました。
2/3にくらいは普段見かけない、iOSとは別のコミュニティの方という感じで新鮮でした。

会場近くの路地にいた猫

day2

Typed throws、AsyncSequence、GraphQLあたりを見て、ふむふむと。

Typed throwsはproposalから追っているので、気にしているトピックです。
自分の性格的にはどこにでも型をつけたくなってはしまいますが、それを制するフローチャートが出てきたのがよかった。

Swift 6のTyped throwsとSwiftにおけるエラーハンドリングの全体像を学ぶ - Speaker Deck

AsyncSequenceは、パンフレットでもNWPathMonitorを例にした実装があったのですが、NWPathMonitor自体がAsyncSequenceなことに気づいてなかったので学びでした。 Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する - Speaker Deck

パンフレットのリポジトリにも変更を入れています。
[SampleCode] Fix NWPathMonitor.pathUpdateHandler to replace by yutailang0119 · Pull Request #5 · yutailang0119/iosdc-2024-pamphlet · GitHub

newmoのGraphQLを使い倒している感じは、勉強になりました。
最近フロントエンドではGraphQLが最適なのかの議論が起きているので、自信が弱くなったりもしていましたが、発表内容を超えてGraphQLの話だったり、マルチプラットフォームの話だったりをできてよかったです。

それからスロット被りで見れなかったvisionOSのデモを体験させてもらいました。
雨の表現は、とてもよい。

最後にLTを見て、懇親会。 懇親会では昨年の反省を活かして、初めましての方にはNFCを読み込ませてもらって繋がりを作った。

前回までと違って、やっと最近やってる話を公に話せたので、具体的な仕事の話もできました。

hatena.co.jp

会後

その後のHUBは、iOS関係者だらけで無茶苦茶だった。
「求心力じゃん」と言ったのは私です。

終電終わった時間でも残っているのは、近くに泊まっている関東圏外民と奇特な数名という感じで、閉店の25時に解散しました。
その後カラオケに行った人たちもいるけど、さすがについて行く元気が残っていなくて、6人で歩いて帰りました。

イベント翌日

ギリギリまで寝て起きてチェックアウトして東京駅。
一応仮面ライダーストアを眺めるなどをしてから新幹線。
夕方以降、新幹線がだいぶ遅れたみたいなので、昼に移動しておいてよかった。

大阪でやっているSPAJAM予選に顔を出そうかなと思ったりはしたんですが、疲れすぎていたので家に帰りました。

まとめ

今回もみなさんありがとうございました! 次はすぐですがDroidKaigi 2024のために、また行きます!

パンフレットへのフィードバックお願いします!

*1:try! Swift以来で会うのは半年ぶりという人たちも多いですが、ホスト側だと交流も十分ではないので、iOSDCで補完される

Apple Vision Pro購入RTA 1泊3日弾丸ハワイツアー #AppleVisionPro

2/26 (月) - 28 (水) の1泊3日で、ハワイに行ってきました。
目的は、Apple Vision Proの購入。

この無線設備は、電波法に定める技術基準への適合が確認されておらず、法に定める特別な条件の下でのみ使用が認められています。この条件に違反して無線設備を使用することは、法に定める罰則その他の措置の対象となります。

前情報

同僚 id:kouki_dan が、Apple Ala MoanaでのApple Vision Pro購入に成功しています。
アメリカに行ってVision Proを買ってきた - ダンの日常2

RTAが決まるまで

2/22 (Thu)

id:cockscomb から、Apple Ala Moanaに在庫があるよと教えてもらった。
id:astj がすぐに注文。
自分のサイズ "Solo Knit Band - S, Dual Loop Band - S, Light Seal - 21W" がなかったようで、残念 (危なかった) でした。

促される様子

念のため、情報収集と準備を続けていました。

15時過ぎに自身のサイズの注文ができるようなっていることに気づき、さらに悩んだ末に注文。

注文完了

Appleの場合は注文のキャセルが容易なので、取りやめるか最悪おつかいを頼むことにシフトすることも考えられる状況でした。
ただ、一生の内に何度もないお祭りだと思うと、乗っておくべきな気もしてきていました。
関係各所にあらためて相談して、腹を括って夜中に航空券を手配。
ここで引き返せない状態になった。
すぐにESTAの申請も行いました。

ハワイアン航空

羽田発着便なのは、新幹線の移動費を引いても安くなったためです。
KIXは便が少ないからなのか、高額になりがちでした...

間が1泊だと、航空券が高くなるらしい?ことも初めて知りました。
1日空くと航空券が1.5万円くらい安くて、ホテル代1泊と変わらないくらいになりそうです。
同行する id:astj が、先にチケットを取ったばかりに...

2/23 (Fri)

祝日でゆっくりしていたら、同僚からメンションが来て、代理Pickupを頼まれました。
スーツケースに2台は入らなそうなので、どうにかする。
朝の間に、ESTA通過の通知も来ていたので、一安心。

旅程

あらためての旅程は

  • 2/26
    • 23:55 (JST) HND -> 11:45 (HST) HNL ✈️
    • 13:00 (HST) Apple Ala Moana 🥽
  • 2/27
    • 12:30 (HST) HNL -> 2/28 17:10 (JST) HND ✈️

の、1泊3日の弾丸ハワイツアー。
同行する id:astj が、先にチケットを取ったばかりに...

RTA

週末は穏やかに過ごして、RATに向けて集中力を高めました。
月曜の仕事中は、ソワソワしていたと思う。

2/26 (Mon)

ついにRTA開始です。

2/26 (Mon) スタート

  • 夕方まで家で仕事 🧑‍💻
  • 17:00 (JST) 新大阪駅出発 🚅
    • タイマースタート
  • 19:15 (JST) 品川駅到着 🚅
  • 20:00 (JST) 羽田空港到着 🚃
  • 日本出国 🇯🇵
  • 23:55 (JST) HND 🛫

日本出国

2/26 (Mon) の続き

  • 11:45 (HST) HNL 🛬
  • アメリカ入国 🇺🇸

アメリカ入国

  • 目的は?
    • 観光
  • 一人で?
    • 友達が別のフライトで来ていて、後で会うよ
  • ホテルは?
  • 何日?
    • 1泊
  • 1泊!?本当に?
  • どこに買いに行くの?
    • Ala Moana Center
  • 現金はいくら持ってるの?
    • 現金は$40
  • $40だけ!?
    • それとカード
    • Apple Vision ProはWebでオーダー済みです
  • 明日日本に帰るの?チケットある?
    • 帰りのフライトのチケットを見せる
  • シゴトハナンデスカ (突然日本語)
    • iOSアプリエンジニア 🤔
  • Umm...OK
    • Thank you…

2/26 (Mon) の続き

  • 12:20 (HST) The Bus 🚌
  • 12:30 (HST) 逆方向に乗ったことに気づく
    • 🚨日本と車線が逆なことに注意
  • 12:40 (HST) 逆向きのバスに乗り換える 🚌
  • 13:30 (HST) Ala Moana Center到着 🍎

Apple Ala Moana

www.apple.com

Appleストアには30分遅刻したけど、店員さんにPickupに来たとWalletのQRコードを見せたら、すぐに対応してくれました。
自分は2台の受け取りだったので、以下の順序となりました。

  • 代理Pickup
  • 自身のFittingとデモ
  • Travel Case購入
  • Giftカード購入
    • US regionのApple ID用

仕事用?個人用?と聞かれたけど、当然、Personal use...
Apple Vision Proを買いに、結構日本人がやってきているらしいです。
同僚が先週、ここに来たんだよと言ったら、 "Really!?" と笑って返されました。

デモで操作方法を教えてもらって、1.5時間強の滞在となりました。
Appleストア内は日本とほとんど変わらず、実家のような安心感。

Apple Store Appで測定したサイズと交換しなかったので、かなり正確に測定できていそうです。

2/26 (Mon) の続き

  • 15:30 (HST) ご飯 (Jack in the Box) 🍔
  • 16:00 (HST) ビーチ (Ala Moana Beach Park) 🏖️
  • 16:30 (HST) お買い物 🛍️

Ala Moana Beach Park

2/26 (Mon) の続き

  • 18:00 (HST) 晩ご飯を購入 🦐
  • 18:30 (HST) The Bus 🚌
  • 19:15 (HST) ホテルチェックイン
  • Apple Vision Pro開封 🥽

Apple Vision Pro開封 🥽

やっと長い月曜日がおわり。

2/27 (Tue)

時差ボケは感じつつ、身体が疲れているので、布団に入ったらすぐに寝ていました。

2/27 (Tue) スタート

アメリカ出国

あっという間に出国です。

出国ゲートを通った後の免税店で、海外ポケモンカードを見つけて、買ってしまった (高かった) 。

2/28 (Wed)

帰りは進む方向に日付変更線をまたぐので、飛行機内で3日目に突入。

2/28 (Wed) スタート

  • 16:15 (JST) HND 🛬
  • 日本入国 🇯🇵
  • 税関で消費税・地方消費税を支払い 💸💸
    • 2台分

日本入国

フライトが1時間短くなったので、到着が早まってよかった。

2/28 (Wed) の続き

  • 17:45 (JST) 品川駅で同僚がお迎え 👤
  • 18:20 (JST) 品川駅出発 🚅
  • 20:35 (JST) 新大阪駅到着 🚅
    • タイマーストップ

お疲れ様でした。
新大阪駅で、晩御飯の551を購入して帰宅。

費用

Apple Vision Proが$3499。
ハワイでは、4.712%の州税がかかります。
アメリカはタックス・リファンド制度を導入しておらず、Apple Vision Proは免税範囲を超えるため、日本国内に持ち込む時に追加で消費税を支払います。
交通費の大半は航空券と新幹線。
ホテル代は1泊分を、2人で折半。
円安の影響は大きいけど、そもそもハワイは物価が高かった。

Salt & Pepper Shrimp ($16.70)

まとめ

  • 1泊3日弾丸ハワイは、可能
  • 入国審査怖い
  • Apple Vision Proは、体験しないとわからないおもしろさがある

関西モバイルアプリ研究会A #2

関西モバイルアプリ研究会A #2 - connpass で登壇してきました。

speakerdeck.com

2024/01/19 (31)

id:yutailang0119 の通り、2024年1月19日に誕生日を迎えました。
片手で数えられるラストイヤー。

昨年 yutailang0119.hatenablog.com

今年こそ30回目の誕生日

仕事

昨年は会社、チームのいろいろがあって、とにかく働いた1年でした。
ちゃんと働いてるのかと思われていたかもしれないけど、昨年は社会人生活で1、2を争う働きっぷり。
現在進行形で働きまくっている。

助けてくれ!
hatena.co.jp

1年前の査定で、社内グレードがS4になりました。
入社した時は、遥か雲の上の領域と思っていたけど、なんとかやっていけています (評価してもらえています) 。
はてな社内だと、IC的な扱いのポジションに収まっています。
はてなのグレード制 (2024/01) 参考: 株式会社はてな エンジニア採用資料 / Engineers Recruitment - Speaker Deck

生活

三十代をあまり感じない

大阪に引っ越しました

昨年書いたように、大阪に引っ越しました。
京都オフィスには1時間くらいかかるので、2週間に一度程度、なんとなく行くという感じになっています。

マンションには管理会社が常駐していて荷物の発送を代わってくれたり、ディスポーザーがついていたりとかなり快適。

趣味

ビールがうまい、箕面ビールの桃ヴァイツェン4種制覇できた。
桃ヴァイツェン白鳳

ライブ行ったり。

最近は仮面ライダーにハマっています。

猫との生活

Visionフレームワークを活用した猫のポーズ検出 #はてなエンジニアアドベントカレンダー2023 - がんばってなんか書く でご紹介の通り、オスの茶虎 "ビビ" がやってきました。

かわいい、とにかくかわいい

2024年初ビビ
2024年初ビビ

写真集 ビビ写真で一番のお気に入り 2023年ラストビビ WWDC24を見ていて、早よ寝ろの顔をするビビ ちゅ〜るを食べる時は野生の顔をする 野生を忘れて寝ているビビ

try! Swift Tokyo 2024

仕事が忙しすぎて、他メンバーに頼り切りなのですが、帰ってきたtry! Swift Tokyoのオーガナイザーのひとりをやっています。
2024/3/22 (金) ~ 24 (日) です、迷っている方は今すぐチケットを買いましょう!

tryswift.jp

最後に

みんな人間よりも、猫の方が支援したいでしょ。

www.amazon.jp

Visionフレームワークを活用した猫のポーズ検出 #はてなエンジニアアドベントカレンダー2023

はてなエンジニアアドベントカレンダー2023 1日目の記事です。
アドベントカレンダー初日は id:yutailang0119 が担当します。

猫と生活しています

誕生日を迎えた 30回目 - がんばってなんか書く の引っ越しに合わせて、猫がやってきました。
オスの茶虎 "ビビ" です。

ビビ

今回は、WWDC 23でVisionフレームワークに追加されたAnimal Body Poseの検証を、ビビに手伝ってもらいます。

Animal Body Pose

Detecting animal body poses with Vision | Apple Developer Documentation のサンプルアプリを使って撮影します。
実行環境は、iPad mini (6th generation) iPadOS 17.1.1です。

ビビのポーズ検出

スクリーンショットでの紹介ですが、サンプルアプリではVideoのインプットを、リアルタイムに検出します。
公開されているサンプルで、おもしろい写真が撮れることがわかりました。

VNDetectAnimalBodyPoseRequest

Animal Body Poseには、ポーズ検出を行うVNDetectAnimalBodyPoseRequest を使います。
関節をはじめとする25のジョイントを検出できます。
現在は、猫と犬をサポートしています。

より詳しくは、WWDC23のビデオを参照してください。

developer.apple.com

ちなみに、人間に対してはVNDetectHumanBodyPoseRequestを使用します。
Detecting Human Body Poses in Images | Apple Developer Documentation

VNRecognizeAnimalsRequest

VNDetectAnimalBodyPoseRequest は2023年OSがサポートするAPIですが、以前のOSでも使用できるAPIがあります。
Visionフレームワークには、VNRecognizeAnimalsRequestがあり、動物の特定ができます。
サンプルアプリを変更して、猫自身の特定も行ってみました。

ビビ自身の検出

boundingBoxの扱いには難があります*1が、I/Oの処理はVNDetectAnimalBodyPoseRequestと同様です。
VNImageRequestHandler.perform(_:)には、複数のVNRequestを実行可能なので、VNDetectAnimalBodyPoseRequestVNRecognizeAnimalsRequestを同時に処理できます。

さいごに

画像処理やMLに踏み込む必要なく、Visionフレームワークを活用すると、猫自体の検出とポーズ検出を行なうことができました。
猫のポーズに合わせて写真を撮るアプリなら、簡単に作れそうです。
Apple Vision Proのために、Visionフレームワークの練習に励んでいきましょう!

明日のはてなエンジニアアドベントカレンダー2023担当は id:pokutuna です!

ビビへのファンレターもお待ちしています!!!

おまけ

オフショット集