В середине 2022 вышла в свет новая платформа для мобильной разработки от Microsoft. Она называется MAUI (.NET Multi-Platform App UI). Или в вольном переводе на Русский, «кросс-платформенный пользовательский интерфейс». Таки-да! Не одним лишь ChatGPT развивается корпорация Microsoft.
Короче и ближе к делу, основная особенность в том что платформа MAUI позволяет создавать приложения сразу для всех типов мобильных устройств – Android, iOS, Tizen, Windows. Включая даже телевизоры, планшеты и прочее подобное. Иначе говоря - пишем программный код один раз, компилируем его, и получаем 4 готовых приложения для разных устройств.
.NET MAUI не является чем-то обособленным, а наследует платформу Xamarin, развивая её в хорошем смысле. В общем и целом, платформа предлагает достаточно большой инструментарий для мобильной разработки. Который будет особенно удобен тем программистам, которые привыкли к языку C# и платформе .NET.
Что, мобильная разработка на C#?! 🟣
Если ты дорогой читатель уже знаком с C# / .NET, то знаешь что этот язык в целом ориентирован на Windows-среду или разработку игр на Unity. Да конечно, ещё есть Xamarin и Mono, но в целом это скорее попытка догнать, а не перегнать конкурентов из платформ для мобильной разработки. Поэтому, тем более удивителен и необычен разворот известной компании в эту сторону.
То есть ещё раз, приложение для Android, iOS, Tizen и Windows пишется "одним" программным кодом на C# с привычными .NET-библиотеками. Для вёрстки интерфейса используется XAML. А при компиляции мы получаем несколько работающих приложений под разные устройства.
С технической точки зрения - для запуска программного кода из C# на конкретных устройствах, используется вечная классика трансляции "на лету" из C# в промежуточный программный код CIL. Иными словами, код написанный на C# транслируется в условный промежуточный язык, который потом адаптируется под конкретную платформу и превращается в платформенно-ориентированный язык.
Подобный подход конечно работает чуть медленней, но в целом имеет достаточно много преимуществ. И в конечном итоге, задержки на реальных устройствах из-за такой "трансляции" составляют не более 0.5-1 секунды в моменты запуска приложения или каких-то специфических программных операций.
MAUI в применении на личном опыте 📱
В последние 2 месяца мне довелось хорошенько протестировать эту технологию. С одной стороны MAUI выглядит достаточно сыро, и что-то попросту не работает. Так же жирный минус в совсем небольшом количестве элементов интерфейса — всего порядка 20 разных контроллов на все случаи жизни.
С другой же стороны, этому проекту пока только год. Для такого короткого периода результаты впечатляют. Кросс-платформенное приложение действительно создаётся и прекрасно работает на разных устройствах, как на физических так и на виртуальных.
Отдельным личным юмором была встреча с интерактивной 3D-картой. Которая, как оказалось, работает на всех устройствах кроме Windows. Что с моей точки зрения является ироничным, ведь платформа использует родной для Windows язык C#. Другая похожая ситуация - функции работы с картинками и "сжимания" их размера так же недоступны в Windows-среде, а работают только на Android и iOS устройствах. В общем, определённо им ещё есть над чем поработать.
С чего начать, что почитать 🔗
Вот тут можно почитать официальную документацию. Для использования нужна свежая Visual Studio, а так же .NET6 / .NET7. По железу рекомендую от 12Гб. памяти и SSD в качестве основного диска, как набор минимальных параметров. Но если не запускать эмуляторы мобильных устройств, то можно стартануть и на более простой машине.
К слову о низком старте в мобильной разработке. Для новичков, как мне кажется, это может подойти просто замечательно. Один язык, одна платформа - и вся линейка работающих приложений.
Преимущества MAUI перед созданием мобильных приложений на разных языках 📝
Создание приложений для разных мобильных платформ может быть довольно трудоемким процессом, требующим значительных временных и финансовых затрат. MAUI же предоставляет возможность создавать приложения для всех типов мобильных устройств на основе одного единого кода на языке C# и разметки XAML. Это существенно упрощает разработку и экономит время и ресурсы, которые можно потратить на дальнейшее улучшение и расширение приложения. То есть, нужно написать приложение один раз, а не 3 раза под разные типы устройств (Android, iOS, Windows).
Кроме того, MAUI позволяет разработчикам создавать мобильные приложения, которые имеют одинаковый пользовательский интерфейс на всех платформах. Это значительно улучшает опыт использования пользователей и упрощает работу по тестированию и обслуживанию приложения.
Еще одним преимуществом использования MAUI является возможность интеграции с другими продуктами и сервисами Microsoft. Например, можно использовать Azure для хранения и управления данными, а также для мониторинга и отслеживания ошибок в приложении.
C# - простой язык для новичков в мобильной разработке 🤓
C# является одним из самых популярных языков программирования в мире и используется для создания множества приложений. Стабильно C# входит в ТОП-5 самых используемых языков программирования. Он ориентирован на современное объектно-ориентированное программирование и предоставляет множество инструментов и библиотек для разработки приложений.
C# также считается одним из самых простых языков для изучения и понимания. Это может быть особенно важно для новичков, которые только начинают свой путь в мобильной разработке. Использование MAUI и C# может быть отличным способом для начинающих разработчиков, чтобы быстро освоить основы создания мобильных приложений.
Сообщество разработчиков активно развивает новую платформу 👨💻
MAUI появился недавно, но уже успел получить широкую поддержку сообщества. В процессе изучения платформы я нашел несколько достаточно больших форумов, где зависают энтузиасты и просто интересующиеся. Это даёт надежду, что в будущем можно ожидать еще большего роста и развития этой платформы, а также появления новых инструментов и функций для создания мобильных приложений.
Хотя MAUI и достаточно свеж, но уже сейчас можно найти достаточно большое количество качественной документации. Но при этом не стоит и удивляться "странному" поведению платформы в различных нестандартных ситуациях. Не стесняйтесь экспериментировать и задавать вопросы на различных форумах. Люди с удовольствием отвечают и делятся личным опытом изучения новой технологии.
🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥
🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀
P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка