iOS дайджест #35: курс по Combine, Redux + SwiftUI, Vapor 4
В выпуске: продолжаем изучать SwiftUI, настраиваем GitHub Actions для Swift-проектов и смотрим видео с конференций.
SwiftUI
SwiftUI
Если вы пропустили все про SwiftUI, то вот неплохое начало.
SwiftUI Is Still the Future
SwiftUI — это уже настоящее или все же будущее?
Integrating SwiftUI with UIKit and Developing Xcode Previews for UIKit’s ViewController
Просмотр отрендеренных SwiftUI вьюх — для меня это прям киллер фича. И ее можно использовать для привычных вью контроллеров.
SwiftUI for Mac
Казалось бы, SwiftUI должен работать одинаково на всех платформах, но под мак различия все же есть.
The power of @ViewBuilder in SwiftUI
Если вы уже во всю используете SwiftUI и вьюшки начинают разрастаться, то стоит посмотреть на @ViewBuilder, чтобы разнести создание и отображение.
SwiftUI Animation
Лонгрид про анимации в SwiftUI. Хоть и непривычно писать, но даже анимации выглядят в итоге элегантней.
Building a Custom App Using SwiftUI
И еще про анимации — делаем подобие breath app на Apple Watch.
Data Driven SwiftUI
Делать вьюшки на SwiftUI это хорошо, но ведь хочется разобраться, как использовать их с данными в реальном приложении.
Redux-like state container in SwiftUI. Basics.
Redux-like state container in SwiftUI. Container Views.
И еще про SwiftUI и Redux.
Общее
Haptrix — Core Haptics Designer
Всего лишь API для вибрации, а ребята сделали приложение, чтобы играть музыку с помощью этого!
What’s New in Vapor 4
Вышел Vapor 4. Ради интереса пошел посмотреть, что там Perfect, а у них последний коммит был 8 мая. Грустненько.
A Crash Course in Combine
У Point Free вышел бесплатный курс по Combine. Видео, текстовая версия, код, вот это все.
Opaque Return Types and The ’Some’ Keyword in Swift
Разбираемся, что за новое ключевое слово some и что такое opaque type в Swift.
Dependency injection with Storyboards and Xcode 11
У сторибордов появилась вторая жизнь? Теперь можно нормально использовать initializer injection.
Testing App Launch Time
Уже много было сказано о том, как оптимизировать время запуска приложения, но что-то я не нигде особо не видел, как делать регрессию для этого. И вот пример как сделать тест с помощью XCTOSSignpostMetric.
Github Actions CI for Swift Projects
Пример того, как настроить Github Actions для iOS проекта.
Discover Side Tables — Weak Reference Management Concept in Swift
Как были устроены слабые ссылки в Swift 4+ и до этого.
On Code Reviews
Код ревью — это не место, чтобы проявить своим эго или унизить коллегу. Это место, где ты помогаешь сделать код твоего коллеги лучше с наилучшими намерениями.
No space left on device: Testing low storage scenarios
А как вы тестируете, что на устройстве нет свободного места?
Quick tip: clearing your app’s launch screen cache on iOS
Ох, помню, как только появились XIB’ы для сплеш скринов и сколько было с этим проблем.
Библиотеки
7 Awesome Open Source SwiftUI Projects To Inspire You
Набор крутых приложений, написанных на SwiftUI.
BetterCodable
Начинаем использовать Property Wrappers полным ходом. Например, чтобы упросить работу с Codable
Gallery App for Harvest
Если просто примеры приложений со SwiftUI надоели, то вот Elm Architecture + SwiftUI.
John Sundell наконец-то опубликовал библиотеку для создания статических сайтов.
Видео
Главное на сегодня: пока все праздники не закончились и еще есть время посмотреть видео с конференций.
← Предыдущий выпуск: iOS дайджест #34