iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.4K subscribers
655 photos
64 videos
3.95K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Лучшее iOS сообщество в Телеге: @iosgt

Размещение рекламы: @tanyasanovna
Download Telegram
В iOS 15 появились новые API для асинхронной загрузки изображений с диска или из сети. Обязательно посмотрите на них, потому что они могут порешать многие из старых проблем, ускорить анимации и улучшить воспринимаемый перфоманс.
https://pspdfkit.com/blog/2021/ios-15-image-api/
На Reddit делятся инструментами, которые помогают в iOS разработке. Посмотрите тред, может быть, найдете что-то новое!
https://www.reddit.com/r/swift/comments/s2vcj2/what_iosmacos_apps_do_you_love_for_development
Я хочу потестить на канале новый формат – Q&A с классными экспертами в iOS разработке. Как это будет выглядеть – в определенный день эксперт подключается к нашему чату и в течение нескольких часов отвечает на все вопросы, которые прилетают. Потом мы из этого собираем отдельную заметку, чтобы опоздавшие могли почитать краткое содержание.
👍 – если идея топ
👎 – если идея мусор
А главное – накидайте в комменты идей конкретных экспертов, с кем было бы интересно вот так пообщаться!
Вот уже несколько месяцев в сообществе обсуждается дизайн Swift API для работы со временем и измерения его интервалов. Посмотрите на пропозал, выглядит интересно. Помимо деталей того, как эти функции будут работать в Swift, есть и краткий обзор других языков.
https://github.com/apple/swift-evolution/blob/main/proposals/0329-clock-instant-duration.md
📆Подошла к концу третья рабочая неделя в этом году, а вы, дорогие айосеры, уже все успели повыгорать! Но ничего, держимся, и противопоставляем жажду знаний опостылевшей рутине. Вам с этим поможет наш еженедельный дайджест топовых постов в канале. Не забудьте пошарить его в свои рабочие чатики, локальные сообщества и куда захотите еще.

🛠Эта неделя отметилась большим количеством рекомендаций классного тулинга. Попробуйте прямо в понедельник выделить несколько часов на то, чтобы поиграться с чем-то из списка на своем проекте.
Подборка инструментов на Reddit
DocC: Генерация сайтов для swift библиотек
Swiftalyzer: граф зависимостей между элементами проекта
SwiftDependencyChecker: поиск уязвимостей в ваших зависимостях

🏎Две статьи, которые с разных сторон подходят к вопросу перфоманса. В первой разработчик, пытаясь разобраться с багом, закончил построением системы детектирования просадок в FPS, а во второй рассматриваются возможности ускорения загрузки изображений с помощью нового API.
Падение FPS в Авито (тут еще обязательно комменты почитайте, там есть веселые споры!)
Загрузка изображений в iOS 15

👷‍♀️Ну и, конечно, какой же гудридс без архитектуры!
Вводная статья в Microapps architecture
Swift Islands: промежуточная архитектура при рефакторинге с ObjC на Swift

💬Экспериментальная рубрика в этом дайджесте – срачи в iOS Good Talks. На этой неделе мне запомнилось великой силы обсуждение того, что DI не нужен. Начинать читать можно где-то с этого сообщения.

Если вам понравился дайджест – поставьте ему сердечко, харт, heart, лойс, лайк или что вам захочется. Буду писать дайджесты, пока получаю положительные реакции, учтите! А все предложения по формату – в комменты.
#digest
В приложениях часто бывает нужно отобразить какой-то контент в WebView. Иногда это просто какая-то страница сайта, вроде FAQ, а иногда – что-то посложнее. Например, когда я писал почтовый клиент, в вебвьюшке мы рендерили html письма.

Случается, что вебвью-контент не очень подходит для отображения. Например, стили не соответствуют выбранным в приложении. Или, что еще хуже, он не адаптивный, и не скейлится под размер экрана. Один из самых простых способов решить проблему – JavaScript-инъекция в вебвью. Вы на лету можете встроить любые скрипты или стили в отображаемый сайт. В статье рассказывается, как этот механизм работает, и дается несколько примеров его использования.
https://swiftsenpai.com/development/web-view-javascript-injection
Подборка советов по тому, как писать и запускать unit тесты. Ничего кардинально нового, но пригодится как памятка тем, кто свою первую тысячу тестов еще не написал.
https://www.avanderlee.com/swift/unit-tests-best-practices
Главный технический лонгрид прошлой недели. Да что там, я не уверен, что в 2022 выйдет еще что-то настолько же офигенное. Статья, максимально детально разбирающая, как работает GPS: определение местоположения, синхронизация времени, организация радиосигналов. Весь текст сопровождается интерактивными моделями, которые помогают вникнуть в описываемые алгоритмы. Короче, забирайте себе в сохраненки, не пожалеете!
https://ciechanow.ski/gps/
Продолжаем серию хинтов для тех, кто работает в Xcode. Иногда бывает нужно на продолжительное время сосредоточиться именно на редакторе кода – например, чтобы реализовать какой-то сложный алгоритм. Чтобы ничего не отвлекало, настройте себе шорткат на кастомный behaviour, который будет скрывать все лишние панели.
https://twitter.com/wattmaller1/status/1482482745574055936
После прочтения статей про async/await, думаю, вы заметили, что сам API довольно минималистичный, и для ряда задач его придется расширять самостоятельно. По ссылке – несколько примеров таких расширений.
https://trycombine.com/posts/swift-async-sequence-extensions-1/
На прошлой неделе я шарил вводную статью из цикла про Microapps architecture. Судя по реакциям, вам понравилось, поэтому держите продолжение. В нем рассказывается, как в этой архитектуре устроен модуль отдельной фичи и как он взаимодействует с дизайн системой, которая лежит в другом пакете.
https://swiftwithmajid.com/2022/01/19/microapps-architecture-in-swift-feature-modules/
Вышло новое приложение для снятия и обработки скриншотов. Из полезных фичей:
- Можно быстро прятать чувствительную информацию
- Встроенная рулетка для пиксель-перфект измерений
- Простые и понятные инструменты для добавления текста и всяких пометок
- Нативное и довольно отзывчивое
https://shottr.cc/
Последние годы средний релизный цикл мобильных приложений сильно сократился. Если раньше все удивлялись двухнедельному перерыву между версиями, то сейчас нормой считается уже одна неделя. Частые релизы прячут за собой серьезную проблему, которая не всегда очевидна сразу – это длинный хвост старых версий приложения, которые нужно поддерживать. Особенно больно это может бить по вашей команде бэкендеров, которые должны будут поддерживать много версий API без возможности спокойно их дропнуть. Про то, как справляться с таким хвостом версий – в статье по ссылке.
https://habr.com/ru/company/skyeng/blog/593571/
Я уже третий год подряд жду, что на WWDC покажут современную замену CoreData. Что-то легковесное, не требующее сетапа какой-то бесконечной иерархии объектов и не выжигающее из тебя душу. А еще – адаптированное к языковым фичам Swift. В статье показывается один из примеров, почему это важно – Optional-свойства в CoreData и Swift живут в немного разных системах координат.
https://www.atomicbird.com/blog/clash-of-the-optionals/