Создание мобильных интерфейсов - Flutter против родного Android SDK, Применимость и сравнение стека языков и технологий

Пользовательский интерфейс мобильного приложения является важной частью системы. Ландшафт разработки приложений кишит технологиями и решениями для создания пользовательских интерфейсов. Наряду с собственными разработками, существует множество кроссплатформенных, веб-, гибридных и даже не кодированных инструментов для создания интерфейсов приложений. По количеству активных устройств в мире Android является бесспорным лидером на рынке.

Сегодня мы ставим разработку нативных приложений для Android против (также) собственной, совершенно новой, кроссплатформенной платформы Google.  

Флаттер против родного Android

Итак, вы, наверное, уже слышали о Flutter - последнем SDK для разработки кроссплатформенных приложений . По словам Google, его гордого родителя, это полный набор инструментов и решений для разработки потрясающих мобильных приложений. Идея использования единого технологического стека для создания пользовательских интерфейсов для различных мобильных платформ (в наши дни - только для iOS и Android) настолько же интересна для разработчиков, сколь и привлекательна для компаний, желающих предоставить своим клиентам лучшие мобильные приложения. Поскольку разработка собственных мобильных приложений становится все более дорогой, для рынка естественно искать экономически эффективные альтернативы. Интернет любит сравнения, поэтому давайте сопоставим Flutter с его старшим братом - Android. 

Стоило ли Google создавать конкурентоспособный инструмент для создания пользовательского интерфейса с полностью установленным 13-летним SDK? Давайте разберем их немного и посмотрим, о чем они. 

Новые против опытных

Выбор между родным Android и Flutter не прост. Ни одно из них не является универсальным решением. Было бы невозможно предложить одно или другое без предварительного анализа требований конкретного проекта. Native Android имеет преимущество по возрасту, а вместе с Kotlin предлагает практически неисчерпаемый диапазон решений даже самых сложных проблем. Написание собственного приложения с Kotlin дает вам доступ к последним улучшениям аппаратного обеспечения Android, совместимости с различными устройствами на базе Android и высочайшему достижимому качеству и производительности.  

Кроссплатформенный Flutter соблазняет обещанием получить два (Android и iOS) нативных приложения, написав одну базу кода Dart для обоих приложений. Flutter должен стать эффективным инструментом построения пользовательского интерфейса для относительно простых проектов, особенно полезных для разработки приложений типа «извлечение и отображение», где мобильное приложение взаимодействует с сервером для выполнения важных действий пользователя. Добавление привлекательности - это собственный механизм рендеринга Flutter, с помощью которого можно добиться высокого качества пользовательского интерфейса, что делает Flutter пригодным для использования в социальных сетях или мобильных приложениях для управления данными. Flutter имеет солидный набор инструментов для создания пользовательского интерфейса для создания красивых, быстрых и плавных макетов. 

Родной Android SDK

Android SDK , пожалуй, самый популярный в мире комплект для разработки мобильных приложений. С момента его концепции в 2007 году, он постоянно развивался и совершенствовался, чтобы облегчить поддержку большого разнообразия устройств и удовлетворить растущие потребности и ожидания рынка. В течение 10 лет она (официально) была исключительно платформой на основе Java, но в 2017 году получила серьезное обновление. На Google I / O 2017 года Kotlin был объявлен официально поддерживаемым языком программирования Android, а год спустя стал рекомендуемым выбором для разработки мобильных приложений. 

Реакция аудитории на мероприятие отражает реакцию всего сообщества, так как после десятилетия приложений, основанных исключительно на Java, глоток свежего воздуха в Android SDK давно назрел.

Флаттер SDK

Первоначальный выпуск Flutter совпадает с ростом популярности Kotlin. Google выпустил свой собственный кроссплатформенный UI SDK, обещая «Красивые нативные приложения в рекордно короткие сроки», с талантом и тщательной подготовкой. Предложение технического гиганта на растущем рынке кроссплатформенных технологий было встречено с большим энтузиазмом. Команда Google Flutter позаботилась о том, чтобы они представили не что иное, как новаторскую и передовую технологию для всех. С официального запуска 2017 года Flutter удалось завоевать популярность у современного кроссплатформенного лидера - React Native от Facebook. 

Теперь рассмотрим языки обеих платформ - Kotlin и Dart. Давайте посмотрим, что сделал переход с Java на Android, и действительно ли Flutter выиграет от внедрения нового языка программирования в среду разработки мобильных приложений. 

Котлин против Явы

В конце концов, Java - это язык превосходной универсальности. Он позволяет создавать бэкэнды, веб-интерфейсы, собственные мобильные и настольные приложения, имеет обширную поддержку сообщества и ряд сторонних библиотек. Джексон, Даггер или Джода Тайм - это всего лишь несколько примеров решений, известных и используемых во всех видах проектов. 

Внедрение Kotlin в нативную среду разработки Android имело огромный успех, в основном благодаря его практически полной совместимости с Java и тому факту, что он ускорил и упростил реализацию нативных мобильных приложений для Android. 

Лучший выбор

К настоящему времени Kotlin уже зарекомендовал себя в качестве языка с лучшим выбором в родной экосистеме Android, поэтому нет смысла подробно останавливаться на Java. Если вы разрабатываете приложение в 2020 году, вы все равно будете использовать Kotlin. Если вы добавляете новые функции к существующему программному обеспечению, написанному на Java, это также Kotlin. 

Для меня переезд в Котлин был плавным и приятным переходом . Интеллектуальная интеграция с Android SDK и красиво разработанный синтаксис позволяют мне писать более подробный и короткий код. Каждое поле по умолчанию ненулевое, что уменьшает количество неожиданных ошибок нулевого указателя. 

Шаблоны делегирования встроены в грамматику языка. Классы хранения данных могут быть объявлены явно, и компилятор позаботится об общем шаблонном коде для доступа к данным. Функции являются приоритетными, что делает внедрение функциональных методов программирования довольно простым. 

Помимо стандартного переключения потоков, Kotlin предлагает сопрограммы - асинхронный / ожидающий шаблон. Это дает программисту возможность приостановить выполнение определенных фрагментов кода, не блокируя поток. Это также изменяет синтаксис асинхронного кода, устраняя необходимость в обратных вызовах и позволяя выполнять программы сверху вниз, как в случае синхронных. 

Дротик и флаттер

Введение нового языка для Flutter стало неожиданностью. Хотя Дарт существует с 2011 года, у него (изначально) был смешанный прием. Выбор командой Google Dart в качестве основы для создания приложений Flutter был рискованным решением, но они подошли к нему с должной осмотрительностью. Программа Flutter Favorites была введена командой Flutter для поощрения быстро растущего сообщества создавать и поддерживать библиотеки, расширяющие функциональность языка и оптимизирующие работу с Dart. Эта инициатива продвигает и поощряет лучшие решения, размещенные на сайте pub.dev . Количество доступных пакетов продолжает расти, и спокойствие разработчиков вместе с ним.  

Дарт это современный, хорошо продуманный язык. Он строго типизирован, с выводом типа, позволяющим использовать синтаксис типа JavaScript. Он объектно-ориентирован, с объектами, наследуемыми от класса Object , как в Java, но также допускает функции верхнего уровня, которые не должны быть привязаны к объектам.

То же самое касается переменных. Функции рассматриваются как первоклассные, поэтому легко использовать функциональные концепции. Дарт также предлагает некоторые синтаксические интерпретации, такие как каскадная запись, которая позволяет записывать последовательности операций над одним объектом как единое плавное выражение. Код может быть повторно использован с Mixins, упрощая иерархию классов. Чтобы решить проблему нулевой безопасности, используются операторы, поддерживающие нуль. Они освобождают программиста от проверки на нулевые значения и определения запасных данных.

Поток безопасности

Dart поддерживает асинхронность с шаблоном async / await, что делает написание асинхронного кода похожим на синхронное программирование. Результаты могут обрабатываться как Futures, так и Streams, поэтому нет необходимости в таких библиотеках, как ReactiveX, для простых асинхронных задач (вы все равно можете использовать RxDart, если вам это нужно). Еще одна важная вещь в асинхронности Dart - это однопоточная модель исполнения. По умолчанию весь код выполняется в основном потоке пользовательского интерфейса, и каждая операция async / await приостанавливается без блокировки потока. Для выполнения тяжелых вычислений, которые могут сильно нагружать процессор, можно использовать изолятор . Это отдельный поток выполнения, который не разделяет память с другими изоляторами, Таким образом, безопасность потоков является приоритетом в Dart , что делает написание асинхронных задач простым и понятным. 

Нижняя граница

Котлин и Дарт полезны и довольно просты. Они используют современный синтаксис, освобождающий программистов от бремени нулевой проверки и сложного управления потоками. Dart немного проще, чем Kotlin, последний - скорее швейцарский армейский нож разработчиков приложений для Android. Kotlin улучшает нативную разработку с помощью ряда синтаксических обработок и расширенных возможностей асинхронности с сопрограммами.

Родной против кроссплатформенный

Нативные приложения для Android, разработанные с использованием Kotlin, предлагают современный пользовательский опыт и являются бескомпромиссным выбором по качеству и производительности. Если ваш бизнес нуждается в передовом мобильном опыте, будь то для потребителей или для внутренних процессов, настоятельно рекомендуется собственная разработка. Это особенно актуально для крупных, устоявшихся предприятий, которым необходимо первоклассное мобильное приложение без проблем, чтобы ошеломить рынок и затмить конкуренцию. 

Контакты

+38 (093) 647-37-31

pavel.keepwarning@gmail.com

Ришельевская, 33, Одесса, Украина

Блог

Оставьте заявку
и мы Вам перезвоним