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

Как разработчику программного обеспечения, вам знакома эта проблема: уже недостаточно просто разработать приложение для Windows. В наши дни для успешной работы приложения также должны работать на смартфонах Android, устройствах iOS и в веб-браузерах.

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

Что такое Flutter?

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

Для чего используется Flutter?

Flutter в первую очередь используется для разработки приложений для Android и iOS без необходимости писать отдельную кодовую базу для каждой из двух различных платформ. Версии приложений для смартфонов работают на этих устройствах как настоящие нативные приложения. Они компилируются для каждой платформы перед выпуском, поэтому вам не нужен модуль времени выполнения или браузер. Вы можете использовать одну и ту же кодовую базу для создания веб-приложений для браузеров и нативных приложений для Windows, Linux и macOS.

Google использует Flutter для различных модулей Google Assistant и пользовательского интерфейса Google Home Hub. Популярные поставщики услуг электронной коммерции, такие как eBay, Groupon или Alibaba Group, также используют Flutter, чтобы придать своим веб-приложениям и мобильным приложениям единый внешний вид.

На каком языке программирования основан Flutter?

Flutter SDK основан на языке программирования Dart от Google, который изначально задумывался как замена JavaScript. Как и популярный язык веб-скриптов, Dart также запускается как веб-приложение непосредственно в браузере. Приложения Dart могут работать на сервере. При запуске в веб-браузере они реализуются на JavaScript с помощью транскомпилятора Dart2js. Приложения для новой платформы Google Fuchsia разрабатываются на Dart, который по своей структуре похож на такие известные объектно-ориентированные языки программирования, как Java или C #.

Совет

Более подробную информацию о программировании на Dart можно найти в нашем учебнике по программированию на Dart.

Все является виджетом — концепция Flutter

Стратегия Flutter «Все есть виджет» использует объектно-ориентированное программирование для всего, включая пользовательский интерфейс. Интерфейс приложения состоит из различных вложенных виджетов. Каждая кнопка и отображаемый текст — это виджет, который имеет различные свойства, которые можно изменять. Они могут влиять друг на друга и использовать встроенные функции для реакции на внешние изменения состояния. Виджеты включены для всех важных элементов пользовательского интерфейса и соответствуют спецификациям дизайна Android и iOS или обычных веб-приложений. При необходимости вы можете расширить функциональность этих виджетов или создать собственные виджеты, которые можно легко комбинировать с существующими виджетами.

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

Несколько простых примеров Flutter

Разработчики предоставляют множество примеров Flutter, чтобы вы могли сразу же приступить к работе. Простой проект «Hello World» показывает базовую структуру приложения с виджетом и простой функцией void Main(), которая запускает приложение.

// Copyright 2018 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:Flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
	@override
	Widget build(BuildContext context) {
		return MaterialApp(
			title: 'Welcome to Flutter',
			home: Scaffold(
			appBar: AppBar(
				title: Text('Welcome to Flutter'),
			),
			body: Center(
				child: Text('Hello World'),
			),
	),
		);
	}
}

На смартфоне или в симуляторе смартфона приложение отображает строку заголовка «Welcome to Flutter» из элемента AppBar() виджета. Текст «Hello World» появляется в центре экрана под заголовком. Эта открытая область экрана называется во Flutter телом.

Интерактивные примеры показывают приложения Flutter вместе с исходным кодом Dart прямо в браузере. Эти примеры позволяют интерактивно изменять исходный код и наблюдать за эффектами в приложении.

Галерея Flutter — это коллекция примеров приложений, которые показывают, как использовать стандартные виджеты. Как это обычно бывает в проектах с открытым исходным кодом, Google намеренно избегает названий Android и iOS при наименовании категорий элементов пользовательского интерфейса. В результате виджеты получили названия «Material» (в честь языка дизайна Google) и «Cupertino» (в честь штаб-квартиры Apple).

Совет

Команда Flutter поддерживает большую коллекцию примеров приложений и учебников на GitHub, чтобы помочь вам начать разработку на Flutter.

Что вам нужно для разработки приложений с помощью Flutter?

Все библиотеки и инструменты командной строки, необходимые для разработки программного обеспечения с помощью Flutter, находятся в Flutter SDK, который вы можете бесплатно загрузить с официального сайта flutter.dev. Комплект для разработки ПО не имеет собственной графической среды разработки, но вы можете использовать любой текстовый редактор для написания исходного кода. Google рекомендует установить Android Studio для более удобного программирования. Flutter предоставляет плагины для Android Studio, позволяющие легко интегрировать библиотеки и автоматически подсвечивать синтаксис в редакторе. Аналогичные плагины также доступны для среды разработки Microsoft Visual Studio Code.

Примечание

Более подробную информацию об установке и программировании с помощью Flutter вы можете найти в нашем руководстве по Flutter для начинающих.

Плюсы и минусы Flutter

У каждого SDK и языка программирования есть свои преимущества и недостатки. В целом, преимущества Flutter перевешивают достоинства аналогичных систем.

Преимущества Flutter

  • Единая кодовая база для всех основных целевых платформ
  • Язык программирования Dart прост в изучении для тех, кто имеет небольшой опыт программирования
  • Концепция «Все — виджет» открывает широкие возможности
  • Нативные приложения плавно работают на смартфонах
  • Обширные библиотеки готовых к использованию элементов пользовательского интерфейса
  • Простая реализация потоков данных, чтобы пользователи всегда имели актуальную информацию
  • Функция горячей перезагрузки ускоряет тестирование во время разработки

Недостатки Flutter

  • Код немного запутан из-за интеграции виджетов
  • Модули Flutter необходимо обновлять при изменении спецификаций дизайна операционных систем. Поскольку модули встроены в приложение, его тоже необходимо перекомпилировать и установить на устройства.
  • Достаточно новый язык, который еще не очень распространен; сообщество пока небольшое

Оцените статью
cdelat.ru
Добавить комментарий