Similar presentations:
Программирование мобильных систем
1.
Программированиемобильных систем
2.
Flutter• Flutter — это бесплатный фреймворк с открытым исходным
кодом для разработки мобильных пользовательских
интерфейсов, созданный Google и выпущенный в мае 2017 года.
Если вкратце, он позволяет создавать нативные мобильные
приложения только с одной кодовой базой. Это означает, что вы
можете использовать один язык программирования и одну
кодовую базу для создания 2 разных приложений (под iOS и
Android).
3.
Flutter История 1й Этап2015: Проект Sky
Проект Sky был создан для разработки высокопроизводительных
приложений, работающих на Android. Целью было достижение
частоты обновления 120 кадров в секунду, что значительно
превышало возможности большинства устройств того времени
4.
Flutter История 2й Этап2017: Появление Flutter
В 2017 году вышла первая альфа-версия Flutter, которая работала
только на Android. Она была основана на движке Skia, который
позволял создавать сложные графические элементы и анимации
5.
Flutter История 3й ЭтапОфициальный релиз Flutter 1.0.
В 2018 году вышла первая стабильная версия фреймворка — Flutter
1.0. Фреймворк стал доступен для разработки приложений как для
Android, так и для iOS
6.
Flutter История 4й ЭтапВыход Flutter 1.12 в 2019
Добавлена поддержку веб-приложений и настольных приложений
7.
Flutter История 5й Этап 2021• В 2021 году команда Google расширила возможности Flutter как
мультиплатформенного фреймворка. Версия Flutter
2.8 поддерживала шесть платформ: iOS, Android, web, macOS,
Windows и Linux.
• В релизе появилась возможность монетизировать Flutterприложения при помощи Google Mobile SDK. Появились пять
рекламных форматов: баннеры, полноэкранная реклама, видео,
нативная реклама и реклама при запуске приложения. Также
Flutter-приложения с этого момента можно было интегрировать с
AdMob и Ad Manager. Появилась возможность размещать рекламу
от посредников.
8.
Flutter История 5й Этап 20219.
Flutter История 6й Этап 2022В релизе Flutter 2.10 разработчики сделали акцент на стабильной
версии поддержки Windows. Появились улучшения для обработки
текста, клавиатуры и сочетаний клавиш, интеграции в Windows с
поддержкой аргументов командной строки, глобальным вводом
текста и другие.
В Flutter 3 появился Flutter Casual Games Tool Kit с шаблонами,
учебниками и документацией для разработки казуальных игр.
Разработчики показали стартовый шаблон игры с главным меню,
страницей настроек, работой со звуком и графикой. Его можно было
адаптировать под свою идею.
10.
Планы на будущее• интеграция AR, чтобы сделать приложения более интерактивным;
• поддержка Flutter-приложений для Fuchsia OS — новой
операционной системы от Google;
• пересмотр дизайна UI/UX;
• поддержка производительности.
11.
Причины популярности FlutterКроссплатформенность:
Flutter позволяет создавать приложения для iOS, Android, Web и
даже настольных платформ, используя один код. Это значительно
экономит время и ресурсы, так как не нужно поддерживать
отдельные команды для каждой платформы.
Высокая производительность:
Flutter использует собственный графический движок, что
позволяет ему рендерить интерфейс с высокой скоростью и
качество. Это решает одну из главных проблем других
кроссплатформенных фреймворков.
Поддержка Google:
Flutter активно поддерживается и развивается компанией Google,
что обеспечивает регулярные обновления и улучшения.
12.
Причины популярности FlutterБогатый набор библиотек и плагинов:
Существует множество готовых библиотек и плагинов, которые
упрощают добавление новых функций в приложений.
Удобство разработки:
Flutter предлагает понятный и интуитивно понятный дизайн,
что делает его привлекательным для разработчиков.
Сообщество:
У Flutter большое и активное сообщество, что облегчает поиск
решений и поддержку1.
13.
Flutter и бизнес• «Flutter экономить половину ресурсов»
• «Больше экономить»
• «Быстрее бежать»
• «Сильнее расти»
14.
Востребованность15.
Востребованность Framework (ов)16.
Архитектура Flutter17.
Основные части Flutter• Dart
• Engine («движок»)
• Унифицированный доступ к возможностям
поддерживаемых ОС
• Виджеты
18.
Dart ИсторияGoogle создал Dart еще в 2011 году, и изначально он
был представлен на конференции GOTO в Орхусе,
Дания. Первый релиз 1.0 состоялся в ноябре 2013
года, примерно за два года до выпуска Flutter. За
Dart стоит благодарить Ларса Бака (который
разработал ещё и JavaScript-движок V8,
используемый в Chrome и Node.js) и Каспера Лунда
19.
Dart История• 2011 Версия 0.x
• 2013 Релиз версии 1.0
• 2015 Google отказался от планов интеграции Dart
VM в браузер Chrome
• 2018 Выпуск версии 2.0 Изменение в системе
типов
• 2023 Выпуск версии 3.0
20.
Google I/0 2023• Flutter 3.10 and Dart 3.0
• Impeller
• JNIgen
• Material 3
• Web Performance
21.
Google I/0 Dart 3.0• Sound null-safety
• Records and patterns
• Class modifiers
22.
Records and patterns23.
Class modifiers• Interface class
• Base
• Final
• sealed
24.
«Интересные» приложения на flutter/dart• Rive
• Serverpod
• appFlowy
25.
Dartclass Point {
final num x, y;
Point(this.x, this.y);
Point.origin() : x = 0, y = 0;
num distanceTo(Point other) {
var dx = x – other.x;
var dy = y – other.y;
return math.sqrt(dx * dx + dy * dy);
}
Point operator +(Point other) => Point(x + other.x, y + other.y);
}
void main() {
var p1 = Point(10, 10);
var p2 = Point.origin();
var distance = p1.distanceTo(p2);
print(distance);
}
26.
Ключевые моменты Dart• Полностью объектно-ориентирован
• инфраструктура языка включает в себя сборщик мусора
• С-подобный синтаксис
• Многопоточность
• - JIT и AOT
• Hot reload
27.
ВиджетыВиджет - это части вашего пользовательского интерфейса
(хотя и не все виджеты явно отображаются на экране)
«Flutter – это и есть виджет»
Text("Hello!")
RaisedButton(
onPress : function() {
// Сделай что-нибудь.
},
child : Text("Click me!")
)
28.
ВиджетыListView.builder(
itemCount : cars.length,
itemBuilder : (inContext, inNum) {
return new
CarDescriptionCard(card[inNum]);
}
)
Center(
child : Container(
child : Row(
Text("Child 1"),
Text("Child 2"),
RaisedButton(
onPress : function() {
// Do something.
},
child : Text("Click me")
)
)
)
)
29.
Основывые виды виджетов• StatelessWidget – рекомендуется для неизменяемых виджетов.
Это такие виджеты которые не имеют внутреннего состояния,
зависят только от конфигурационных параметров и от
родительских виджетов.
• StatefulWidget – рекомендуется для изменяемых виджетов, с
изменяемым внутренним состоянием.
30.
Stateless WidgetДекомпозиция
Оптимизация
class MyTextWidget extends StatelessWidget {
Widget build(inContext) {
return new Text("Hello!");
}
}
31.
StatefulWidget Widgetclass LikesWidget extends StatefulWidget {
@override
LikesWidgetState createState() => LikesWidgetState();
}
class LikesWidgetState extends State<LikesWidget> {
int likeCount = 0;
void like() {
setState(() {
likeCount += 1;
});
}
32.
StatefulWidget Widget@override
Widget build(BuildContext inContext) {
return Row(
children : [
RaisedButton(
onPressed : like,
child : Text(‘$likeCount’)
)
]
);
}
}
33.
Inherited Widget34.
Важные аспекты виджетов• Во-первых, пользовательский интерфейс построен путем
создания виджетов.
• Во-вторых пользовательский интерфейс во Flutter описывается
напрямую в коде
35.
Плюсы и минусы Flutter+ Горячая перезагрузка
+ Кросплатформенность
+ Dart – простой и мощный, объектно-ориентированный и строго
типизированный
+ Виджеты
36.
Минусы Flutter- Описание логики поведения и разметки пользовательского
интерфейса в одном класс
- Дерево виджетов
- Реактивное программирование и управление состоянием
- Размер приложения
37.
Установка Dart Windows• 1й Вариант Скачать и установить https://dart.dev/get-dart
• 2й Вариант (если установлен пакетный менеджер
Chocolate) то
В cmd выполнить choco install dart-sdk
• Для обновления соответственно choco upgrade dart-sdk
По умолчанию устанавливается в C:\tools\dart-sdk
38.
Установка Dart macOS• 1й Вариант Скачать и установить https://dart.dev/get-dart
• 2й Вариант (если установлен пакетный менеджер
Homebrew) то
выполнить brew tap dart-lang/dart
brew install dart
Для обновления соответственно brew upgrade dart
39.
Установка Dart Linux• 1й Вариант Скачать и установить https://dart.dev/get-dart
• 2й Вариант 1й шаг
sudo apt-get update
sudo apt-get install apt-transport-https
wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o
/usr/share/keyrings/dart.gpg
echo 'deb [signed-by=/usr/share/keyrings/dart.gpg arch=amd64]
https://storage.googleapis.com/download.dartlang.org/linux/debian stable main' | sudo
tee /etc/apt/sources.list.d/dart_stable.list
2й шаг
sudo apt-get update
sudo apt-get install dart
programming