
.NET MAUIで測量アプリを作る理由 — Swiftを選ばない場面
GeoDiveExa(GDE)を含む現場測量アプリ群は .NET MAUI(C#)で作っている一方、GeoConverterPro(GCVP)・GeoPrism JP(GPRM)はSwiftで作っています。同じ「Geo」ファミリーなのに、なぜ現場測量アプリの側だけ .NET MAUI を選んでいるのか、その判断基準をまとめます。
出発点はXamarin — マルチOS対応のC#資産を.NET MAUIへ
GDEは最初から.NET MAUIで書き始めたわけではありません。もともとはマルチOS対応を目的に、C#で書けるXamarin(Xamarin.Forms)を採用してスタートしたアプリで、RTK受信機との通信処理・座標変換ロジックの土台はこの頃のC#資産です。その後、MicrosoftがXamarin.Formsの後継として.NET MAUIを打ち出し、.NET全体に統合される流れになったタイミングで、GDEも.NET MAUIへ移行しました。
ゼロから新しい言語で書き直すのではなく、Xamarin時代からのC#資産をそのまま活かせる移行先を選ぶという現実的な判断が、.NET MAUIを選んだ理由です。Swiftへ書き直す選択肢もありましたが、Xamarin以来動作実績のある通信処理コードを捨てるコストに見合うメリットが見当たりませんでした。
現場測量アプリならではの事情
RTK-GNSS受信機との通信・現場でのデータ入出力を扱うアプリには、iOS専業のGCVP・GPRMとは異なる事情があります。
- Windows/Androidへの展開余地:測量業界では現場PCやAndroid端末での運用も珍しくなく、.NET MAUIならiOS以外への展開を将来的に選択肢として残せる
- 共同開発者との協業:GDEは共同開発者と共有するリポジトリで開発しており、C#/.NET MAUIはメンバーの得意領域と合致していた
- 受信機メーカーが提供するSDK・サンプルコード:測量機器業界では.NETベースのSDK・サンプルが提供されるケースがあり、C#で書いておくと接続部分の移植コストが低い
対してGCVP・GPRMは、App Store配信のみを前提にした個人開発のiOS専業アプリで、共同開発者もいません。ネイティブなUI体験とApp Store配信の最適化を優先し、Swiftを選んでいます。
.NET MAUIを選ばない場面 — 逆側の判断基準
同じ個人開発でも、次のような条件がそろう場合はSwiftを選んでいます。
- iOS単独配信で完結する:Windows/Androidへの展開予定がない
- UI体験そのものが差別化要素になる:地図・ヒートマップなど、細かいアニメーションやジェスチャー操作を作り込みたい
- 共同開発者がいない:チームの技術スタックに合わせる必要がない
- App Store配信の最適化を優先したい:SwiftUI・StoreKit 2など、iOSネイティブAPIを直接使いたい
GCVP・GPRMはこの4条件にすべて当てはまるため、.NET MAUIではなくSwiftを選びました。逆に次期アプリのうち、RTK-GNSS通信・現場運用が中心でWindows/Android展開の余地を残したいものは、GDEと同じ.NET MAUI系リポジトリで開発しています。
実際に感じたMAUI特有の壁
.NET MAUIでのiOS開発は、Swiftに比べていくつか固有の壁があると感じています。
- iOS固有の不具合の切り分けが難しい:MAUIのクロスプラットフォーム層とiOSネイティブ層のどちらに原因があるか、切り分けに時間がかかる場面がある
- XAMLのレイアウトデバッグ:SwiftUIのプレビュー機能に比べ、実機・シミュレータでの確認サイクルが長くなりがち
- iOS向け最新APIへの追従の遅れ:iOSの新機能がMAUI側でラップされるまでにタイムラグがある
これらは「C#資産を活かす」「Windows/Android展開の余地を残す」というメリットとのトレードオフとして受け入れている部分です。.NET 8から.NET 10への移行のように、MAUI側のフレームワーク更新に追従するコストも発生しますが、これも同じトレードオフの一部だと捉えています。
まとめ
- GDEはもともとマルチOS対応のXamarin(C#)で書き始め、その後継である.NET MAUIへ移行した経緯があり、既存のC#資産(RTK通信・座標変換ロジック)を活かせることが移行の決め手だった
- 現場測量アプリはWindows/Android展開の余地・共同開発者のスキルセット・受信機メーカーSDKとの親和性から.NET MAUIと相性が良い
- iOS単独配信・UI体験重視・単独開発というGCVP・GPRMのような条件がそろう場合はSwiftを選んでいる
- .NET MAUIには不具合切り分けの難しさ・レイアウトデバッグの手間などの固有の壁があり、C#資産の継承というメリットとのトレードオフで受け入れている
関連記事
- .NET MAUI アプリ3本を .NET 8 から .NET 10 へ移行した(GeoDiveExa)
- 共同開発リポと個人リポを分ける — 次期アプリ用リポジトリ新設の判断(GeoDiveExa)
- Swift PackageでGeoCoreJPの高精度座標変換を支える設計思想(GeoConverterPro)
- GeoPrism JP 配信開始(GeoPrism JP)
開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。
お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。

コメントを残す