Skip to content

Latest commit

 

History

History
82 lines (44 loc) · 5.68 KB

README.md

File metadata and controls

82 lines (44 loc) · 5.68 KB

Intro

Flutter является open-source фреймворком для разработки приложений, поддерживаемым Google. Он многоплатформенен: приложения, написанные на нем компилируются и запускаются нативно на iOS, Android, в веб-браузере, и на настольных операционных системах - Windows, Mac, Linux. Разработанное на Flutter приложение может быть скомпилированно на все перечисленные платформы (и другие, а также платформы, которые будут добавленны в будущем) и опубликованно в их AppStores без дополнительных усилий на портирование - это является ключевым преимуществом Flutter перед другими фреймворками для разработки приложений, такими как Swift UI (только iOS), Kotlin/Android (только Android). Хотя в нем присутсвует возможность использования нативных виджетов UI фреймворков этих операционных систем, основной режим работы с Flutter - это использование его собственного UI фреймворка, основанного на высокопроизводительной графической библиотеке Skia. Без применения стайлинга Flutter приложения на всех платформах выглядят одинаково - как Material приложения, нативные для среды Android. Flutter написан на и предполагает использование компилируемого open-source языка Dart.

IDEs

Для разработки на Flutter используются Android Studio и VS Code. Рекоммендуется установить обе среды и их Flutter plugins, используя инструкции на веб-сайте Flutter. Для того чтобы попробовать Dart, используется онлайн среда DartPad

Dart

Переменные

Dart - строго типизированный язык. Переменные имеют тип который не меняется во время исполнения программы - т. е. нельзя присвоить переменной типа String (строка) значение int (целое число).

Переменные в Dart можно обьявить и инициализировать с без указания типа, при этом тип будет угадан компилятором и закреплен за переменной. Такой путь является предпочтительным:

var totalNumberOfSuras = 114;
var userName = "Aisha"

Можно указать тип вручную, так стоит делать лишь тогда, когда читающему код будет сложно понять, какого типа переменная

//BAD, так делать не стоит
int indexOfSura = 5;
String cityName = "Medina"
//GOOD, так делать нужно, потому что тип этих переменных не понятен - инициализация происходит после обьявления
int numberOfLinesInFile;
//GOOD, инициализация выполнена не значением - литералом, а вызовом метода, тип возвращаемого значения которого сразу не понятен
String nameOfSura = nameOfCurrentSura();
numberOfLinesInFile = 55;

Подробнее о случаях, когда нужно указывать тип переменных, а когда не нужно см Dart Styleguide.

Модификатор final

final используется когда известно, что значение переменной не изменится в ходе выполнения приложения:

final pathToFile = "fawazahmed0/quran-api/editions/ara-quran-la1.min.json"

попытка присвоить новое значение такой переменной после инициализации вызовет Runtime Error:

pathToFile = "fawazahmed0/quran-api/ara-kingfahadquranc-la.json" //ERROR!

Модификатор const

Типы переменных

Числовые

  • int - целое число от $-2^63$ до $2^63-1$
  • double - 64 битное число с плавающей точкой по определению IEEE 754

Эти 2 типа являются подклассами типа num, который стоит избегать, если он точно не нужен. Пример:

var a = 1; // int
var b = 1.0; // double
int x = 8;
double y = b + 6;
num z = 10 - y + x;
// 7 является константой 
const valueA = 7;
// Операции с константами возвращают константы
const valueB = 2 * valueA;

Числовые литералы могут также быть записанны как:

  • экспоненты var a = 1.35e2 - $1.35 * 10^2$
  • hexadecimal - шестнадцатиричное число var a = 0xF1A - F1A in base 16 (3866 in base 10)

Cтроки