Рубрики
Flutter

ThemeData во Flutter

Класс ThemeData во Flutter определяет конфигурацию общей отображаемой темы для MaterialApp или для дерева виджетов в приложении. Данное свойство MaterialApp можно использовать для настройки внешнего вида всего приложения. Если вы хотите в одном из виджетов (экранов приложения) изменить цвет или иное, то вам достаточно переопределить в верхней части поддерева Theme.

Т.е. иными словами, если у вас всегда будет применяться зеленый цвет во всех AppBar экранов в приложении, то вы можете всего лишь один раз задать в primaryColor: Colors.green и всегда у вас по умолчанию будет отображаться зеленый цвет. Это очень удобно, когда вы вдруг решили изменить цвет всех AppBar-ов, и вам не надо менять в каждом экране, достаточно просто его изменить в ThemeData после MaterialApp

Пример использования:

MaterialApp(
  theme: ThemeData(
    primaryColor: Colors.green,
    accentColor: Colors.white,
    textTheme: TextTheme(bodyText2: TextStyle(color: Colors.black)),
  ),
  home: Scaffold(
    appBar: AppBar(
      title: const Text('ThemeData демонстрация'),
    ),
    floatingActionButton: FloatingActionButton(
      child: const Icon(Icons.add),
      onPressed: () {},
    ),
    body: Center(
      child: Text(
        'Кнопка была нажата 0 раз',
      ),
    ),
  ),
)
Рубрики
Flutter

Flutter http заголовки

Обычно я в проектах использую стандартную библиотеку http: ^0.12.2. Но недавно я столкнулся с ошибкой при отправке запроса, а точнее заголовка на сервер при использовании во Flutter http запросов.

Проблема заключается в том, что некоторые старые серверы чувствительны к регистру заголовка, например, им передаешь заголовок «Authorization», а пакет преобразует его в «authorization», что вызывает ошибку авторизации на сервере.

Так оказалось и в моем случае, при подключении к API Zadarma.com, их сервер оказался чувствительным в этом плане и ждет точное совпадение регистра.

Ответ сервера в этом случае отрицательный: {«status»:»Not authorized»}.

Для того, чтобы избежать подобной ошибки в заголовке, используйте стандартный класс HttpClient():

HttpClient httpClient = new HttpClient();

Рубрики
Flutter

Flutter API. Часть 1

Регистрация на beget.ru собственного VPS сервера. За 11 рублей в сутки.

Создавая приложения на Flutter на языке Dart, вы рано или поздно захотите сделать свой небольшой сервер, для своих собственных запросов API. В чем плюсы: не надо пользоваться никакими там сторонними сервисами, всегда можете оперативно внести изменения, увеличить заказчику стоимость за созданный, готовый API (шутка, а может и нет).

Из минусов, пожалуй, только то, что потратите на обучение сутки (в принципе, если следовать инструкции, можно все развернуть за 2-3 часа времени)

Рубрики
Flutter

Использование Flutter Color для заливки фона

Есть два способа использования Flutter Color, чтобы залить фон виджета во Флаттере. Я пока не знаю, есть ли способы лучше этих, можете дополнить статью в комментариях.

Container, как сказано в документации Flutter, старается заполнить все свободное пространство. А также, контейнер может принять свйоство decoration, которое может быть BoxDecoration, которое может иметь color — здесь он представляет как раз цвет фона.

Способ первый: используйте встроенный класс Color.class:

Рубрики
Flutter

Flutter Build режимы

Инструмент Flutter build поддерживает три режима при компиляции вашего приложения и режим для тестирования. Вы выбираете режим компиляции в зависимости от того, где вы находитесь в цикле разработки. Вы отлаживаете свой код? Вам нужна информация для профилирования? Вы готовы развернуть свое приложение?

Краткое описание того, когда использовать какой режим выглядит следующим образом:

  1. Используйте debug во время разработки, когда вы хотите использовать горячую перезагрузку.
  2. Режим profile, Если вы хотите проанализировать производительность.
  3. Используйте режим release, когда вы готовы выпустить свое приложение.