Каждый четвертый посетитель StackOverflow нажимает Command+C в течение 5 минут с момента открытия страницы. А неодобренные ответы копируются чаще, чем одобренные.
https://stackoverflow.blog/2021/04/19/how-often-do-people-actually-copy-and-paste-from-stack-overflow-now-we-know/
https://stackoverflow.blog/2021/04/19/how-often-do-people-actually-copy-and-paste-from-stack-overflow-now-we-know/
stackoverflow.blog
How often do people actually copy and paste from Stack Overflow? Now we know. - Stack Overflow
Надоело верстать вьюхи и красить кнопки?
Инфраструктурная iOS команда юнита Speed в Авито в поисках разработчика, который будет помогать делать это тем, кому ещё не надоело!
Подробности: https://www.avito.ru/company/job/ios_dev
Инфраструктурная iOS команда юнита Speed в Авито в поисках разработчика, который будет помогать делать это тем, кому ещё не надоело!
Подробности: https://www.avito.ru/company/job/ios_dev
В CocoaPods был баг, который позволял запускать кастомные команды на их сервере. Однострочный эксплоит внутри.
https://justi.cz/security/2021/04/20/cocoapods-rce.html
https://justi.cz/security/2021/04/20/cocoapods-rce.html
justi.cz
Hacking 3,000,000 apps at once through CocoaPods
tl;dr CocoaPods is a popular package manager used by lots of iOS apps (among other Swift and Objective-C Cocoa applications). I found a remote code execution...
Исследователь безопасности рассказывает про процесс написания и публикации книги на техническую тему: как выбрать о чем писать, как договариваться с издателями.
https://serhack.me/articles/how-to-write-technical-book/
https://serhack.me/articles/how-to-write-technical-book/
SerHack – Security Research
How to Write a Technical Book – SerHack Blog
Are you particularly well versed in a field? Why not write a book? I've summarized the 4 main steps to writing and publishing your first technical book.
Анимирование цветных теней - одна из возможностей SwiftUI, которая не под силу ванильному UIKit.
https://serialcoder.dev/swiftui/drop-shadow-in-swiftui/
https://serialcoder.dev/swiftui/drop-shadow-in-swiftui/
SerialCoder.dev
Drop Shadow in SwiftUI - SerialCoder.dev
Read about how to drop shadow on any view in SwiftUI, and discover a couple of practical and useful tricks when applying shadows to buttons.
Если от перехода на Flutter останавливало отсутствие работы с CallKit, то этот вопрос решен.
https://habr.com/ru/company/Voximplant/blog/553422/
https://habr.com/ru/company/Voximplant/blog/553422/
Хабр
Как мы подружили Flutter с CallKit Call Directory
Привет! В этом лонгриде я расскажу о том, как мы в Voximplant пришли к реализации собственного Flutter плагина для использования CallKit во Flutter приложении, и в итоге оказались первыми, кто сделал...
Самописный вариант работы с UICollectionView для отображения листов с неоднородным наполнением на подобие IGListKit. Адаптеры, все такое.
https://habr.com/ru/company/vivid_money/blog/552418/
https://habr.com/ru/company/vivid_money/blog/552418/
Хабр
Подходы к спискам на UICollectionView
Введение Уже давным давно, во всех известных нам галактиках мобильные приложения представляют информацию в виде списков - будь то доставка еды на Татуине, имперская почта или обычный ежедневник...
Комбинирование Combine с Core Data. Используется все тот же KVO publisher.
https://www.avanderlee.com/combine/nsmanagedobject-observe-changes-core-data/
https://www.avanderlee.com/combine/nsmanagedobject-observe-changes-core-data/
SwiftLee
How to observe NSManagedObject changes in Core Data using Combine
NSManagedObject changes in Core Data can be observed by using Publishers in Combine and keeps both UIViews an SwiftUI Views up to date.
Разница между singleton и shared instance заключается в том что у первого есть приватный конструктор, а второй и паттерном то назвать сложно. Держу в курсе.
https://www.alainschlesser.com/singletons-shared-instances/
https://www.alainschlesser.com/singletons-shared-instances/
Alain Schlesser
Singletons And Shared Instances
Given the popularity of the Singleton design pattern, how comes that some developers decry it as an "anti-pattern"? Can it really be that bad? This article explains the rationale of why it can indeed be that bad and provides alternative approaches that should…
Гайд по операторам времени в Combine: delay, retry, debounce, а так же типам Deffered и Future.
https://www.swiftbysundell.com/articles/controlling-the-timing-of-a-combine-pipeline/
https://www.swiftbysundell.com/articles/controlling-the-timing-of-a-combine-pipeline/
Swift by Sundell
Controlling the timing of a Combine pipeline | Swift by Sundell
How to implement timing features like debouncing, deferring, and delayed retries when building Combine-based data pipelines.
Краткое описание того, как работает OrderedSet в Swift.
https://oleb.net/2021/ordered-set/
https://oleb.net/2021/ordered-set/
oleb.net
How OrderedSet works – Ole Begemann
I did not understand how <code>OrderedSet</code> in the new Swift Collections library uses a hash table of array indices for fast lookups, so I read the source code to find out.
Хардкорный лонгрид обзор на предложение изменений в Swift, которые помогут победить в войне за экзистенциальные типы. Если проще, то благодаря ему будет можно объявлять переменные и свойства любыми протоколами, в том числе с дженериками.
https://www.timekl.com/blog/2021/04/26/swift-generics-2-existentials-boogaloo/
https://www.timekl.com/blog/2021/04/26/swift-generics-2-existentials-boogaloo/
Timekl
Swift Generics 2: Existentials Boogaloo - don't panic
Swift Generics 2: Existentials Boogaloo
It’s been just over two years since we first saw “Improving the UI of
generics,” the discussion post abo...
It’s been just over two years since we first saw “Improving the UI of
generics,” the discussion post abo...
В SPM со Swift 5.5 появятся Package Collections. Если кратко, то появится возможность размещать курируемые листы фреймворков и библиотек, распространяемых через SPM.
https://github.com/apple/swift-package-manager/blob/a5f7859ef5d9b1ff97788e8fa0a71db65e011ce4/Documentation/PackageCollections.md
https://github.com/apple/swift-package-manager/blob/a5f7859ef5d9b1ff97788e8fa0a71db65e011ce4/Documentation/PackageCollections.md
GitHub
apple/swift-package-manager
The Package Manager for the Swift Programming Language - apple/swift-package-manager
Если кратко, то UML умер, а никто и не заметил. Нормально живем без него, отсутствие проектирования всего приложения заранее никому не мешает.
https://www.sicpers.info/2021/04/on-uml/
https://www.sicpers.info/2021/04/on-uml/
Неоморфизм легко находит отражение в SwiftUI. Продолжаем наслаждаться его визуальными возможностями.
https://sarunw.com/posts/how-to-make-bevel-effect-in-swiftui/
https://sarunw.com/posts/how-to-make-bevel-effect-in-swiftui/
Sarunw
How to make a simple bevel effect using inner shadows in SwiftUI | Sarunw
We can make a simple bevel effect using two inner shadows. SwiftUI has a built-in way to add a drop shadow with the shadow modifier. But if you want to add an inner shadow effect, you need to be a bit creative.
Добавляем новые операторы в Publisher через расширения, чтобы не дублировать их повторяющиеся комбинации или упростить код в месте вызова.
https://swiftwithmajid.com/2021/04/28/building-custom-combine-operators-in-swift/
https://swiftwithmajid.com/2021/04/28/building-custom-combine-operators-in-swift/
Swift with Majid
Building custom Combine operators in Swift
Combine looks like a very sophisticated framework and provides you all the needed things you might need to process your data. It comes with many valuable operators like map, filter, and reduce. This week we will learn how to build new operators that we might…
Если хочется сохранить веб-страницу для просмотра оффлайн, то с iOS 11 доступно сохранение как растровое изображение, а с iOS 14 как PDF или Web archive.
https://blog.artemnovichkov.com/swiftui-offline
https://blog.artemnovichkov.com/swiftui-offline
Teletype
Working with web content offline in SwiftUI apps
Three out-of-box ways to work with web content offline. Of course, with SwiftUI examples.
Автор написал набор протоколов и расширений, чтобы при тестировании было проще локализовать расхождение между полученным и ожидаемым значениями.
https://elegantchaos.com/2021/04/30/matchable.html
https://elegantchaos.com/2021/04/30/matchable.html
Как писать более лаконичные тесты с помощью предикатов. Бонусом можно вспомнить, что вообще предикаты умеют.
https://www.avanderlee.com/swift/nspredicate-xctestexpectations/
https://www.avanderlee.com/swift/nspredicate-xctestexpectations/
SwiftLee
NSPredicate based XCTestExpectations for conditional checks
Block based predicates, formerly known as NSBlockPredicate, allows testing for conditions to become true after asynchronous events.
App Tracking разрешают только 13% по миру и 5% по штатам. Тех, кто запретил даже спрашивать 5% по миру и 3% по штатам.
https://www.flurry.com/blog/ios-14-5-opt-in-rate-att-restricted-app-tracking-transparency-worldwide-us-daily-latest-update/
https://www.flurry.com/blog/ios-14-5-opt-in-rate-att-restricted-app-tracking-transparency-worldwide-us-daily-latest-update/
Flurry
iOS 14.5 Opt-in Rate - Daily Updates Since Launch | Flurry
With Apple's release of iOS 14.5 at the end of April, iOS app developers are now required to request permission to track their users beyond the app in use. In this report, we share the daily opt-in rate as well as the percentage of users with ‘restricted’…