Flutter: использование пакетов

Не все йогурты одинаково полезны (с)

Иногда стандартных библиотек поставляемых с Fllutter не хватает, а самому что-то писать затруднительно — выходом может служить использование уже написанного и опакеченого кода. Все пакеты Flutter находятся на pub.dev, для добавления любого из пакетов с этого сайта в проект, достаточно добавить в pubspec.ymal проекта зависимость. Например:

После чего Android Studio предложит обновить зависимости. Далее добавим в main.dart импортируемую библиотеку:

Далее непосредственное использование:

Flutter: основные принципы построения приложения

Минимальное приложение Flutter, это:

,далее обычно начинают плясать именно от этого шаблона. Запускаем, смотрим…и ничего кроме квадратика с названием окна не видим. Ну собственно ничего более и нет.

Одной из «киллер фич» Flutter считается, что всё что визуально расположено на экране — это виджеты вложенные друг в друга. С «детьми» и «родителями». Принцип разметки примерно такой же как в HTML + CSS: кидаем в «стартовый» виджет другие виджеты различного вида , и добавляем к ним «украшения». В данном случае внутри стартового виджета ничего нет.

Второй «киллер фичей» флаттера является так называемый HotReload — при изменении кода программы, и последующем его изменении, запущеная ранее программа не закрывается, а «обновляется» на лету. Если конечно код не изменен «кардинально»

Добавляем файл-основной экран page1.dart:

И далее добавляем в main,dart строчки:

В результате запуска получаем что-то типа:

Убираем сбор статистики из bitrix

Задача: убираем из «голого» битрикс все сторонние скипты, тянущиеся с других ресурсов. Один из таких ресурсов — bitrix.info, который подтягивает bu.js

Решение: в файле .settings.php добавляем:

PHP: определение языка пользователя сайта

В ранние годы, чаще всего определяли языка пользователя на основании его IP. Да и до исх пор так часто делают. И всё чаще ошибаются из-за широкого распространения VPN и всяческих аномайзеров. Поэтом правильнее будет полагаться на стандарт W3C, согласно которому браузер должен передавать на сервер в заголовке HTTP заполненую переменную HTTP_ACCEPT_LANGUAGE. Собстевенно в PHP оно попадает в $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]. Далее остается распрасить переменную с сортировкой по «весам»:

Получаем массив вида:




RGB лента + Raspberry Pi

На днях собрал себе очередную игрушку на raspberry pi для загородного дома. А именно по датчику движения в коридоре будет включаться RGB лента, цель которой дать освещение достаточное для «дойти до выключателя». Не, я конечно натыкал и «проходных» выключателей аж 3 штуки, но всё равно иной раз приходиться идти до них, нащупывать их в темноте, попутно спотыкаясь о валяющуюся на полу пилу, циркуляру и электрокосу 😉 Пока правда собрал «на коленке», для проверки работы ленты. Получилось примерно так:

https://www.youtube.com/watch?v=qSEB7YS0lw8

Лента самая китайская на контроллере WS2812b, 5V , 60 диодов на метр, 5 метров (1300р). Блок питания S-100W-5 (1000р).

Схема подключения:

Результат выложил на Гитхаб: https://github.com/donpadlo/rgb_led_effect




1 6 7 8 9 10 69