
AI開発ほど丁寧な開発が大切なのかもと思った話
こんにちは。リテールアプリ共創部のYahiroです。
以前、こちらの記事でマネージャーの吉崎さんがMac向けの完全オンデバイス議事録アプリ「ギジロー」を作られていました。
無理を言ってソースを送ってもらい、コツコツと細かい改修を重ねていたのですが、Windows版を作りたくなってきました。
この記事は、軽い気持ちでWindows版開発に手を出したら思ったより大変だった話です。
前提:ギジローについて
ここで改めてギジローについて振り返ります。
ギジローは、インターネットに接続できない環境でも、文字起こしから要約までをオンデバイスで完結できるMacアプリです。
- 本体: Swift
- 文字起こし: SpeechTranscriber(初版はWhisper)
- 要約: Ollama, Claude API, Apple Intelligence
上記の通りですが、ギジローはWindows版が開発されることをまったく想定していない構成です。
技術スタックの一部(Ollamaなど)は参考にできるものの、本体がSwiftで書かれている以上、Windows版はほぼ全編をC#で一から書き直す必要があります。
甘くみていたWindows版開発
シルバーウィーク初日、私はWindows版の開発を完全に甘くみていました。
ゼロからの開発とは違い、すでに動作するMac版のアプリもソースコードもあります。
「AI全盛の昨今、正解(ソース)があるならAIに読ませてコンバートさせれば一瞬だろう」と高を括っていたのです。
これが後に、シルバーウィークの半分を溶かし、睡眠時間と体調を大きく削る大型開発になることを、この時の私は知る由もありませんでした。
移植でぶち当たった3つの壁
実際に手を動かし始めると、単なる写経では済まないことがわかってき始めました。
1. 代替ライブラリとOS固有挙動の決定
Mac版のロジックをそのまま転用しようとしても、Windowsでは同等の機能を提供する標準APIがないケースが多く存在します。
そもそも、録音というハードに依存する機能を主機能にする以上、OS固有の挙動を考えなければならない場面があります。
さらに、macOSの「メニューバーアプリやウィジェット」に相当するUXを、Windowsでは「タスクバーやトレイアイコン」でどう再現するかという設計も必要になります。
「ソースがあるから正解がある」と思っていましたが、プラットフォームが違う以上、そもそも正解が存在しない場面が多々あったのです。
2. Mac版とのデータ互換性の保持
クラスメソッドはMacユーザーが多数派ですが、Windowsユーザーも一定数存在します。
同じ「ギジロー」を名乗ってはいるものの、Windows版はソースが全く異なる「実質的な別アプリ」になります。将来的にOS間でのデータ共有やバックアップの移行を考えると、データの持ち方に互換性を持たせる必要がありました。
Mac版側を改修してデータ構造を統一する案も考えましたが、すでにリリース済みのMac版のデータを変更すると、既存ユーザー向けの移行処理を新規実装することになり筋が悪いです。
結果として、Windows版側がMac版のデータ作法に歩み寄る設計を選択しました。
3. 文字起こし精度の合格ラインがわからない
ギジローのコア価値は「音声認識(文字起こし)」です。しかし、Windows版では使用する音声認識エンジンやパラメーター調整がMac版と異なります。
そのため、「どこまで精度が出れば Mac版と同等の『OKライン』なのか」が分かりません。
作者の吉崎さんに確認するのが確実ですが、時はシルバーウィーク。休日にSlackを飛ばすのも気が引けます。
結局、手元にある実際の会議音声をMac版とWindows版の両方の文字起こしエンジンに流し込み、出力結果を見比べながら地道にチューニングを繰り返しました。
今回を通して予想外だったこと
当初写経するくらいの感覚でWindows版を作るつもりでした。
ところが、ドキュメントがなくソースコードだけが唯一の正解である場合、ソースに書かれていない「なぜその設計になったのか(非機能要件やOSごとのUX仕様)」は、自分で判断して策定するしかありません。
つまり、すでに完成しているソースがあるからと言って設計しなくていいということにはならないのです。
ましてや、OSが違うかつ録音というハードに依存する機能を使う以上、実質的に新規アプリを作るのとあまり変わらないのかもしれません。
おわりに
AIがどれだけ優秀になりコードを爆速で書いてくれるようになっても、「仕様を決め、OS間の差分を埋め、トレードオフを判断する」のは人間の仕事です。
AI時代だからこそ、むしろエンジニアの能力、関わる人たちとのコミュニケーションをこれまで以上に重要視し、丁寧にエンジニアリングしていくことが大切なのかなと思いました。
あとは、吉崎さんが合格と言ってくれることを祈りながらexeを配布したいと思います。








