Doggie Bus: как один разработчик создал "Uber для собак", используя .NET MAUI и Azure
Клиент
Doggie Bus
Продукты и службы
.NET MAUI
ASP.NET
Azure
Промышленность
Транспортировка
Размер организации
Малый (от 1 до 100 сотрудников)
Страна/регион
Соединенные Штаты Америки
Doggie Bus — это стартап из Нового Орлеана, основанный Троем Берджероном (Troy Bergeron) и предлагающий уникальную услугу "Uber для собак": мобильное приложение, которое позволяет владельцам домашних животных планировать безопасные и удобные поездки для своих собак на дневную передержку, к ветеринару и не только. Трой, всю жизнь обожающий собак, лично управляет автобусом Doggie Bus и относится к каждой собаке как к члену семьи. Трой стремится сделать транспортировку домашних животных такой же простой и надежной, как вызов такси, чтобы дать владельцам уверенность в безопасности своих питомцев.
Чтобы реализовать эту идею, Трой объединился с Марио ДеЛукой (DeLuca Technologies), опытным инженером-программистом и ранним пользователем .NET MAUI (а до того — Xamarin). Вместе они создали кроссплатформенное мобильное приложение, которое ничем не уступает лучшим сервисам-агрегаторам такси, но предназначено для владельцев домашних животных.



Реальные люди, настоящая страсть
В начале 2024 года приложение Doggie Bus было выпущено на iOS и Android, и владельцам домашних животных стало намного проще организовать поездки своих любимцев. В основе этой услуги лежит личное стремление Троя обеспечить безопасность домашних животных. Трой лично знакомится с каждым новым клиентом (человеком и собакой) и заслуживает их доверие через прозрачность: владельцы могут отслеживать Doggie Bus в реальном времени на карте и получать уведомления каждый раз, когда собаку забирают или высаживают.
Владельцы домашних животных, любящие своих питомцев, как родители — детей, по достоинству ценят такую прозрачность. Приложение обеспечивает душевное спокойствие владельцам собак, позволяя в любой момент знать, где находится их "мохнатая детка", и не сомневаться, что она в заботливых руках.
С технической стороны главным героем стал Марио. Как опытный разработчик на C#, он был в восторге от возможности разрабатывать Doggie Bus от начала до конца на .NET. Это позволило ему в одиночку создать отлаженное, собственное мобильное взаимодействие на обеих платформах. Партнерство работало безупречно: Трой предоставлял глубокие знания предметной области и постоянную обратную связь как первый пользователь приложения (он использовал его в режиме администратора для управления своим ежедневным маршрутом), а Марио в это время быстро дорабатывал функции в ходе итеративного процесса. Оба стремились сделать сервис "настолько простым, что и собака могла бы им пользоваться," как любит шутить Трой.
Наш сервис должен быть настолько простым, что даже собака могла бы им пользоваться"
Вместе лучше — .NET MAUI поможет решить проблему
Задача: компании Doggie Bus нужны были высококачественные мобильные приложения на двух платформах без удвоения усилий. Также требовалась связь в реальном времени (для отслеживания поездок) и удобный интерфейс с плавным взаимодействием, чтобы завоевать доверие пользователей. Поскольку компания представляет собой небольшой стартап, все это нужно было реализовать в условиях ограниченного времени и бюджета.
Решение .NET: Марио выбрал для разработки мобильного приложения платформу .NET MAUI, что позволило ему создавать версии iOS и Android на основе единого программного кода на C#. Это решение сразу же вдвое сократило время и стоимость разработки, так как одна база кода создает два приложения. "Платформа .NET MAUI позволяет повторно использовать более 90 % программного кода на разных платформах. Такая эффективность позволяет нам работать быстрее, сократить затраты на обслуживание и обеспечить согласованность пользовательского взаимодействия на iOS и Android," добавляет Марио. Платформа .NET MAUI обеспечила собственную производительность и гибкость, не требуя большой команды разработчиков. Основные аспекты решения:
- Унифицированная база программного кода приложения. Программный код приложения Doggie Bus является кроссплатформенным примерно на 90 %. Основные функции (макеты пользовательского интерфейса, логика поездок, модели данных) были написаны один раз на .NET и работают собственно как на iOS, так и на Android. Лишь несколько фрагментов потребовали специфических настроек для платформ (например, пользовательская отрисовка карты для каждой ОС, обеспечивающая плавную анимацию значка автобуса). Такой подход с использованием единой базы программного кода обеспечивает паритет функциональных возможностей и упрощает обслуживание.
- Серверная часть на платформе Azure. Мы разработали облачный сервер с использованием ASP.NET Core и Azure для обработки аутентификации, планирования и хранения данных. Используя Azure SignalR, приложение обеспечивает данные в реальном времени: пока автобус едет, его GPS-координаты отправляются в облако и мгновенно передаются владельцам домашних животных, позволяя видеть движение автобуса на карте. Все данные (расписания, профили домашних животных, карты прививок) сохраняются в базе данных SQL Azure с помощью Entity Framework. Серверная часть также интегрируется с Apple и Google для упрощения входа. Этот полный стек Microsoft (приложение MAUI + службы Azure) обеспечивает надежность и масштабируемость с первого дня.
- Современные инструменты и библиотеки разработки. Марио использовал богатую экосистему .NET для ускорения разработки. Он взял готовые компоненты пользовательского интерфейса и эффекты из набора инструментов .NET MAUI Community Toolkit, а также использовал открытые библиотеки для таких задач, как поток операций проверки подлинности. Функции повышения производительности, такие как горячая перезагрузка XAML, позволили быстро вносить нужные изменения в интерфейс, а GitHub Copilot играл роль напарника в парном программировании, генерируя типовой программный код и ускоряя разработку. В результате Doggie Bus прошло путь от концепции до полнофункционального, отлаженного приложения гораздо быстрее по сравнению с традиционной разработкой силами нескольких отдельных групп.
Почему .NET MAUI? Помимо эффективности работы на разных платформах, Doggie Bus выбрал .NET за его качество работы и объединенную экосистему. Приложение использует компиляцию заранее (AOT) и потому работает "как по маслу" даже на старых телефонах Android. Поскольку C# используется для разработки и клиентской, и серверной частей, команда может делиться кодом и навыками на протяжении всего проекта. Например, модели данных определяются один раз и повторно используются в клиентской и серверной частях, что снижает количество ошибок и несоответствий.
Марио рассматривал и другие платформы, но, имея опыт успешной разработки приложений с Xamarin, он доверял .NET MAUI, зная, что тот позволит достигнуть результатов собственного качества. "На мой взгляд, тут двух мнений быть не может," — говорит он о выборе MAUI. Такой унифицированный подход избавил компанию от необходимости нанимать отдельных разработчиков для iOS и Android и изучать новые языки, а это огромное преимущество для малого бизнеса. Даже такие задачи, как реализация карт в реальном времени и вход с помощью соцсетей, легко решились благодаря гибкости .NET и богатому выбору библиотек.
Когда возникали препятствия (например, при тонкой настройке анимации движущегося маркера карты), .NET позволял находить индивидуальные решения, не заходя в тупик. Вкратце, .NET предоставляет все необходимое на одной платформе, что делает разработку быстрее, дешевле и приятнее для команды Doggie Bus.
.NET MAUI помог нам сократить затраты на разработку более чем на 50 %. С единой базой программного кода и общей логикой серверной части мы смогли создать высокопроизводительные собственные приложения для iOS и Android без удвоения объема работы"
Результат внедрения и перспективы на будущее
На радость владельцам домашних животных: с момента запуска приложение Doggie Bus предоставило клиентам совершенно новый способ управления транспортировкой домашних животных. Заказать поездку теперь можно всего за несколько секунд в приложении, заменившем старые способы, такие как телефонные звонки или текстовые сообщения. Несколькими касаниями владелец животного может запланировать поездку — никакого бюрократизма и никаких цепочек сообщений. Приложение отправляет автоматические уведомления в основные моменты (когда автобус приближается, когда вашу собаку забирают и когда высадка завершена), так что владельцам не нужно беспокоиться или гадать.
Пользователям особенно нравится отслеживание в реальном времени: смотреть, как значок Doggie Bus едет по карте — и успокоительно, и забавно. Трой отмечает: "Я получаю много комплиментов по поводу уведомлений". Многие пользователи хвалят сервис, особенно подчеркивая удивительную простоту использования. Такое удобство и прозрачность способствовали тому, что местные владельцы домашних животных приняли сервис "на ура ". Многие клиенты теперь бронируют поездки на Doggie Bus несколько раз в неделю, уверенные в том, что это надежно и безопасно для их питомцев.
Решение на базе .NET немедленно улучшило работу компании Троя. Создание расписаний и ведение записей стали на 100 % цифровыми — "все в одном приложении, нет бумажной волокиты," как говорит Трой. Больше никаких планшетов или заполняемых вручную журналов; администраторские функции приложения позволяют Трою управлять маршрутом каждого дня, проверять профили собак и карты прививок, а также обрабатывать платежи из единого центра.
Это позволило упорядочить работу компании и снизить количество ошибок. Трой может сосредоточиться на заботе о собаках, а не на заполнении бумаг. С финансовой точки зрения использование .NET сэкономило компании целое состояние в плане затрат на разработку. Создание отдельных собственных приложений потребовало бы двух разработчиков или дорогостоящего аутсорсинга, что было недоступно по финансовым соображениям. Вместо этого один разработчик создал весь продукт целиком.
По оценкам Марио, выбор .NET MAUI "значительно сократил затраты на разработку", что было критично для запуска Doggie Bus. Несмотря на ограниченный бюджет, разработчики обеспечили окончательной версии приложения отличную проработку и профессиональное качество, сопоставимое с продуктами гораздо более крупных конкурентов. Выбор технологии также упростил дальнейшее обслуживание: новые функции можно добавлять один раз и они будут доступны на обеих платформах, что помогает ограничивать накладные расходы.
Благодаря основательному техническому фундаменту приложение Doggie Bus готово к масштабированию. Облачная архитектура на Azure с легкостью поддержит дополнительные транспортные средства и новые расположения, что соответствует планам Троя: он собирается открыть филиалы по предоставлению этой услуги. Компания уже изучает возможность расширения сервиса на другие города, зная, что то же самое приложение и серверную часть можно расширить с минимальными изменениями. Она также планирует создать веб-портал для бронирования (вероятно, на базе Blazor WebAssembly), и большую часть существующего кода .NET можно повторно использовать для этого. С .NET возможность расширения изначально заложена в продукт, а не добавляется задним числом. Универсальность платформы позволяет приложениям для мобильных устройств, Интернета и любых других будущих платформ использовать одну и ту же базу программного кода и набор навыков разработчиков.
Оглядываясь на пройденный путь, Трой и Марио подчеркивают, как .NET помог им превратить идею в реальность. "Марио осуществил мою мечту," — говорит Трой с благодарностью за технологии и таланты, которые позволили реализовать Doggie Bus. Марио, в свою очередь, подчеркивает, что у него в распоряжении были хорошие инструменты: ".NET воплощает мечты в реальность," — говорит он, подчеркивая, что платформа помогла небольшой группе разработчиков создать приложение, превзошедшее их первоначальные ожидания. Марио продолжает: "Это не просто мобильное приложение — это масштабируемая, подключенная к облаку платформа, рассчитанная на дальнейший рост. .NET MAUI и Azure помогли нам создать основу, готовую к будущему: компактную, эффективную, с изначально заложенной возможностью расширения". Успех Doggie Bus — счастливые владельцы домашних животных, процветающий бизнес и перспективы роста — служит доказательством этому. С .NET за рулем этот "Uber для собак" уверенно выезжает на дорогу, и путешествие только начинается.
С помощью .NET и Microsoft вы не просто программируете — вы воплощаете свое видение в реальные решения. Здесь мечты становятся реальностью".
Готовы приступить?
Наше пошаговое руководство поможет вам запустить .NET MAUI на вашем компьютере.