.NET MAUIで測量アプリを作る理由 — Swiftを選ばない場面


.NET MAUIで測量アプリを作る理由 — Swiftを選ばない場面

.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#資産の継承というメリットとのトレードオフで受け入れている

関連記事


開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。


お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Back to top