Build Flavors — технология, позволяющая собирать несколько вариантов приложения с общей кодовой базой и общими ресурсами.
Причина появления статьи — запутанность и излишняя сложность для такой простой темы официальной документации. В короткий пост моего канала об Android-разработке оно не влезло, поэтому почти полноценная статья.
User
Введение в отладку на примере Firefox DevTools, часть 1 из 4
Используете для отладки JavaScript-кода только console.log
? Есть способ получше! Отладчик в Firefox DevTools помогает быстро находить ошибки в коде и бережёт ваши нервы и время.
Часть 3: Продолжаем пилить мультигаджет ESPboy2 для ретро игр и экспериментов с IoT в 2021
С последних статей на хабре о проекте ESPboy прошло больше года.
Кратко напомню, что это мульти-гаджет для IT энтузиастов, ардуинщиков, любителей ретро игр, пентестеров.
Открытость платформы, 100% совместимость с Arduino IDE, WiFi на борту, автономность работы в несколько часов, доп модули и AppStore - делают устройство идеальным для обучения, прототипирования и IoT экспериментов.
Схемы и код открыты и в простейшем варианте устройство может быть собрано за полчаса из нескольких деталей с AliExpress за 8$. Также можно купить готовый девайс на tindie.com, но такой вариант пока дороговатым получается. На youtube канале проекта демонстрируются некоторые возможности, на hackaday - лог разработки.
ESPboy2 пока доступен только для разработчиков, но кому интересен, оставляйте емейл в форме предзаказа. Как только будет запущен для заказа, покупки или сборки - напишем.
Пилю проект в качестве хобби, время от времени помогают знакомые и энтузиасты.
Что удалось сделать за прошедший год...
JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг
puppeteer
можно создавать программы для автоматического сбора данных с веб-сайтов, так называемые веб-скраперы, имитирующие действия обычного пользователя. В подобных сценариях может применяться браузер без пользовательского интерфейса, так называемый «Headless Chrome». Используя puppeteer
, можно управлять и браузером, который запущен в обычном режиме, что особенно полезно при отладке программ. Сегодня мы поговорим о создании веб-скрапера на базе Node.js и
puppeteer
. Автор материала стремился к тому, чтобы статья была интересна как можно более широкой аудитории программистов, поэтому пользу из него извлекут как те веб-разработчики, которые уже имеют некоторый опыт работы с puppeteer
, так и те, которые впервые сталкиваются с таким понятием, как «Headless Chrome».Делаем телеграм бота за 5 минут: быстрый старт с продвинутым шаблоном
В последнее время я сделал насколько много ботов для телеграмма, что крайне преисполнился в том, как их писать, как хостить, да и в принципе выработал красивый шаблон для быстрого их создания.
Потыкать в проект, сделанный на этом шаблоне, можно тут.
Как использовать GraphHopper для построения пешеходных маршрутов по собственным правилам
Построение маршрутов типичная задача, люди регулярно этим пользуются, особенно для автомобильных маршрутов, в навигаторах.
Решений, для построения маршрута тоже немало, в том числе существует GraphHopper, который умеет строить маршруты, и для автомобилей, и для пешеходов, и даже для пешего туризма, - подойдёт в 99% случаев.
Далее речь пойдёт том, что делать в оставшемся 1% ситуаций, точнее о моём опыте использования GraphHopper, когда существующее решение не подходило. Требовалось учитывать дополнительные ограничения: строить пешеходные маршруты для людей с ограниченными возможностями. Не будет ни каких значимых особенностей реализации именно этой задачи. Максимально обобщённо.
Будет описано, как создать на основе библиотеки GraphHopper свой веб–сервис, который, по координатам начала и окончания пути, вернёт массив координат маршрута.
Пример приложения, со всеми необходимыми для запуска заглушками, можно найти в моём репозитории на GitHub.
Победа над nRF24L01: на три шага ближе
Многие испытывают трудности при соединении по эфиру радиомодулей nRF24L01. Об этом свидетельствует тема на форуме Амперки, открытая в конце 2014г. За пять с небольшим лет в теме накопилось более 120(!) страниц. Это при том, что автор темы не просто обозначил проблему, а поделился своим трехнедельным опытом победного для него боя. Кроме того, он тут же — в первом сообщении создал навигатор по страницам темы, где приводит ссылки на решения проблемы другими.
Я тоже не из тех счастливчиков, которым легко удалось связать радиомодули. Ниже — мой подход к решению проблемы.
Модули nRF24L01 работают в полудуплексном режиме. Это как разговор по рации: каждый из корреспондентов в один момент времени либо говорит, либо слушает. То есть, каждый из двух узлов работает в режиме и приемника и передатчика: передатчик, отправив сообщение ждет на подтверждение приема сообщения со стороны приемника.
Как правило, все тесты, которые мне встречались в Инете, сводятся к проверке работы и качества связи пары радиомодулей в полнофункциональном режиме, когда передатчик, послав пакет, ждет на подтверждение приема пакета приемником.
Я же разделил эту задачу на несколько простых задачек. Вначале модули проверяются на работоспособность и правильность подключения (шаг 1), затем один из пары работающих радиомодулей тестируется на работу в режиме передатчика без ожидания отклика с приемника (шаг 2) и последний этап — улучшение качества связи в этой связке передатчик-приемник (шаг 3).
Для общего представления — картинка с прототипом:
Итак ...
TypeScript: Раскладываем tsconfig по полочкам. Часть 1
В данной статье я хочу предоставить переработанную и упорядоченную выжимку документации по настройке tsconfig.json, которая, я уверен, будет полезна тем, кто только начинает свой путь в мире TypeScript или тем, кто до этого момента не нашёл времени и сил, чтобы разобраться в деталях и теперь хочет закрыть этот пробел.
Системный гайд по созданию White Label android-приложений
Как написать код один раз, а продать 20 мобильных приложений? Я нашёл ответ путём проб и факапов и разложил свой опыт по пунктам: из статьи вы узнаете, как безболезненно реализовать White Label android-проект.
Основы отладки клиентских JS-приложений
Процесс написания и выполнения программного кода почти всегда сопряжён с необходимостью искать и исправлять ошибки. И в целом процесс отладки приложений выглядит несложно.
Но дьявол кроется в деталях. Вот мы перешли из одной предметной области в другую или сменили стек, и там появились свои особенности отладки. В этой статье я расскажу о дебаге в контексте фронтенда на примере отладки клиентских JS-приложений. Надеюсь, это будет полезно начинающим JS-разработчикам, а опытные помогут проверить, что я не упустил ничего важного.
CSS-функции min(), max() и clamp()
min()
, max()
и clamp()
появилась в Firefox 8 апреля 2020 года. Это означает, что данные функции теперь поддерживаются во всех основных браузерах. Эти CSS-функции расширяют наши возможности по созданию динамических макетов и по проектированию более гибких, чем раньше, компонентов. Их можно использовать для настройки размеров элементов-контейнеров, шрифтов, отступов и многого другого. Правда, веб-дизайнеру, создающему макеты страниц с учётом возможности использования этих восхитительных функций, может понадобиться научиться думать по-новому.Сегодня я хочу рассказать об особенностях этих функций, объяснить всё то, что может оказаться в них непонятным, и привести практические примеры их использования.
Скрапинг Avito без headless-браузера
Недавно на хабре вышла статья Скрапинг современных веб-сайтов без headless-браузеров, и в комментариях было высказано мнение, что без headless-браузера не выйдет получить номер телефона из объявления на "авито" или "юле". Хочу это опровергнуть, ниже скрипт на python размером менее 100 строк кода, который успешно парсит "авито" успешно парсит "авито"!
Обновление вашего PWA в продакшене
Вам больше не помогут no-cache или max-age заголовки, вы просто не знали и не могли узнать о механизме обновления SW. Потому что про него вам не говорили.
Vue 3.0 — первый взгляд
Наконец-то руки дошли попробовать новую версию Vue. Я не собираюсь быть объективным в этой статье, я просто расскажу свои впечатления в процессе работы с новой версией, а так же расскажу как её установить и начать работу уже сейчас.
Не смотря на релиз, Vue 3.0 еще не готов для полноценного использования в продакшене. Router и Vuex еще не готовы для работы с новой версией, Vue CLI по умолчанию устанавливает старую версию, не говоря уже о сторонних плагинах и библиотеках, авторы которых не успели их обновить. Вот такой долгожданный и неполноценный релиз мы получили.
Особенно много вопросов вызывает новый синтаксис, так называемый Composition API, который к счастью не заменит полностью привычный и всеми любимый Options API. В пользу новой композиции нам всюду предлагают подобную картинку:
Как правильно идентифицировать Android-устройства
Всем привет! Если вам нужно создать уникальный и стабильный идентификатор Android-устройства для использования внутри приложения, то вы наверняка заметили тот хаос, который присутствует в документации и в ответах на stackoverflow. Давайте рассмотрим, как решить эту задачу в 2020 году. О том, где взять идентификатор, стойкий к переустановкам вашего приложения, и какие могут быть сложности в будущем — в этом кратком обзоре. Поехали!
Токен авторизации на примере JSON WEB Token
Доброго времени суток, дорогой читатель. В данной статье я постараюсь рассказать об одном из самых популярных (на сегодняшний день) способов авторизации в различных клиент-серверных приложениях - токен авторизации. А рассматривать мы его будем на примере самой популярной реализации - JSON Web Token или JWT.
OpenStreetMap, как получить координаты адреса, часть простая
Последнее время наблюдаю тенденцию, что всё больше и больше людей сталкиваются с проблемами в отсутствии геоданных. Вернее даже не так, в их закрытости. Если ещё вчера всех устраивали возможности картографических сервисов по расстановке маркеров, то теперь пользователь хочет большего: подсветить улицу, показать дома на ней, посчитать протяжённости рек и т.д. И тут их ожидает сюрприз, казалось бы на карте они всё это видят, но сделать ни чего не могут — это просто картинки. Развитие, что Google.Maps, что Яндекс.Карт остановилось на показе картинок, геокодинге, да навигации.
Полное визуальное руководство-шпаргалка по Flexbox и Grid + туториал
Доброго времени суток, друзья!
Представляю вашему вниманию полное визуальное руководство-шпаргалку по всем свойствам CSS-модулей Flexbox и Grid.
Основные источники: A Complete Guide to Flexbox, A Complete Guide to Grid.
В конце статьи вас ждет небольшой туториал по созданию тренажера по Flexbox.
Без дальнейших предисловий.
Погода в доме или бюджетный мониторинг CO2, PM2.5, температуры и влажности на ESP32 и Blynk
В данном обзоре я не буду описывать «пагубность» влияния CO2, а также низкой влажности на самочувствие и здоровье человека. Также, как и не буду доказывать, что без этого девайса не прожить. Об этом уже написаны тонны статей, как и споров в комментах. Я постараюсь лаконично описать создание максимально бюджетного устройства, но при этом измерительного устройства, а не показометра.
Также для максимальной простоты повторения, в обзоре выложу прошивку для ESP32 и проект Blynk.
Исследование CSS-свойства flex
flex
? Оно позволяет задавать значения свойств flex-grow
, flex-shrink
и flex-basis
. Я обратил внимание на то, что данное свойство чаще всего используют в виде flex: 1
, что позволяет flex-элементу растягиваться, занимая доступное пространство.В этом материале я хочу поговорить о сокращённом свойстве
flex
и о тех свойствах, значения которых устанавливают с его помощью. Я собираюсь рассказать о том, когда и почему можно пользоваться этими свойствами, приведу практические примеры.Information
- Rating
- Does not participate
- Registered
- Activity