/images/avatar.jpg

Разработчик кроссплатформенных мобильных приложений

Делаем свой UI Kit для Flutter: кнопки

В любом серьёзном проекте мобильного приложения рано или поздно появляется UI Kit – набор готовых решений пользовательского интерфейса. Всевозможные кнопки, поля ввода, радиобаттоны и чекбоксы – любые переиспользуемые виджеты.

Грамотно подготовленный UI Kit экономит время дизайнеров и программистов, как следствие – удешевляет разработку проекта. Благодаря набору унифицированных компонентов удаётся сохранить преемственность интерфейса на разных экранах, да и разработчикам импонирует использование принципа DRY. Если в дальнейшем потребуется изменение дизайна элементов, то перенастроить их будет довольно легко.

Однако реализация такой библиотеки компонентов может оказаться непростой задачей. Скажем, у Flutter есть механизм тем, но его возможностей может оказаться недостаточно для сложной дизайн-системы. К тому же, как программисты, мы формируем довольно противоречивые требования к таким компонентам – с одной стороны, хочется писать как можно меньше бойлерплейта и скрыть в их цифровом нутре максимум дефолтных значений (таких как цвет, отступы, размеры и т.д.), а с другой – хочется иметь максимальную гибкость, чтобы при необходимости добавить нестандартную кнопку не копировать код виджета со слезами на глазах.

Подготовка целостной библиотеки компонентов для мобильного приложения, пожалуй, слишком большая тема для одной статьи, поэтому давайте сузим её до библиотеки кнопок, ведь кнопка – один из самых часто используемых элементов интерфейса. Но у нас всё будет по взрослому: разные типы кнопок, в разных стандартных размерах, плюс поиграемся с темами. Заинтересовавшихся приглашаю под кат.

Установка драйвера для Wi-Fi USB адаптера Mercusys MW300UH

Приобрел на днях USB Wi-Fi адаптер Mercusys MW300UH (он же Realtek 8192eu) и столкнулся с проблемой – официальной поддержки линуксов нет, поэтому нет и драйверов. Ну что ж, линуксоидам со стажем не привыкать к такому развитию событий – в любой непонятной ситуации “гугли” (хотя лично я предпочитаю использовать duckduckgo). Спустя 3 часа времени, вороха команд в терминале и четыре перезагрузки, решение было найдено. О нём и расскажу ниже. Для начала убедимся, что система вообще видит устройство:

Какой он - среднестатистический разработчик барнаульского диджитал коммьюнити?

С 06.06.2020 по 16.06.2020 в трёх чатиках барнаульского диджитал коммьюнити (Dev Squad, Чат Barnaul Digital community и Barnaul gamedev community) проводился опрос, целью которого было составление некоего усреднённого портрета разработчика в нашем сообществе.

Участникам предлагалось ответить на 10 вопросов, касающихся их работы и используемых инструментов. В опросе приняли участие 72 человека, среднее время ответа – 02:38.

Результаты этого опроса представлены далее.

Настраиваем тему диалога выбора даты в Flutter

Flutter - невероятно гибкий инструмент, который позволяет вам создавать кросс-платформенные приложения с уникальным дизайном. Однако, такая гибкость требует порой дополнительных действий. Рассмотрим это на примере настройки темы стандартного диалога выбора даты в Material Components. Использование primarySwatch Обычно, самый простой способ установить цвет основных элементов - это использовать поле primarySwatch объекта ThemeData. В документации указано, для каких именно элементов устанавливается цвет по-умолчанию с его помощью: primarySwatch primarySwatch - used to configure default values for several fields, including: primaryColor, primaryColorBrightness, primaryColorLight, primaryColorDark, toggleableActiveColor, accentColor, colorScheme, secondaryHeaderColor, textSelectionColor, backgroundColor, and buttonColor.