Читать книгу «Быстрый старт Flutter-разработчика» онлайн полностью📖 — Андрея Алеева — MyBook.
image

Запускаем Hello World на iOS

Мы же пишем кроссплатформенный код! Давайте запустим созданное приложение на 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>
 

Готово. Запустите снова для проверки.

Урок 2. Язык программирования Dart

В этой главе:

– Переменные, типы и область видимости

– Функции

– Конструкторы

– Наследование

– Примеси (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