Мы же пишем кроссплатформенный код! Давайте запустим созданное приложение на iOS-девайсе. Для этого просто выберите подключенный iOS-девайс или эмулятор в dropdown-списке и нажмите «Запустить».
Выбор эмулятора iOS
Привет, Мир! на iOS
Экран выглядит потрясающе, однако вверху экрана мешается ненужная иконка debug, да и иконка приложения сейчас никакая. Исправим это.
Для того, чтобы убрать ленточку debug, в добавьте в MaterialApp флаг debugShowCheckedModeBanner со значением false
return MaterialApp (
debugShowCheckedModeBanner: false,
Чтобы поменять иконку, нужно добавить в pubspec. yaml пакет
dev_dependencies:
flutter_launcher_icons: ^0.7.4
Этот пакет значительно упростит нам добавление иконки для двух платформ сразу. Добавим теперь в корне проекта папку assets с иконкой, а также пропишем путь к иконке
flutter_icons:
android: «launcher_icon»
ios: true
image_path: «assets/icons/flyflutter_ic_512.webp»
не забудьте сказать flutter, чтобы смотрел папочку assets
flutter:
uses-material-design: true
assets:
– assets/
– assets/icons/
После этого для генерации иконок запустите в терминале команды
flutter pub get
flutter pub run flutter_launcher_icons: main
Чтобы поменять лейбл (название иконки) приложения:
Для Android – найдите манифест в android/app/src/main/AndroidManifest. xml и добавьте в тег application строку
android: label=«FlyFlutter»
Для iOS же зайдите в Info.plist по пути ios>runner/Info.plist и для ключа укажите имя CFBundleName
<key> CFBundleName </key>
<string> FlyFlutter </string>
Готово. Запустите снова для проверки.
В этой главе:
– Переменные, типы и область видимости
– Функции
– Конструкторы
– Наследование
– Примеси (mixin)
– Callable классы
– Дженерики
– Асинхронные функции
– Исключения
– Использование библиотек
– Компиляция
Приложения под Flutter пишутся на языке Dart. Даже сам фреймворк написан на нем. Dart – это высокоуровневый объектно-ориентированный язык программирования общего назначения с открытым исходным кодом. Был разработан в Google. Испытал влияние C, Javascript, C#, Java. В нем также как и в Java и C# присутствует garbage collector. Язык поддерживает интерфейсы, примеси (англ. Mixin), абстрактные классы, дженерики и статическую типизацию.
Dart был представлен публике в 2011 году авторами Ларсом Барком (Lars Bark) и Каспером Лундом (Kasper Lund). Релиз версии 1.0 состоялся в 2013 году, а версии 2.0 в 2018
Примечание: Здесь и далее в этом курсе мы рассматриваем Dart версии 2
Все приложения на Dart, как и на C и в Java, имеют точку входа в функции main ()
В случае, если необходимо запустить программу на Dart из командной строки, то можно использовать параметризованную main:
Dart типобезопасный язык. В нем используется как статическая типизация на этапе компиляции, так и динамическая проверка во времени исполнения (runtime) программы. Несмотря на наличие статической типизации, указывать тип переменной необязательно. Например, все объявления и инициализации ниже корректные:
Примечание: В Dart 2 ключевое слово new стало необязательным
По умолчанию, все переменные имеют публичную область видимости. Таких привычных для Java-программистов ключевых слов, как private, protected и public в Dart нет.
Однако если добавить нижнее подчеркивание [_] к имени переменной, такая переменная будет иметь область видимости библиотеки, в которой она находится.
Все объекты в Dart наследуются от базового типа Object. Это аналог Object в Java. В нем также есть метод hasCode () и аналог equals, который заменяет оператор сравнения ==
Так же в классе Object присутствует метод toString ()
Встроенные типы включают:
– Числовые (num и его наследники int и double)
– Строковые (strings)
– Булевы (Booleans)
– Списки, или массивы (list)
– Сеты (set)
– Мапы (map)
– Руны (for expressing Unicode characters in a string)
– Символы (symbols)
int – Целочисленные переменные. На виртуальной машине Dart диапазон составляет от -263 до 263—1
Примечание: При компиляции в JavaScript диапазон int-a -253 до 253—1
double – 64-битные числа с плавающей запятой
И int и double наследуются от типа num
String
Строковые переменные в Dart представляют собой последовательности из UTF-16 символов. Для инициализации можно использовать как двойные, так и одинарные кавычки:
Значения переменных можно использовать в строках с помощью конструкции $ {выражение}
bool
Для создания булевых переменных в Dart существует ключевое слово bool. При инициализации можно использовать литералы true и false. То есть, инициализация bool b = 0; – некорректна, правильно
List
Списки – это коллекции проиндексированных объектов. Примеры объявления и инициализации списков:
Для инициализации в Dart 2.3 добавлен спред оператор – троеточие – с помощью него можно добавить в список множество значений:
Sets
Сеты – это неупорядоченные наборы уникальных элементов. В Dart для того, чтобы создать сет, нужно использовать фигурные скобки для непустого набора и фигурные скобки в сочетании с угловыми и типом объектов для пустого:
Maps
Мапы – это наборы данных в формате ключ-значение. Ключами, как и значениями, могут быть объекты любых типов. Каждый ключ является уникальным, значения могут быть разными, а могут дублироваться. Посмотрим на примере:
Альтернативные способы инициализации
Runes
Dart поддерживает руны – спецсимволы юникод. Используйте, если хотите добавить смайлики. Попробуйте запустить в dartpad
О проекте
О подписке
Другие проекты
