Swift未経験者がメトロノームアプリを実装した

1.6K Views

January 27, 25

スライド概要

Minokamo.swift #1
2025年01月25日(土)

profile-image

Webフロントエンドエンジニア

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

【Minokamo.swift #1】 Swift未経験者が メトロノームアプリを 実装した Github: junseinagao / Twitter: @junpai_code

2.

自己紹介 長尾准誠 (ながおじゅんせい) KODANSHAtech 合同会社 Webエンジニア 1997年2月生まれ (27歳) ・高校から大学、社会人と吹奏楽でチューバを続けてます。 ・Next.jsを使ったモダンフロントエンドの開発が得意です。 ・大学卒業後、フリーランスを2年間やったのちに会社員になりました。 ・趣味はTesla 🚘買ったり、スノボ🏂行ったり、名城公園でスケボ🛹などしてます。 JUNSEINAGAO/@JUNPAI_CODE

3.

本日、発表するアプリ 『Metronome for Watch (仮)』

4.

Metronome for Watch 概要 Apple Watchで使えるメトロノームアプリ メトロノームアプリの振り子を再現 (管楽器の練習体験に最適化) Swiftがまったく書けないので、基本的にはChatGPTにコードを書 いてもらった JUNSEINAGAO/@JUNPAI_CODE

5.

Metronome for Watch Swiftで開発してみての感想 実機に送るにはiPhoneを経由するので、iPhoneがないとそもそも 開発できない(笑) なんで文法でビルドエラーが落ちるタイミングがあるのに、型変換 は実行時で落ちるの...? VS CodeだとLSPがファイル間モジュールを解決してくれない...?! JUNSEINAGAO/@JUNPAI_CODE

6.

Metronome for Watch このアプリの技術的なおもしろさ Apple Watchを傾けるとアプリが停止するので、 ExtendedRuntimeSessionで1時間動くように延長 Timerで音をスケジュールするとタイミングがズレるかもなので、 AVAudioEngineを使って精確なタイミングでクリック音を再生 ビートにあわせてHapticフィードバックで振動 JUNSEINAGAO/@JUNPAI_CODE

7.

Metronome for Watch アプリ的なこだわり Apple Watchには、他のメトロノームアプリは1つしかない...! メトロノームの振り子を再現 (管楽器の練習体験に最適化) → ドライブ感を感じながら練習できる 振動を上手く使うことで他のメトロノームではできない練習体験 → 裏拍で鳴らしながら振動で頭拍があってるかを確認する クリック音はウィットナーの音を自分でサンプリングした (ウィットナー:クラシック界隈に大人気の高級メトロノーム) JUNSEINAGAO/@JUNPAI_CODE

8.

JUNSEINAGAO/@JUNPAI_CODE

9.

デモ1 リズムをさらう

10.

このリズムをどうやって取れるようにする? ♩=150 JUNSEINAGAO/@JUNPAI_CODE

11.

まず、後半だけに絞ります ♩=150 JUNSEINAGAO/@JUNPAI_CODE

12.

テンポを倍にすると分かりやすくなります ♩=150 ♩=150 → JUNSEINAGAO/@JUNPAI_CODE

13.

クリックが鳴るところをハッキリさせます ♩=150 JUNSEINAGAO/@JUNPAI_CODE

14.

八分音符の表裏をハッキリさせます ♩=150 表 表 裏 表 裏 JUNSEINAGAO/@JUNPAI_CODE 表 表

15.

メトロノームの数値をだんだん上げながら練習します ♩=150 → 160 → 172 → ... 表 表 裏 表 裏 JUNSEINAGAO/@JUNPAI_CODE 表 表

16.

デモ2 ドライブ感を感じる

17.

質疑応答

18.

デモ3 最後に、一曲吹かせていただきます