Допустим, вы разработчик, и вам от пользователя приходит строка user-agent с описанием того, каким браузером он пользуется.
В этой строке будет что-то типа такого:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
И вы хотите из неё узнать мажорную версию Chrome, то есть вытащить число 51. Что вы сделаете? Можно, конечно, написать свой парсер, но я уверен, многие воспользуются регулярными выражениями. Я бы воспользовался. Какое выражение сюда подходит? С виду кажется, что вот такое:
/Chrome\/(\d\d)\./g
Мы ищем слово Chrome и слэш, затем ловим в группу две цифры, после которых стоит точка. Так?
По крайней мере, мышление достаточного количества разработчиков именно таково. Зачастую программистам не хватает умения отойти от техзадания на уровень вещественной сути того, с чем они работают. На самом деле число 51 это версия. Версия будет увеличиваться со временем. «Марти, где твоё четырёхмерное воображение?» Если уже прошло 50 версий, то и следующие 50 не за горами, число станет трёхзначным, регулярка или парсер, сделанные под двухзначные числа, перестанут работать.
Трехзначная версия Chrome и Firefox приближается уже сейчас. И да, в них падает куча функций на сайтах, включая крупные корпорации: Yahoo, Bethesda, HBO и бог знает сколько сайтов поменьше. Чисто из-за цифры. Это уже назвали «Проблема сотой версии» по аналогии с «Проблемой 2000 года» (программисты записывали год двумя цифрами, 2000 стал неотличим от 1900).
К чему это я? Полезно задумываться о физическом воплощении того, что вы представляете в своей программе. Ваш код должен описывать не столько требования заказчика, сколько законы, по которым существует этот объект в реальном мире.
#dev
На канале есть рубрика про #рефы. В неё иногда залетают примеры с физикой элементов, и тогда звучит вопрос: «Окей, а как это сделать?». Если на вебе всё просто — есть движки вроде Matter.js или PhysicsJS, а вот что делать на мобиле?
Недавно мой dev-бро как раз для своей рабочей задачи нашёл кастомизируемый движок с управляемой физикой в SwiftUI — Kinetics🧑💻
Штука удобная и мощная по возможностям:
🎯 Ретаргетинг
Меняет цели анимации на лету при взаимодействии, идеально для интерактивных элементов
🚀 Импульс
Естественная имитация импульса, которая ещё и отзывчивая
🦾 Тянучесть
Сопротивление объекта, дающее гладкое, естественное ощущение натяжения
🧲 Магнетизм
Умные привязки к значимым позициям. Например для циферблатов, ползунков и вообще любых интерфейсов, где важны дискретные значения
🏀 Упругость
Реалистичное поведение при столкновениях с настраиваемой потерей энергии
Короче, пробуйте тоже. Мир интерфейсов двигается вперёд за счёт тех, кто не боится экспериментировать. И да — храни Бог этих упоротых энтузиастов, которые пишут опенсорс-библиотеки и движки вместо того, чтобы просто жить спокойной жизнью 😎
#dev#frontend
👅Тэкс, назрел вопроспро локализацию
Я ярый амбассадор сервисов локализаций и вообще этого флоу. Мои любимчики это Lokalise и POEditor, но для своих стартапов они не подходят т.к. хотят не малые бабосы или встречают жёсткими ограничениями. Даже Framer ебанулся с горы и за одну локаль хочет $40/m. Поэтому мы с dev-бро делаем небольшою и удобную автоматизацию для нашего side-проекта, которую хотим опубликовать для всех желающих. Скажу больше, у нас получилось элегантное и дешёвое решение, с которым приятно будет работать всем членам продуктовой команды.
Сейчас хочу понять процентовку людей, которые работают с мультиязычным контентом в своих проектах. Для своей банды как всегда сделаю подгоны.
#опросы#проТекст#dev
Пока каналы сосали контент про очко эппл Apple Vision Pro, упустили новость для нас, для работяг из IT!
🍏TipKit — нативная замена сторонних решений для тултипов, ондордингов. Новый фреймворк даст возможность использовать разные обучающие шаблоны для приложений, с возможностью кастомизации их внешнего вида. Также настроить можно свои правила для их отображения где и когда угодно. Кайф.
TipKit работает на iOS, iPadOS, macOS, watchOS и tvOS ебать его в сраку (про visionOS ни слова кстати). Для ушлых продАктов захотевших использовать тултилы как инструмент маркетинговой активности и горе-дизайнеров есть примеры использования фреймворка.
Выглядит красиво, функционально, спасибо Эппл, но главное чтобы мои dev-бро тоже были довольны работой с этим китом.
📚Overview
#OS#apple#dev#полезное
📷Секретный файлтолько для iPhoneиiPad
Функция быстрого просмотра файлов у яблочников, теперь умеет показывать 3D и AR объекты, но только на iOS и iPadOS. Файлы формата *.reality можно встраивать не только в приложения, но и добавлять на сайты. Имеется даже поддержка аудио, ахуеть.
🔗AR Quick Look
#dev#apple#AR#3D