Жесты в SwiftUI выглядят просто: повесил .gesture на вью и оно реагирует. Но как только на экране появляются вложенные элементы, системные свайпы или несколько жестов на одной вью - начинается хаос.
Сегодня хочу разобрать статью, в которой автор честно говорит про вечную боль отношений между разработчиками и менеджерами. И что особенно важно - ему довелось испытать на себе обе роли: больше десяти лет он был инженером, а потом перешел в менеджмент.
Во Flutter анимации - это красиво, но если ими не управлять, они могут съедать ресурсы даже тогда, когда их никто не видит. Сегодня разберем два инструмента, которые помогут анимациям не тормозить интерфейс и не работать впустую.
Многие разработчики привыкли вызывать API прямо в .onAppear. Вроде логично: экран показался - пора грузить данные. В маленьких проектах это работает. Но когда приложение растет, начинаются проблемы: дублирующиеся запросы и утечки памяти.
В Swift 6.4 добавили три новых типа: UniqueBox, Ref и MutableRef. Раньше похожие задачи решались либо через классы с их счетчиками ссылок, либо через небезопасные указатели.
В Swift есть несколько способов работать с ассоциированными значениями enum, и if case let - один из самых полезных, но его синтаксис часто путают. Давайте разберемся, как он работает и в каких случаях помогает писать чище.
Диплинки позволяют открывать приложение по ссылке - перешел по URL и сразу попал на нужный экран. Смена пароля по ссылке из письма, открытие конкретного видео или поста, переход на карточку товара по ссылке - все это работает через deeplinks.
У уважающего себя разработчика должен быть хотя бы один пет-проект. Это не про галочку в резюме и не про демонстрацию того, какой я молодец. Это про возможность делать что-то без ТЗ, без дедлайнов, без согласований. Просто потому, что интересно.
Flutter скрывает от разработчика ручное управление памятью. Кажется, что сборщик мусора все сделает сам. Но на практике утечки случаются регулярно. Экран закрыт, а какие-то объекты продолжают висеть в памяти.