Найти в Дзене
Разработка
• Be the Idiot • Drunk Post: Things I’ve Learned as a Senior Engineer • “Tell a story” is not helpful advice Маркетинг • Reddit использует большие языковые модели для решения проблемы, которую во многом создали сами языковые модели Кроссплатформа • Plumix: как я переписываю Flutter на C# — вместе с ИИ • Refresh Tokens in Flutter: Keep Users Logged In Without Interruptions • Stop Installing Generic Flutter Skills...
10 часов назад
Android
Kotlin DSL — это не отдельный язык и не «магия» Gradle, а обычный Kotlin, который благодаря trailing lambda, extension- и infix-функциям, перегрузке операторов и особенно lambdas with receivers начинает выглядеть как специализированный язык. Поэтому dependencies { implementation(...) } — всего лишь вызов функции с лямбдой, а внутри блока меняется не синтаксис языка, а объект-получатель this. По той же схеме устроены блоки Ktor, Koin, kotlinx.html и многие API в Compose. Создание собственного DSL начинается не с классов, а с желаемого вида кода: сначала проектируется удобный call site, затем для каждого блока определяется receiver и добавляются builder-функции, создающие и связывающие объекты...
10 часов назад
​iOS
Мне захотелось зайти иначе. Я взял три «памятных» нововведения Swift 6.2, написал на них бенчмарки, прогнал на релизном тулчейне и полез в сгенерированный ассемблер. Вопрос меня занимал не «что это делает», а куда более практичный: дают ли эти фичи реальный выигрыш в цифрах - и в каких случаях оптимизатор Swift давно делает то же самое за вас, бесплатно и молча. Ответ оказался менее очевидным, чем их маркетинг. • Swift 6...
10 часов назад
Как сломать Swift Concurrency
Нужно выполнять асинхронные операции, поддерживать многозадачность в приложении? Async/await к вашим услугам - просто и приятно. Кооперативный пул эффективно переключает потоки между задачами, а компилятор проверяет типы на потокобезопасность. И даже...
21 час назад
Вайб-кодинг скоро умрет?
Опрос
1 день назад
Автор статьи многословно говорит, что вайб-кодингу пришел конец
Главная причина - дикая экономическая неэффективность. Ваша подписка стоимостью от 20 до 200 долларов фактически стоит ИИ-компании до 8000 долларов. Но период, когда ведущие компании в области искусственного интеллекта оплачивали за вас вычислительные мощности, подходит к концу. Большинство из нас уже потратили время, силы и деньги на создание вещей, которые никому не нужны и скоро месяц вайб-кодинга будет обходиться в 2000–4000 долларов. На этом вайб-кодинг и закончится. Да, очень скоро качественный искусственный интеллект станет для вас слишком дорогим. Этот бизнес не является устойчивым, и никакого очевидного пути к самоокупаемости пока не видно...
1 день назад
У вас осталось всего несколько недель на вайб-кодинг
Да, очень скоро качественный искусственный интеллект станет для вас слишком дорогим. Этот бизнес не является устойчивым, и никакого очевидного пути к самоокупаемости пока не видно. Компании лишь создают страх упустить возможность и запускают новые волны ажиотажа, чтобы привлечь очередные инвестиции. Затем они сжигают эти деньги, так и не достигая реального прогресса, который позволил бы выйти хотя бы в ноль. Китайские компании, которые заимствуют веса моделей и выпускают открытые решения за долю стоимости, лишь ускоряют общий спад...
1 день назад
Навигация в Jetpack Compose без магии: что на самом деле делают библиотеки навигации
Вы когда-нибудь задумывались, зачем нужны библиотеки для навигации в Jetpack Compose? Почему мы не можем просто взять mutableStateOf со списком экранов и переключаться между ними? Оказывается, если мы попробуем реализовать такой наивный подход, то столкнёмся с рядом проблем: rememberSaveable не работает, ViewModel не очищаются после ухода с экрана, Lifecycle не работает корректно и многое другое...
1 день назад
UISlider изнутри: почему setValue не работает во время settle-анимации и как я это обошел
В iOS 26 у UISlider появился liquid-glass-вид и физика доводки (settle) после того, как пользователь отпускает палец. Если честно, я не проверял, как это выглядело в старых версиях и как оно работало, так как до iOS 26 ни в своих проектах, ни в тех, что я писал на работе, я не использовал стандартный компонент, так как его внешний вид никого не устраивал. У такой доводки есть побочный эффект: если в этот момент дернуть setValue(_:animated:) извне, наш слайдер на один кадр едет в новую точку, а потом откатывается туда, куда его тянет settle. removeAllAnimations() не помогает: анимация идёт не через CABasicAnimation, а через property-driver на display link...
1 день назад
LoopScroll - бесконечно прокручиваемая постраничная навигация
LoopScroll - контрол для бесконечной прокрутки в iOS, построенный на основе UICollectionView. Поддерживает горизонтальную и вертикальную прокрутку, автоматическую прокрутку и привычный API делегата/источника данных. Особенности: • Бесконечная прокрутка — плавная перемотка элементов в обоих направлениях • Горизонтальная и вертикальная — переключение направления прокрутки с помощью одного свойства • Автоматическая прокрутка — настраиваемая автоматическая прокрутка на основе таймера...
1 день назад
Контейнер изнутри
В новом еженедельном дайджесте UISlider изнутри и навигация в Jetpack Compose без магии, миграция приложения на Navigation 3 и сборщик мусора в Dart, мобильное тестирование в 2026, как меняется разработка в эпоху ИИ, новые модели Anthropic и Google и многое другое...
1 день назад
📺 Видео и подкасты за неделю
• (iOS En) Swift Attached Macros: Build a Real-World Member Macro from Scratch • (iOS En) iOS 27 Apple Find My App UI • (iOS En) What's new in SwiftUI for iOS 27 • (iOS En) Screen Capture iPhone (iOS 27) - Screen Capture Kit For iOS 27 • (And En) Build adaptive apps with Compose's new APIs • (And En) Build for the wrist, the road, and the remote with Jetpack Compose and Gemini • (And En) Build 3d experiences using Jetpack XR • (And En) Optimize your app performance for the next generation of Android...
4 дня назад