Вышел опенсорсный SwiftDependencyChecker – инструмент для проверки того, есть ли среди CocoaPods/Carthage/SwiftPM зависимостей вашего проекта уязвимости.
https://blog.devgenius.io/swiftdependencychecker-check-cocoapods-carthage-and-swift-pm-dependencies-for-known-def2fba890c
https://blog.devgenius.io/swiftdependencychecker-check-cocoapods-carthage-and-swift-pm-dependencies-for-known-def2fba890c
Medium
SwiftDependencyChecker — check CocoaPods, Carthage and Swift PM dependencies for known vulnerabilities
One source of vulnerabilities in our applications is the use of vulnerable versions of third party libraries. There are public…
В iOS 15 появились новые API для асинхронной загрузки изображений с диска или из сети. Обязательно посмотрите на них, потому что они могут порешать многие из старых проблем, ускорить анимации и улучшить воспринимаемый перфоманс.
https://pspdfkit.com/blog/2021/ios-15-image-api/
https://pspdfkit.com/blog/2021/ios-15-image-api/
Nutrient
Loading Images on iOS 15 | Nutrient
We discuss the new iOS 15 APIs provided by UIKit for loading and displaying images and the SwiftUI APIs for loading an image from a remote URL.
На Reddit делятся инструментами, которые помогают в iOS разработке. Посмотрите тред, может быть, найдете что-то новое!
https://www.reddit.com/r/swift/comments/s2vcj2/what_iosmacos_apps_do_you_love_for_development
https://www.reddit.com/r/swift/comments/s2vcj2/what_iosmacos_apps_do_you_love_for_development
Reddit
From the swift community on Reddit
Explore this post and more from the swift community
Я хочу потестить на канале новый формат – Q&A с классными экспертами в iOS разработке. Как это будет выглядеть – в определенный день эксперт подключается к нашему чату и в течение нескольких часов отвечает на все вопросы, которые прилетают. Потом мы из этого собираем отдельную заметку, чтобы опоздавшие могли почитать краткое содержание.
👍 – если идея топ
👎 – если идея мусор
А главное – накидайте в комменты идей конкретных экспертов, с кем было бы интересно вот так пообщаться!
👍 – если идея топ
👎 – если идея мусор
А главное – накидайте в комменты идей конкретных экспертов, с кем было бы интересно вот так пообщаться!
Вот уже несколько месяцев в сообществе обсуждается дизайн Swift API для работы со временем и измерения его интервалов. Посмотрите на пропозал, выглядит интересно. Помимо деталей того, как эти функции будут работать в Swift, есть и краткий обзор других языков.
https://github.com/apple/swift-evolution/blob/main/proposals/0329-clock-instant-duration.md
https://github.com/apple/swift-evolution/blob/main/proposals/0329-clock-instant-duration.md
GitHub
swift-evolution/proposals/0329-clock-instant-duration.md at main · apple/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - apple/swift-evolution
📆Подошла к концу третья рабочая неделя в этом году, а вы, дорогие айосеры, уже все успели повыгорать! Но ничего, держимся, и противопоставляем жажду знаний опостылевшей рутине. Вам с этим поможет наш еженедельный дайджест топовых постов в канале. Не забудьте пошарить его в свои рабочие чатики, локальные сообщества и куда захотите еще.
🛠Эта неделя отметилась большим количеством рекомендаций классного тулинга. Попробуйте прямо в понедельник выделить несколько часов на то, чтобы поиграться с чем-то из списка на своем проекте.
Подборка инструментов на Reddit
DocC: Генерация сайтов для swift библиотек
Swiftalyzer: граф зависимостей между элементами проекта
SwiftDependencyChecker: поиск уязвимостей в ваших зависимостях
🏎Две статьи, которые с разных сторон подходят к вопросу перфоманса. В первой разработчик, пытаясь разобраться с багом, закончил построением системы детектирования просадок в FPS, а во второй рассматриваются возможности ускорения загрузки изображений с помощью нового API.
Падение FPS в Авито (тут еще обязательно комменты почитайте, там есть веселые споры!)
Загрузка изображений в iOS 15
👷♀️Ну и, конечно, какой же гудридс без архитектуры!
Вводная статья в Microapps architecture
Swift Islands: промежуточная архитектура при рефакторинге с ObjC на Swift
💬Экспериментальная рубрика в этом дайджесте – срачи в iOS Good Talks. На этой неделе мне запомнилось великой силы обсуждение того, что DI не нужен. Начинать читать можно где-то с этого сообщения.
Если вам понравился дайджест – поставьте ему сердечко, харт, heart, лойс, лайк или что вам захочется. Буду писать дайджесты, пока получаю положительные реакции, учтите! А все предложения по формату – в комменты.
#digest
🛠Эта неделя отметилась большим количеством рекомендаций классного тулинга. Попробуйте прямо в понедельник выделить несколько часов на то, чтобы поиграться с чем-то из списка на своем проекте.
Подборка инструментов на Reddit
DocC: Генерация сайтов для swift библиотек
Swiftalyzer: граф зависимостей между элементами проекта
SwiftDependencyChecker: поиск уязвимостей в ваших зависимостях
🏎Две статьи, которые с разных сторон подходят к вопросу перфоманса. В первой разработчик, пытаясь разобраться с багом, закончил построением системы детектирования просадок в FPS, а во второй рассматриваются возможности ускорения загрузки изображений с помощью нового API.
Падение FPS в Авито (тут еще обязательно комменты почитайте, там есть веселые споры!)
Загрузка изображений в iOS 15
👷♀️Ну и, конечно, какой же гудридс без архитектуры!
Вводная статья в Microapps architecture
Swift Islands: промежуточная архитектура при рефакторинге с ObjC на Swift
💬Экспериментальная рубрика в этом дайджесте – срачи в iOS Good Talks. На этой неделе мне запомнилось великой силы обсуждение того, что DI не нужен. Начинать читать можно где-то с этого сообщения.
Если вам понравился дайджест – поставьте ему сердечко, харт, heart, лойс, лайк или что вам захочется. Буду писать дайджесты, пока получаю положительные реакции, учтите! А все предложения по формату – в комменты.
#digest
Reddit
From the swift community on Reddit
Explore this post and more from the swift community
В приложениях часто бывает нужно отобразить какой-то контент в WebView. Иногда это просто какая-то страница сайта, вроде FAQ, а иногда – что-то посложнее. Например, когда я писал почтовый клиент, в вебвьюшке мы рендерили html письма.
Случается, что вебвью-контент не очень подходит для отображения. Например, стили не соответствуют выбранным в приложении. Или, что еще хуже, он не адаптивный, и не скейлится под размер экрана. Один из самых простых способов решить проблему – JavaScript-инъекция в вебвью. Вы на лету можете встроить любые скрипты или стили в отображаемый сайт. В статье рассказывается, как этот механизм работает, и дается несколько примеров его использования.
https://swiftsenpai.com/development/web-view-javascript-injection
Случается, что вебвью-контент не очень подходит для отображения. Например, стили не соответствуют выбранным в приложении. Или, что еще хуже, он не адаптивный, и не скейлится под размер экрана. Один из самых простых способов решить проблему – JavaScript-инъекция в вебвью. Вы на лету можете встроить любые скрипты или стили в отображаемый сайт. В статье рассказывается, как этот механизм работает, и дается несколько примеров его использования.
https://swiftsenpai.com/development/web-view-javascript-injection
Swift Senpai
Injecting JavaScript Into Web View In iOS - Swift Senpai
Learn how to inject JavaScript into the iOS web view (WKWebView) to customize the HTML styling to fit the look and feel of your apps.
Есть, кстати, удобная библиотека, с помощью которой можно построить полноценный мост между JS и нативным кодом. Она на ObjC, но это совсем не повод ее не использовать.
https://github.com/marcuswestin/WebViewJavascriptBridge
https://github.com/marcuswestin/WebViewJavascriptBridge
GitHub
GitHub - marcuswestin/WebViewJavascriptBridge: An iOS/OSX bridge for sending messages between Obj-C and JavaScript in UIWebViews/WebViews
An iOS/OSX bridge for sending messages between Obj-C and JavaScript in UIWebViews/WebViews - marcuswestin/WebViewJavascriptBridge
Подборка советов по тому, как писать и запускать unit тесты. Ничего кардинально нового, но пригодится как памятка тем, кто свою первую тысячу тестов еще не написал.
https://www.avanderlee.com/swift/unit-tests-best-practices
https://www.avanderlee.com/swift/unit-tests-best-practices
SwiftLee
Getting started with Unit Tests in Swift
Get started and learn how to write unit tests to validate your code. Best practices help you to be more productive by writing better tests.
Главный технический лонгрид прошлой недели. Да что там, я не уверен, что в 2022 выйдет еще что-то настолько же офигенное. Статья, максимально детально разбирающая, как работает GPS: определение местоположения, синхронизация времени, организация радиосигналов. Весь текст сопровождается интерактивными моделями, которые помогают вникнуть в описываемые алгоритмы. Короче, забирайте себе в сохраненки, не пожалеете!
https://ciechanow.ski/gps/
https://ciechanow.ski/gps/
ciechanow.ski
GPS – Bartosz Ciechanowski
Interactive article explaining how GPS works.
Продолжаем серию хинтов для тех, кто работает в Xcode. Иногда бывает нужно на продолжительное время сосредоточиться именно на редакторе кода – например, чтобы реализовать какой-то сложный алгоритм. Чтобы ничего не отвлекало, настройте себе шорткат на кастомный behaviour, который будет скрывать все лишние панели.
https://twitter.com/wattmaller1/status/1482482745574055936
https://twitter.com/wattmaller1/status/1482482745574055936
Twitter
Matt Waller
iOS devs, came up with a cool little custom behavior in Xcode called "Focus Up." It hides the debugger, inspector, & navigator to show only the editor A little video to show the steps to make it. My shortcut is "command + shift + x" but make it whatever you…
После прочтения статей про async/await, думаю, вы заметили, что сам API довольно минималистичный, и для ряда задач его придется расширять самостоятельно. По ссылке – несколько примеров таких расширений.
https://trycombine.com/posts/swift-async-sequence-extensions-1/
https://trycombine.com/posts/swift-async-sequence-extensions-1/
try Code
Swift Async Sequence extensions (part 1)
Swift development related blog-posts. Combine, modern concurrency model, Instruments, and more.
На прошлой неделе я шарил вводную статью из цикла про Microapps architecture. Судя по реакциям, вам понравилось, поэтому держите продолжение. В нем рассказывается, как в этой архитектуре устроен модуль отдельной фичи и как он взаимодействует с дизайн системой, которая лежит в другом пакете.
https://swiftwithmajid.com/2022/01/19/microapps-architecture-in-swift-feature-modules/
https://swiftwithmajid.com/2022/01/19/microapps-architecture-in-swift-feature-modules/
Swift with Majid
Microapps architecture in Swift. Feature modules.
In the first post of the current series, I talked about Swift Package Manager basics and how we can maintain the project with many Swift modules. This week we continue the topic of Microapps architecture by introducing feature modules.
Вышло новое приложение для снятия и обработки скриншотов. Из полезных фичей:
- Можно быстро прятать чувствительную информацию
- Встроенная рулетка для пиксель-перфект измерений
- Простые и понятные инструменты для добавления текста и всяких пометок
- Нативное и довольно отзывчивое
https://shottr.cc/
- Можно быстро прятать чувствительную информацию
- Встроенная рулетка для пиксель-перфект измерений
- Простые и понятные инструменты для добавления текста и всяких пометок
- Нативное и довольно отзывчивое
https://shottr.cc/
Shottr – screenshot app for pixel professionals
Free Mac screenshot app that allows you to zoom in, measure things and pick colors.
Последние годы средний релизный цикл мобильных приложений сильно сократился. Если раньше все удивлялись двухнедельному перерыву между версиями, то сейчас нормой считается уже одна неделя. Частые релизы прячут за собой серьезную проблему, которая не всегда очевидна сразу – это длинный хвост старых версий приложения, которые нужно поддерживать. Особенно больно это может бить по вашей команде бэкендеров, которые должны будут поддерживать много версий API без возможности спокойно их дропнуть. Про то, как справляться с таким хвостом версий – в статье по ссылке.
https://habr.com/ru/company/skyeng/blog/593571/
https://habr.com/ru/company/skyeng/blog/593571/
Хабр
Force Update — механизм принудительного обновления мобильных приложений
Абсолютное большинство мобильных приложений имеет интересный нюанс – «хвост» старых версий, которыми все еще продолжают пользоваться. В этой статье мы посмотрим, какие проблемы это приносит и как с...
В iOS 15 появилась фича prewarming, которая помогает сократить время холодного старта приложения. Читатель нашего канала попробовал ее и рассказал, как она устроена под капотом и чего от нее ожидать.
https://medium.com/@xNVST/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B5%D0%B2-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-ios-15-b8da9c0326b4
https://medium.com/@xNVST/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B5%D0%B2-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-ios-15-b8da9c0326b4
Medium
Прогрев приложения iOS 15
iOS 15 принесла нам много нововведений. Среди них есть системная фича Prewarming, позволяющая “прогревать” наши приложения, чтобы сократить…
2 февраля пройдет старый добрый айосный онлайн митап. В программе анимации, async/await и снепшотное тестирование.
https://raiffeisen-events.timepad.ru/event/1904388/
https://raiffeisen-events.timepad.ru/event/1904388/
raiffeisen-events.timepad.ru
iOS Community Meetup #1: обсудим актуальные технологии iOS-разработки / События на TimePad.ru
2 февраля iOS Community Райффайзен Банка проведет свой первый открытый митап. Он пройдет в онлайн-формате. В программе выступления из Райффайзен Банка, ManyChat, а также один независимый эксперт. Ссылка на трансляцию будет направлена всем зарегистрированным…
Продолжаем знакомиться с фреймворком CryptoKit, на этот раз с реализацией криптографии с симметричным ключом.
https://tanaschita.com/20220120-symmetric-key-cryptography-with-cryptokit
https://tanaschita.com/20220120-symmetric-key-cryptography-with-cryptokit
Tanaschita
Symmetric-key cryptography with CryptoKit for iOS
Learn how to use CryptoKit to increase security in iOS applications, how to generate and exchange a shared secret, how to encrypt, decrypt and sign with symmetric key in Swift.
Я уже третий год подряд жду, что на WWDC покажут современную замену CoreData. Что-то легковесное, не требующее сетапа какой-то бесконечной иерархии объектов и не выжигающее из тебя душу. А еще – адаптированное к языковым фичам Swift. В статье показывается один из примеров, почему это важно – Optional-свойства в CoreData и Swift живут в немного разных системах координат.
https://www.atomicbird.com/blog/clash-of-the-optionals/
https://www.atomicbird.com/blog/clash-of-the-optionals/
Title
Clash of the Optionals
…or, how to accidentally break Swift initialization rules.
Today I’m going to talk about optionals. Swift optionals. And also another kind of optional. And how you might break the ironclad rules of Swift without realizing it until it’s too late.
What is an…
Today I’m going to talk about optionals. Swift optionals. And also another kind of optional. And how you might break the ironclad rules of Swift without realizing it until it’s too late.
What is an…
Стоит ли нам ждать замену CoreData?
Anonymous Poll
6%
Да, в этом году уже точно выйдет!
22%
В течение нескольких лет должна появиться
12%
Не в ближайшие 3-4 года
20%
Зачем, когда есть CoreData
12%
Зачем, когда есть Realm 🤡
28%
Посмотреть результаты