Doggie Bus: ある開発者が .NET MAUI と Azure を使って「犬版の Uber」サービスを構築した方法

Doggie Bus のロゴ

顧客
Doggie Bus

製品とサービス
.NET MAUI
ASP.NET
Azure

業界
輸送

組織の規模
Small (1-100 の社員)

国/地域
米国

Doggie Bus は、Troy Bergeron が設立したニューオーリンズのスタートアップ企業で、ユニークな犬版の Uber サービスを提供しています。これは、飼い主がペット用デイケア施設や動物病院などへの愛犬の安全で便利な送迎を予約できるモバイル アプリです。根っからの犬好きである Troy は Doggie Bus のシャトルバスを自ら運転し、どの犬にも家族のように接しています。彼の目標は、ペットの輸送サービスをライドシェアの利用と同じくらい簡単で信頼できるものにし、飼い主が心から安心できるようにすることです。

Troy は、このビジョンを実現するために、ベテランのソフトウェアエンジニアであり、.NET MAUI (さらにその前は Xamarin) を早くから導入していた Mario DeLuca (DeLuca Technologies) とタッグを組みました。二人は協力して、主要なライドシェアアプリに匹敵する体験を提供しながら、ペットの飼い主向けに特化したクロスプラットフォームのモバイルアプリを構築しました。

ダッシュボードのスクリーンショット
引き取り予約画面のスクリーンショット
Doggie Bus の位置をリアルタイムで追跡

人の想いから生まれた本物の情熱

2024 年の初頭、Doggie Bus が iOS と Android でリリースされ、ペットの飼い主は簡単に送迎サービスを手配できるようになりました。このサービスの中核をなすのは、ペットの安全に対する Troy の個人的な取り組みです。彼はすべての新しい顧客 (人と犬) に直接会い、透明性を通じて信頼を築いています。飼い主は送迎バスを地図上でリアルタイムに追跡でき、ペットの引き取りや引き渡しのときには通知も受け取れます。

ペットを見守る気持ちにかけては人間の親にも劣らない飼い主にとって、この可視性は夢のような機能です。このアプリがあれば、飼い主は、常に「愛犬」がどこにいるかを把握でき、愛犬が大切にお世話されていると知って安心感が得られます。

技術面で言えば、Mario は舞台裏のヒーローでした。経験豊富な C# 開発者である彼は、Doggie Bus の開発にあたってエンドツーエンドに .NET を使用できることに高揚感を覚えました。これにより、Mario は、独力で、洗練されたネイティブのモバイル エクスペリエンスを両方のプラットフォームで作成することができました。このパートナーシップはシームレスに機能しました。Troy はアプリの最初のユーザーとして、(管理者モードで毎日ルートを走行しながら) 専門家ならではの深い洞察と継続的なフィードバックを提供し、Mario はさまざまな機能を迅速に実装しました。二人とも、Troy が冗談でよく言うように「犬でも使えるくらい簡単な」サービスを作るという使命感に突き動かされていました。

うちのサービスは犬でも使えるくらい簡単なものにしなきゃならないんです」

Doggie Bus の創設者であり、ペットの飼い主でもあり、自らバスも運転している Troy Bergeron

Doggie Bus の前に立つ Mario と Troy。

統合が生み出す力 - .NET MAUI で解決

課題:Doggie Bus は、作業量を倍増させずに、高品質なモバイルアプリを iOS と Android の両方で提供する必要がありました。また、リアルタイムのコミュニケーション (移動状況のリアルタイム追跡のため) と、ユーザーに安心感を与える洗練された使い勝手のよい UI も求められていました。小規模なスタートアップ企業であるがゆえに、限られた時間と予算の中でこれらすべてを実現する必要がありました。

.NET ソリューション: Mario はモバイルアプリに .NET MAUI を採用し、1つの C# コードベースで iOS と Android の両方に対応できるようにしました。この選択により、1 つのコードベースで 2 つのネイティブアプリを開発できるため、開発期間とコストが直ちに半減しました。「.NET MAUI のおかげで、コードの 90% 以上をプラットフォーム間で共有することができました。この効率性のおかげで、より迅速に動けるようになり、メンテナンスの負担を減らし、iOS と Android の両方で一貫したユーザー体験を提供することができました」と Mario は語っています。.NET MAUI フレームワークは、大規模なチームを必要とせずに、求められるネイティブパフォーマンスと柔軟性を実現しました。ソリューションの主な特長を次に示します。

  • 統合されたアプリ コードベース: Doggie Bus アプリ コードの約 90% がプラットフォーム間で共有されています。コア機能 (UI レイアウト、配車ロジック、データ モデル) は、.NET で 1 回記述され、iOS と Android の両方でネイティブに実行されました。プラットフォーム固有の調整が必要な部分はごくわずかでした (たとえば、小さなバス アイコンをアニメーションでスムーズに動かすには、OS ごとのカスタム マップ レンダラーが必要です)。この単一コードベースのアプローチにより、機能の同一性が保証され、メンテナンスが簡素化されました。
  • Azure を活用したバックエンド: チームは、認証、スケジュール、データ ストレージを処理するために、ASP.NET Core と Azure を使用してクラウド バックエンドを構築しました。Azure SignalR を使用することで、アプリはリアルタイムの更新を実現します。Troy が運転すると、バンの GPS 位置情報がクラウドに送信され、ペットの飼い主のスマートフォンに即座にプッシュ通知されるため、飼い主たちはバンの移動を地図上でリアルタイムで確認できます。すべてのデータ (スケジュール、ペットのプロフィール、予防接種の記録) は、Entity Framework を介して Azure SQL Database に保存されます。簡単にサインインできるように、バックエンドは Apple や Google とも統合されています。このエンドツーエンドの Microsoft スタック (MAUI アプリ + Azure サービス) により、初日から信頼性とスケーラビリティが確保されます。
  • 最新の開発ツールとライブラリ: Mario は豊富な .NET エコシステムを活用して開発を加速させました。彼は、既製の UI コンポーネントとエフェクトには .NET MAUI Community Toolkit を使用し、認証フローなどにはオープンソース ライブラリを利用しました。XAML ホット リロードなどの生産性機能により、UI を迅速に調整でき、GitHub Copilot が AI ペア プログラマーとして機能することで、定型コードの生成や開発の高速化に役立ちました。結果: コンセプトから始まった Doggie Bus は、従来の複数チームによる開発と比べればわずかな時間で、機能豊富で完成度の高いアプリに仕上がりました。

.NET MAUI を選んだ理由は? Doggie Bus が .NET を選んだのは、クロスプラットフォーム対応の効率性に加えて、.NET には優れたパフォーマンスと統合されたエコシステムがあったからです。このアプリは AOT (Ahead-of-Time) コンパイルを採用しているため、古い Android 端末でも、圧倒的にスムーズに動作します。クライアントとサーバーの両方で C# を使用することで、チームはプロジェクト全体にわたってコードやスキルを共有することができます。たとえば、データモデルを一度定義すれば、クライアントとサーバーの両方で再利用できるため、バグやミスマッチを削減できます。

Mario は他のフレームワークも少し検討しましたが、Xamarin で実績のあるアプリを開発した経験から、.NET MAUI ならネイティブ アプリ並みの品質が得られると確信しました。「私に言わせれば、迷いは全然なかった」と、彼は MAUI を選んだ理由を語っています。この統合されたアプローチにより、iOS 開発者と Android 開発者を別々に雇用したり、新しい言語を学習したりする必要がなくなり、それが小規模な会社にとって大きな利点となりました。リアルタイム マップやソーシャル ログインの実装などの課題も、.NET の柔軟性とライブラリによってスムーズに解決されました。

課題 (地図上の移動を表すアニメーションの微調整など) が発生するたびに、.NET のおかげで行き詰まることなく、カスタムソリューションで乗り切ることができました。要するに、開発に必要なすべての要素を .NET が 1 つのプラットフォームで提供してくれたことで、Doggie Bus のチームは、より迅速かつ低コストで開発を進められ、それ自体が楽しい経験になりました。

.NET MAUI は、50% を超える開発コストの削減に役立ちました。単一のコードベースと共有バックエンド ロジックにより、作業を倍増させることなく、iOS と Android の両方に高パフォーマンスのネイティブ アプリを提供できました」

Mario DeLuca、CEO DeLuca Technologies

ペットの送迎に与えた影響と今後の展望

飼い主に安心を届ける: Doggie Bus はサービスの立ち上げ以来、ペットの送迎管理のあり方を一変させました。従来、電話や SMS で行われていた予約はアプリに代わり、わずか数秒で完了します。飼い主は数回タップするだけでペットのお迎えを予約できます。書類の記入ややり取りは不要です。アプリは重要なタイミングで (バスが飼い主宅に近づいているとき、犬を引き取ったとき、お届けが完了したとき) に自動通知を送信するため、飼い主が不安や疑問を感じることはありません。

とりわけ利用者に好評なのがリアルタイム追跡機能です。地図上で Doggie Bus のアイコンがリアルタイムに動くのを見るのは、安心感が得られるうえに楽しい体験でもあります。「通知について称賛の声をたくさんいただいています」と Troy は語っています。多くの利用者から「このサービスは非常に使いやすい」との声が寄せられています。この利便性と透明性が地域の飼い主たちの大きな支持を集める原動力となっています。安心して愛犬を任せられることから、今では多くの利用者にとって週に何度も Doggie Bus を予約することが日常の一部になっています。

.NET ソリューションは、Troy の業務にただちに改善をもたらしました。スケジュール管理と記録管理は 100% デジタル化されました。Troy は「すべてが 1 つのアプリにまとまっていて、紙の記録なんて一切ないんだ」と語っています。クリップボードや手書きの日誌はもう必要ありません。アプリの管理機能を使用すれば、毎日のルートの管理、犬のプロフィールや予防接種の記録の確認、支払いの処理をすべて 1 か所で行えます。

これにより業務が効率化され、ミスも削減されました。Troy は、書類仕事から開放され、犬の世話に集中できます。財務面では、.NET の導入によって開発コストを大幅に節約できました。ネイティブアプリを別々に開発するには 2 人の開発者を雇うか、高価なアウトソーシングを確保する必要がありましたが、それは現実的ではありませんでした。その代わりに、たった 1 人の開発者が製品全体を完成させました。

.NET MAUI を選択したことで「開発コストが大幅に削減された」と Mario は考えていますが、これは Doggie Bus の立ち上げにとって非常に重大なことでした。限られた予算にもかかわらず、はるかに規模の大きい競合他社の製品に匹敵する、洗練されたプロフェッショナルな品質のアプリに仕上がりました。このテクノロジーの選択により、将来のメンテナンスも簡素化されました。新しい機能を一度追加すれば両方のプラットフォームに実装できるため、継続的なコストを低く抑えることができます。

Doggie Bus は、確かな技術的基盤を土台に、さらなる規模拡大に向けて準備を進めています。Azure のクラウドネイティブ アーキテクチャのおかげで、Troy が思い描くフランチャイズ構想に合わせて、さらなる車両や拠点も無理なく増やせます。同じアプリとバックエンドをほとんど変更することなく拡張できることを見越して、チームはすでに他の都市への展開を模索しています。予約用のウェブポータル (おそらく Blazor WebAssembly を使用して構築) の開発も計画していますが、既存の .NET コードの大部分を再利用できる見通しです。.NET なら、拡張性は後づけではなく標準搭載されています。プラットフォームの高い柔軟性により、モバイル、ウェブ、そして将来のプラットフォームも、すべて 1 つのコードベースとスキルセットで展開できます。

これまでの道のりを振り返って、Troy と Mario は、アイデアを現実のものに変えるうえで .NET がいかに力になったかを力説しています。「Mario が私の夢を実現してくれました」と語る Troy は、Doggie Bus に命を吹き込んだテクノロジーと Mario の才能に感謝しています。その言葉を受けて、Mario は、ツールの功績を認め、「.NET は夢を実現してくれます。このプラットフォームのおかげで、小規模なチームながらも、当初の期待を上回るアプリに仕上げることができました」と語っています。続けて Mario はこう語ります。「これは単なるモバイル アプリではありません。成長に対応するように構築された、スケーラブルなクラウド接続プラットフォームです。.NET MAUI と Azure を使用することで、無駄がなく、効率的で、拡張に対応するように設計された、未来志向の基盤を構築できました」その言葉を如実に物語っているのが Doggie Bus の成功、すなわち飼い主の幸せ、ビジネスの繁栄、そして成長の基盤です。.NET が運転席に陣取るこの犬版 Uber は、自信に満ちて出発しました。そして旅はまだ始まったばかりです。

.NET と Microsoft を使用すれば、ただソフトウェアを構築できるだけでなく、自分のビジョンを現実世界のソリューションに具現化することができます。まさに、それが夢を現実に変える場になっているのです。

Mario DeLuca、CEO DeLuca Technologies

準備はできましたか?

このステップ バイ ステップ チュートリアルは、あなたのコンピューターで .NET MAUI を実行するのに役立ちます。

作業を開始