Dogie Bus:一位開發人員如何透過 .NET MAUI 和 Azure 打造「狗狗優步」

Dogie Bus 標誌

客戶
Doggie Bus

產品與服務
.NET MAUI
ASP.NET
Azure

產業
交通

組織規模
小型 (1-100 名員工)

國家/地區
美國

Dogie Bus 是一家由 Troy Bergeron 所設立的紐奧良新創公司,提供獨特的「狗狗優步」服務 – 該行動應用程式可讓寵物主人為狗狗安排日托中心、獸醫等安全、方便的接送服務。Troy 是終身愛狗人士,他會親自駕駛 Doggie Bus 專車,像家人一樣對待每隻小狗。他的目標是讓寵物運輸變得如同叫車共乘一樣簡單且值得信任,讓主人完全放心。

為了讓此願景現實,Troy 與 Mario DeLuca (DeLuca Technologies) 合作,後者是資深軟體工程師,也是 .NET MAUI (以及之前的 Xamarin) 的早期採用者。他們一起建置了跨平台的行動應用程式,媲美頂級共乘體驗,但專為寵物家長量身打造。

儀表板螢幕擷取畫面
安排接送螢幕擷取畫面
即時追蹤 Doggie Bus 位置

真正的人,真正的熱情

在 2024 年初,Dogie Bus 在 iOS 和 Android 上推出,讓寵物主人能輕鬆安排接送。Troy 對寵物安全的個人承諾是服務的核心。他會見每個新顧客 (人類和狗),並透過透明度提供信任:主人可在地圖上即時追蹤 Dogie Bus,並在每次上車或上車時收到通知。

寵物家長 (通常像任何家長一樣關切保護) 喜歡這種可見度。此應用程式讓他們安心,隨時知道他們的「毛孩」在哪裡,並且得到悉心照料。

就技術方面來說,Mario 是幕後英雄。身為長期的 C# 開發人員,他非常高興能在 Doggie Bus 中端到端地使用 .NET。這讓他能夠獨自在兩個平台上創造出精良的原生行動體驗。合作關係運作順暢:身為應用程式的第一位使用者 (透過系統管理模式執行他的日常工作),Troy 貢獻了深入的領域見解和持續的意見反應,而 Mario 則快速地逐一查看各項功能。這兩者都是由讓服務變得「這麼簡單,連狗狗都辦得到」的任務所驅動,如同 Troy 喜歡開的玩笑一樣。

我們的服務應該「這麼簡單,連狗狗都辦得到」

Troy Bergeron (Doggie Bus 的創辦人、寵物家長及駕駛)

站在 Doggie Bus 前面的 Mario 和 Troy。

一起改善 - 使用 .NET MAUI 解決問題

挑戰:Dogie Bus 需要兩個平台上的高品質行動應用程式,但不需加倍努力。他們還需要即時通訊 (用於即時搭乘追蹤),以及靈活、方便使用的 UI,向使用者灌輸信心。作為一家小型新創公司,他們必須在有限的時間和預算內交付所有任務。

.NET 解決方案:Mario 為行動應用程式選擇了 .NET MAUI,讓他能從單一 C# 程式碼基底瞄準 iOS 和 Android。這個決策會立即將開發時間和成本削減一半,因為一個程式碼基底會產生兩個原生應用程式。「使用 .NET MAUI,我們能夠跨平台共用超過 90% 的程式碼。該效率可讓我們更快速地移動、減少維護額外負荷,以及在 iOS 和 Android 上提供一致的體驗。」Mario 補充說明。.NET MAUI 架構提供所需的原生效能和彈性,而不需要大型團體。解決方案的主要層面包括:

  • 統一應用程式程式碼基底:90% 的 Dogie Bus 應用程式程式碼會跨平台共用。核心功能 (UI 版面配置、乘車邏輯、資料模型) 在 .NET 中撰寫一次,並以原生方式在 iOS 和 Android 上執行。只有幾個部分需要平台特定的調校 (例如,每個作業系統上的自訂地圖轉譯器可順暢地將小型車輛圖示做成動畫)。這種單一程式碼基底方法可確保功能同位和簡化維護。
  • Azure 支援的後端:小組透過 ASP.NET Core 和 Azure 建置了雲端後端,以處理驗證、排程和資料儲存。使用 Azure SignalR,應用程式可達成即時更新:當 Troy 駕車時,客車的 GPS 位置會傳送到雲端,並立即推送到寵物主人的手機,這樣他們就能在地圖上即時看到車輛移動。所有資料 (排程、寵物設定檔、疫苗接種記錄) 會透過 Entity Framework 儲存在 Azure SQL Database 中。後端也會與 Apple 和 Google 整合,以便輕鬆登入。此端對端 Microsoft 堆疊 (MAUI 應用程式 + Azure 服務) 從第一天起就確保可靠性和可擴縮性。
  • 新式開發工具與程式庫:Mario 利用了豐富的 .NET 生態系統來加速開發。他針對現成的 UI 元件和效果使用了 .NET MAUI 社群工具組,並對驗證流程等事項利用了開放原始碼程式庫。XAML Hot Reload 等生產力功能允許快速 UI 調校,GitHub Copilot 則做為 AI 配對程式設計人員,產生樣板程式碼並加速開發。結果:相較於傳統的多小組開發,Dogie Bus 在很短的時間內從概念,發展成功能豐富、精良的應用程式。

爲什麽選擇 .NET MAUI?除了跨平台效率之外,Doggie Bus 還因為效能和統一生態系統而選擇了 .NET。此應用程式使用提前 (AOT) 編譯,因此即使在較舊的 Android 手機上,也能以「極為流暢」的效能執行。在用戶端和伺服器上使用 C#,團隊可以在整個專案中共用程式碼和技能。例如,資料模型只需定義一次,即可在兩端重複使用,從而減少錯誤 (Bug) 和不符情況。

Mario 曾短暫地考慮過其他架構,但使用 Xamarin 交付了成功的應用程式後,他信任 .NET MAUI 提供原生品質的結果。談到選擇 MAUI 時,他表示:「在我看來,這是理所當然的」。此統一方法排除了雇用個別 iOS/Android 開發人員和學習新語言,這對小型公司來說是一大優勢。即使像實作即時地圖和社交登入的挑戰,也已利用 .NET 的彈性和程式庫順利解決。

每當發生困難時 (例如微調移動中的地圖圖釘動畫),.NET 都允許自訂解決方案,而不會陷入死胡同。簡短來說,.NET 在一個平台上提供所需的一切,讓 Doggie Bus 團隊的開發工作更快速、更實惠、更愉快。

.NET MAUI 協助我們降低了 50% 以上的開發成本。使用單一程式碼基底和共用後端邏輯,我們提供了 iOS 和 Android 適用的高效能原生應用程式,而不需加倍工作"

Mario DeLuca, DeLuca Technologies 執行長

影響和前景

取悅寵物主人:自從推出以來,Dogie Bus 改變了客戶管理寵物交通的方式。在應用程式中預訂乘車現在只需要幾秒鐘的時間,取代過去透過通話或文字的方式。只需點選幾下,寵物主人即可安排接送 - 不需要任何文書工作或來回奔波。此應用程式會在重要時刻 (當車輛接近時、接到您的狗狗時,以及完成下車時) 傳送自動通知,讓主人完全不必擔憂。

他們特別喜愛即時追蹤:在地圖上即時觀看 Doggie Bus 圖示移動,既令人安心又有趣。Troy 表示:「我收到了很多關於通知的讚美」,許多使用者告訴他這項服務非常容易使用。這種便利性與透明度促使了當地寵物主人大力採用。目前有許多顧客在例行公事中一週多次預訂 Doggie Bus 接送,相信這對他們的小狗來說很可靠又安全。

對於 Troy 的營運來說,.NET 解決方案帶來了立即的改善。所有排程和記錄保存都變成 100% 數位:「一切盡在一個應用程式中,沒有紙本記錄」Troy 如此表示。不再有剪貼簿或手動記錄;應用程式的系統管理功能可讓他管理每天的路線、檢查狗狗設定檔和疫苗接種記錄,以及在一個地方處理所有付款。

這可簡化作業並減少錯誤。Troy 可以專注於狗狗的照護,而不是書面工作。在財務方面,使用 .NET 為公司節省了一大筆開發成本。建立個別的原生應用程式需要兩名開發人員或昂貴的外包,這是無法實現的。反而是由一名開發人員交付整個產品。

Mario 評估選擇 .NET MAUI 可「大幅削減開發成本」,這對於 Doggie Bus 的推出極為重要。儘管預算有限,最終的應用程式仍達到了與更大競爭對手相當的專業精良品質。技術選擇還簡化了未來的維護:新功能只需新增一次,即可出現在兩個平台上,讓持續成本保持低廉。

多虧其穩固的技術基礎,Dogie Bus 已準備好擴大規模。Azure 上的雲端原生架構可以輕鬆地支援更多車輛或新位置,與 Troy 特許經營該服務的計劃一致。團隊已經探索擴展到其他城市,並知道可以在最少變更的情況下延伸相同的應用程式和後端。他們也會規劃用於預訂的入口網站 (可能是使用 Blazor WebAssembly 建置),而且大部分現有的 .NET 程式碼都可以重複使用。使用 .NET 時,擴充是內建的,而不是事後的想法:平台的多功能性意味著行動、網路和未來平台都可以共用一個程式碼基底和技能。

回顧到目前為止的旅程,Troy 和 Mario 強調 .NET 如何讓他們能夠將想法付諸實現。Troy 表示「Mario 讓我的夢想成真。」由衷感謝讓 Doggie Bus 誕生的技術和人才。而 Mario 則稱讚這些工具:他表示「.NET 讓夢想成真」,並注意到平台讓小型團體能夠交付一款超出他們最初預期的應用程式。Mario 繼續表示:「這不只是行動應用程式:它是為了成長而打造的可調整雲端連線平台。透過 .NET MAUI 和 Azure,我們建立了展望未來的基礎,這個基礎很精實、有效率且為了擴充而設計」。Doggie Bus 的成功 (快樂的寵物主人、生意興隆,以及成長的基礎) 就是證明。在駕駛座中使用 .NET,這套「狗狗優步」正滿懷信心地上路,旅程才剛開始。

透過 .NET 和 Microsoft,您不僅可建置軟體,還可將您的願景轉化為現實世界的解決方案。這是夢想成真的地方。」

Mario DeLuca, DeLuca Technologies 執行長

準備開始了嗎?

我們的逐步教學課程可協助您讓 .NET MAUI 在電腦上執行。

開始使用