Быстрый старт Flutter-разработчика. Андрей Алеев
Чтение книги онлайн.
Читать онлайн книгу Быстрый старт Flutter-разработчика - Андрей Алеев страница 8
void getException () {
throw Exception (’bam!»);
}
try {
getException ();
} on Exception {
// do something
} catch (e) {
print («Произошла ошибка: $e’);
} finally {
// После слова finally код выполнится обязательно
closeDatabase ();
}
При отлавливании исключений можно использовать и on, и catch, и оба одновременно. сatch будет использоваться для доступа к объекту exception.
Использование библиотек
Чтобы импортировать библиотеку, пространство имен или класс, необходимо в верхней части файла прописать путь к ним после слова import
import ’package: shapes/geometric. dart’;
import ’package: abstracts/colored. dart’ as colored;
…
// Используем Rectangle из библиотеки geometric.
Rectangle rectangle1 = Rectangle ();
// используем Rectangle из библиотеки colored.
colored.Rectangle rectangle2 = colored.Rectangle ();
При использовании указанного выше способа загрузки библиотек, они загружаются сразу. Чтобы они загружались по требованию, им можно добавить модифиаткор defferd as
import ’package: abstracts/colored. dart’ deffered as colored;
И затем в нужный момент загрузить с помощью функции loadLibrary ():
Future greet () async {
await colored. loadLibrary ();
hello.printGreeting ();
}
Компиляция
Написанный на Dart код нужно скомпилировать под целевую платформу. Поскольку Dart – это язык общего назначения, он может компилироваться как по паттерну JIT (Just In Time), так и по паттерну AOT (Ahead Of Time).
Отличие JIT от AOT в том, что при JIT код компилируется непосредственно перед использованием. Пример JIT – это JavaScript и движок V8 Chromim-a. При этом мы не зависим от архитектуры платформы, однако код может компилироваться долго в рантайме, что ощутимо замедлит быстродейтсвие.
В случае с AOT мы заранее компилируем весь код проекта и получаем бинарный файл. Пример – это С++, Java (JVM). На выходе мы получаем быстродействующее приложение, но под одну целевую платформу, под другую платформу нужен уже другой бинарник.
Как работает Flutter? В зависимости от способа сборки – по разному. В случае сборки release iOS используется AOT. Для release Android может использоваться как AOT, так и CoreJIT (вариация AOT).
При разработке мы хотим видеть изменения быстро, и у нас есть такая возможность – Hot Reload. Он как раз-таки и работает по паттерну JIT. Платформа формирует некие снимки состояния – snapshots, которые затем переиспользуются.
Типы snapshot- ов
Использование snapshot-ов в debug режиме
Использование snapshot-ов в release режиме
Итоги обзора
Dart – мощный инструмент разработки, впитавший в себя многое от Java, Javascript и других языков, успешно применямых в промышленной разарботке. Перейти на Dart программистам, писавшим ранее