-rw-r--r-- 2.7K 12 авг. 2019 · C802EF3 · ~2 мин

Поддержка тёмной темы на сайте

dark mode web css

Тёмная тема на сайте

iOS 13, которая выйдет этой осенью, будет включать тёмный режим. В современной macOS он уже есть. Принося тёмный режим в iOS, Apple также рекомендует веб-разработчикам адаптировать цвета под тёмную тему.

Реализовать это довольно просто. Достаточно поменять CSS сайта и добавить что-то вроде такого:

:root {
  color-scheme: light dark;
  --body-background-color: white;
  --body-text-color: #2F2F2F;
}

@media (prefers-color-scheme: dark) {
  :root {
    --body-background-color: #222222;
    --body-text-color: #E2E2E2;
  }
}

body {
  background-color: var(--body-background-color);
  color: var(--body-text-color);
}

То есть мы добавляем поддержку цветовых схем через color-scheme: light dark; и определяем CSS-переменные.

Чтобы протестировать, можно попробовать последний Safari в свежих бетах iOS или macOS, либо (возможно) Safari Developer Preview. В Web Inspector в Safari есть отдельная кнопка для переключения тёмной темы.

Тёмная тема для сайта в Safari

Интересный момент: в macOS 10.15 фон body для тёмной темы по умолчанию тоже тёмный. Но в 10.14 он будет белым в Safari и Firefox. Если хотите поддержать macOS < 10.15, придётся явно задать цвет фона для тёмной схемы. На сессии WWDC Apple про это не упомянули. Они просто убрали свойство background-color из CSS и дали выбирать фон операционной системе. В качестве примера приводили сайт NSHipster, но в его CSS как раз есть свойство background-color — для поддержки старых версий macOS :)

Я добавил поддержку тёмной схемы на свой сайт Space In Box. Загляните также на NSHipster — там тоже есть.

Эта статья — что-то вроде краткого пересказа сессии WWDC Supporting Dark Mode in Your Web Content.

[↵] открыть пост adding-dark-mode-support-for-website.md
-rw-r--r-- 1.5K 1 окт. 2018 · 66FB865 · ~2 мин

Бенчмарки: Vapor 3 vs. Vapor 2

swift backend vapor ubuntu benchmark

После миграции (а по факту почти переписывания) своего небольшого проекта с Vapor 2 на Vapor 3 я прогнал бенчмарки, чтобы сравнить производительность. Я не запускал бенчмарки на последней версии Vapor 2.x, поэтому буду сравнивать Vapor 2.1.0 с результатами Vapor 3.1.0.

Конфигурация моего сервера:

  • 2 ГБ RAM
  • 1 ядро CPU
  • SSD
  • 125 Мбит/с исходящего трафика
  • Ubuntu 16.04.2 LTS
  • CouchDB

Бенчмарк с другого сервера запускался так:

wrk -t4 -c20 -d5m https://my_url

API просто берёт данные из CouchDB и отдаёт их как JSON. Проект на Vapor собирался Swift 4.2.

[↵] открыть пост benchmarks-vapor-3-vs-vapor-2.md
-rw-r--r-- 526B 27 сент. 2018 · 859FE4A · ~1 мин

Select like a Boss для Safari в Mac App Store

select like a boss safari macos расширения приложения open source

Select like a boss for Safari

24 сентября вышла новая версия macOS - Mojave. А вместе с ней и Safari 12, который теперь поддерживает установку расширений только из Mac App Store. Пришлось запилить приложение с расширением.

Загрузить

[↵] открыть пост select-like-a-boss-dlya-safari-v-mac-app-store.md
-rw-r--r-- 2.1K 21 мая 2018 · 831A704 · ~1 мин

Конвертер из JPG в HEIF

jpg to heif converter приложения apps macos open source

Конвертер JPG в HEIF

Сегодня я решил поэкспериментировать с HEIF — форматом, который Apple завезли вместе с macOS 10.13 и iOS 11. Они говорили, что у него такое же качество при гораздо меньшем размере файлов.

Формат поддерживается в свежих версиях macOS и iOS, а последние модели iPhone умеют снимать в нём.

Я подумываю сжать свой домашний архив фото и видео. С HEVC (H.265) я уже экспериментировал, и результаты были отличные — я уменьшил размер видео, перекодировав их в HEVC прекрасной утилитой HandBrake.

Единственный способ сконвертировать JPG в HEIF (расширение HEIC), который я нашёл, — приложение «Просмотр» в macOS. Но мне было интересно, смогу ли я сделать это сам на Swift. Смог :)

Папка с 64 фотографиями с моего экшен-камеры весила 203 МБ в JPG. И всего 31,3 МБ в HEIC.

macOS и iOS поддерживают формат из коробки. И что интересно — фото в этом формате легко добавляются в библиотеку «Фото» и появляются на всех устройствах, использующих iCloud. Но если попытаться экспортировать такое фото из «Фото» — оно на лету сконвертируется в JPG, так что оригинальный HEIC, похоже, экспортировать нельзя.

Конвертер бесплатный и с открытым исходным кодом (но только под macOS): https://github.com/makoni/jpg-to-heif-converter

[↵] открыть пост jpg-to-heif-converter.md
-rw-r--r-- 2.8K 21 апр. 2018 · D5C5FA9 · ~1 мин

Впечатления от Assassin's Creed Chronicles: China

assassin's creed игры

Assassin's Creed Chronicles: China

[↵] открыть пост vpechatleniya-ot-assassin-s-creed-chronicles-china.md
-rw-r--r-- 8.8K 24 нояб. 2017 · 210FD78 · ~4 мин

Анимация касания индикатора в UISlider

swift ios полезное uislider

Анимация касания индикатора в UISlider

Стояла задача - при касании слайдера анимировать в приложении сделать анимированное увеличение ползунка. Так же, как это сделано у Apple в приложениях Apple Music и Podcasts в плеере, когда начинаешь перематывать позицию воспроизведения. Пока искал способ стандартными средствами, убил немало времени. Очень не хотелось писать прям свой кастомный слайдер, хотелось использовать системный UISlider, что мне, в итоге, и удалось.

[↵] открыть пост animatsiya-kasaniya-indikatora-v-uislider.md
-rw-r--r-- 997B 24 окт. 2017 · FBD7F97 · ~1 мин

SMS Антикредит

sms антикредит ios приложения

SMS Антиспам для iOS

Надоел мне СМС-спам, который мне периодически приходит - то кредит предлагают, то ипотеку. Как раз, просматривая один из видосов с WWDC, увидел, что Apple дали API для фильтрации SMS-сообщений. Если сработает твой фильтр - то такие сообщения будут приходить без звукового или вибросигнала, втихую, и попадать в отдельную категорию спама в Сообщениях.

Недолго думая, запили такой вот фильтр и выложил в App Store. Надеюсь, кому ещё, кроме меня, пригодится.

Скачать в App Store

[↵] открыть пост sms-antikredit.md
makoni@arm1:~/blog$ cd ../page-7/ // ← предыдущая cd ./page-9/ // ещё посты →