iOS дайджест #37: MVVM + SwiftUI, опыт использования Catalyst

В выпуске: секьюрити ревью приложений в AppStore, SwiftUI под капотом, CLI для iOS-приложений и много крутых библиотек.

Статьи

iOS Performance tips you probably didn’t know (from an ex-Apple engineer)
Советы по производительности на iOS. Про UILabel было неожиданно.

Capture Lists
Статья от старожила iOS-разработки о переменных, захватываемых блоками.

SwiftUI defaults considered harmful
Про особенности реализации SwiftUI. Например, вы не можете положить больше 10 views в коллекцию.

Modern MVVM iOS App Architecture with Combine and SwiftUI
Туториал по MVVM на SwiftUI. Такой себе Redux вышел.

Mastering buttons in SwiftUI
Наконец-то работа с кнопками с помощью SwiftUI стала проще. Особенно по сравнению с NSButton.

TextField in SwiftUI
И еще про нюансы с TextField.

How to Swizzle All of UIKit
Почему бы не взять и не засвизлить все методы UIKit.

Xcode Build Settings
Список всех настроек Build Settings.

Writing command line interfaces for iOS apps
CLI на Swift можно использовать не только для утилит, но и для iOS-приложений с помощью MultipeerConnectivity framework. Например, тестить пуши или подставлять нужные данные.

How Collection Diffing works in Swift
Немного хардкора: как работает поиск дифов для коллекций.

Going Deep With Decodable
Люблю формат «проблема — решение». Именно в таком формате описаны 4 типичные проблемы и их решения при работе с Decodable.

Bringing Adaptivity to Mac Catalyst
Отличный гайд, как ребята переводили iOS-приложение под Mac с помощью Catalyst.

A security review of 1,300 AppStore applications
С одной стороны, это интересное ревью аспектов безопасности, а с другой — это все странно. Неужели так много приложений делают что-то для защиты.

Coordinator pattern in iOS 13 world
Паттерн «координатор» уже плотно проник в жизнь iOS-разработчиков, но вот с iOS 13 и SceneDelegate есть несколько нюансов.

Библиотеки

Timelane — дебагинг асинхронного кода через Instruments.

LocalizedSwift — локализация через Property Wrappers.

SecurePropertyStorage — и заодно — UserDefault и KeyChain через Property Wrappers.

zld — более быстрая альтернатива эпловому линкеру.

SourceKitForSafari — то, чего всегда не хватало — переходы и документация в GitHub.

AnyLint — качественная замена кастомных правил SwiftLint. Не радует только, что надо тянуть еще одну зависимость через Brew.

SPMReady — если хотите переехать с CocoaPods или Carthage на SPM, то это просто незаменимая библиотека, чтобы понять, поддерживают ли все зависимости SPM.

github.com/bitomule/SwiftyPods — описание Podspec на Swift.

Видео

CocoaHeadsNL

Mobius

FunCorp iOS meetup #2

Saint AppsConf 2019


← Предыдущий выпуск: iOS дайджест #36

Похожие статьи:
Привет! Этот дайджест мы решили посвятить Ruby/Rails Gems, собрав гемы для решения типичных задач: от тестирования до безопасности...
Как и ожидалось, компания Google провела пресс-конференцию, на которой были представлены ее новые смартфоны Nexus. Модель Nexus 5X от...
31 березня на передовій загинув Антон Гарбуз, Project Manager у компанії Syndicode. Йому було 33 роки, у героя залишилася дружина...
28 лютого у Києві відбулося нагородження переможців Першої премії DOU. Подія зібрала орієнтовно 300 представників...
В Кабміні готують механізм бронювання співробітників через портал «Дія», підтверджує в коментарі Forbes перша...
Яндекс.Метрика