Хороший разбор нового Navigation API в SwiftUI и того, как с его помощью реализовать паттерн Navigator, позволяющий организовать типобезопасную навигацию.
Swift with Majid
Mastering NavigationStack in SwiftUI. Navigator Pattern.
SwiftUI is the declarative data-driven framework allowing us to build complex user interfaces by defining the data rendering on the screen. Navigation was the main pain point of the framework from the very first day. Fortunately, things have changed since…
Хотите узнать, сколько стоит написанный вами код в проекте? Попробуйте scc, утилиту, которая подсчитывает количество строк кода на разных языках и стоимость их написания в долларах по модели COCOMO.
Делитесь результатами в комментариях!
Делитесь результатами в комментариях!
GitHub
GitHub - boyter/scc: Sloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates…
Sloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go - boyter/scc
Репозиторий с реализацией на Swift Charts всех графиков, которые Apple показал на различных сессиях WWDC.
Статьи в основном разбирают изменения в SwiftUI, но и в UIKit подвезли много классных quality of life улучшений.
PSPDFKit попробовали переписать на SwiftUI одно из своих семпловых приложений и поделились впечатлениями:
❌Накопленные знания по дебагу UIKit вьюшек стали бесполезными
❌Previews – крутая фича, но все еще очень ненадежная
❌SwiftUI сильно допиливается в каждом новом релизе iOS. Если вы поддерживаете не только последнюю версию платформы, весь код обрастет воркэраундами для обратной совместимости.
❌Нормальная документация есть только для самых используемых вьюх и API. Информация по всему остальному часто устаревшая и некорректная.
❌Интероп с UIKit в две стороны – боль и требует тонны кода.
Вывод команды: SwiftUI пока не справляется с маркетинговыми обещаниями. Простые вещи делаются сложно, а сложные реализовать почти невозможно.
❌Накопленные знания по дебагу UIKit вьюшек стали бесполезными
❌Previews – крутая фича, но все еще очень ненадежная
❌SwiftUI сильно допиливается в каждом новом релизе iOS. Если вы поддерживаете не только последнюю версию платформы, весь код обрастет воркэраундами для обратной совместимости.
❌Нормальная документация есть только для самых используемых вьюх и API. Информация по всему остальному часто устаревшая и некорректная.
❌Интероп с UIKit в две стороны – боль и требует тонны кода.
Вывод команды: SwiftUI пока не справляется с маркетинговыми обещаниями. Простые вещи делаются сложно, а сложные реализовать почти невозможно.
PSPDFKit
Our Attempt at Rewriting PSPDFKit Catalog in SwiftUI | PSPDFKit
We tried rewriting a part of our PSPDFKit Catalog example project in SwiftUI. Here's what we learned.
В новом релизе SF Symbols появилась возможность задавать им процент окрашивания. Например, в символе Wi-Fi можно закрасить только одну или две полоски, чтобы показать силу сигнала.
Daniel Saidi
SF Symbols 4 variable colors
SF Symbols is an amazing iconography library, that is designed to integrate seamlessly with the various Apple platforms. SF Symbols 4 add...
В SwiftUI выкатили новый API для запрашивания у пользователя оценки в App Store. В посте разбирается, как его завести с учетом всех дополнительных требований и ограничений.
Nil Coalescing
Requesting App Store reviews in SwiftUI
Starting from iOS 16 and macOS 13 we have a SwiftUI API to request App Store reviews. We can read requestReview property from the environment and call it as a function at the appropriate time.
Сравнение на разных задачах трех основных способов написания многопоточного кода – completion handlers, Combine и async/await.
QuickBird Studios
Combine, Closures: A Guide to Modern Asynchronous Swift
A comparison between async/await, Combine, and closures in Swift. Includes an overview of the strengths and weaknesses of the different approaches.
Если вы хотите использовать новый Swift Regex, будьте аккуратнее. Как минимум на некоторых кейсах производительность в сравнении с
NSRegularExpression
различается на порядки – 0.25 сек против 0.002 сек.Twitter
Frank Illenberger 🇺🇦
I'm disappointed by the performance of the new Swift Regex. Take a look at these two versions of a CSS variable lookup. On my Intel iMac, the first one with NSRegularExpression takes 0.0002s to complete an enum over all matches on a 2000 line CSS file. The…
Начиная с Xcode 14, плагины SwiftPM стало возможно запускать напрямую из Xcode. Это касается обоих типов плагинов – и command, и build. Читайте подробный обзор того, как они работают.
Swifty Tech by Marco Eidinger
Xcode integration of Swift Package Plugins in Xcode 14
Learn how Swift package plugins can be used on Xcode projects when using Xcode 14 and what kind of adoption is required by package authors
И сразу же пример такого плагина, которым вы можете вдохновиться.
В Swift 5.7 стала возможной простая проверка двух Any значений на равенство. В статье разбирается, как правильно определить функцию
isEqual
для протокола Equatable
и перегрузить оператор ==.
Nil Coalescing
Check if two values of type Any are equal
In Swift 5.7 that comes with Xcode 14 we can check if two values of type Any are equal, because we can cast values to any Equatable and use any Equatable as a parameter type.
В жизни каждого разработчика наступает утро, когда он просыпается и понимает, что ему нужен личный сайт. А поднимать его веселее на том же техническом стеке, на котором ты пишешь и боевые проекты. Держите гайд по тому, как быстро поднять персональный блог с помощью генератора Publish, написанного на Swift.
Danijela's blog
How to Create a Personal Website in Swift using Publish | Danijela's blog
Publish is a static site generator that lets you build website in your favourite programming language - Swift!
Совсем скоро я буду проводить новый опрос про состояние рынка российской мобильной разработки. Отчет за прошлый год – тут. Если у вас есть какие-то рациональные предложения по тому, какие вопросы стоит добавить, какие компании не забыть включить – напишите в комментарии или мне в личку.
Etolstoy
Известность команд мобильной разработки в 2021
Результаты большого опроса мобильщиков на 2021 год: в каких компаниях хотят работать, как их выбирают, на какие конференции ходят.
GitHub markdown немного прокачали и добавили два новых типа блоков:
ℹ️ Note
и ⚠️Warning`.Twitter
Steve Bauman
GitHub's markdown now supports "Note" and "Warning" blockquote annotations! Pretty neat! 👏
Подборка сессий с WWDC, которые точно стоит посмотреть по версии Пола Хадсона:
👀Explore navigation design for iOS
👀Hello Swift Charts
👀The SwiftUI cookbook for navigation
👀Compose custom layouts with SwiftUI
👀Visualize and optimize Swift concurrency
👀Writing for interfaces
👀The craft of SwiftUI API design
👀What’s new in CreateML
👀Improve app size and runtime performance
👀Meet Swift regex
👀Explore navigation design for iOS
👀Hello Swift Charts
👀The SwiftUI cookbook for navigation
👀Compose custom layouts with SwiftUI
👀Visualize and optimize Swift concurrency
👀Writing for interfaces
👀The craft of SwiftUI API design
👀What’s new in CreateML
👀Improve app size and runtime performance
👀Meet Swift regex
Hacking with Swift
WWDC22: Wrap up and recommended talks
Together again for lots of best practices, backed up with a sprinkling of big new features.
Каждый айосер в душе мечтает стать тимлидом, и не красить вьюшки самому, а смотреть, как это делают другие! Для этого есть два верных способа:
👉Подписаться на канал Teamlead Good Reads, куда я каждый день выкладываю топовые материалы про тимлидство.
👉Прийти на конференцию Podlodka Teamlead Crew, которая началась вот прямо сегодня.
Если вы двигаетесь по инженерной ветке развития, то конференция все равно может быть полезна. Всю неделю на ней будут доклады и воркшопы про то, как управлять изменениями в команде и процессах. А это – важный навык для любой сеньорной роли.
Специальный промик на скидку 15% для всех айосеров –
👉Подписаться на канал Teamlead Good Reads, куда я каждый день выкладываю топовые материалы про тимлидство.
👉Прийти на конференцию Podlodka Teamlead Crew, которая началась вот прямо сегодня.
Если вы двигаетесь по инженерной ветке развития, то конференция все равно может быть полезна. Всю неделю на ней будут доклады и воркшопы про то, как управлять изменениями в команде и процессах. А это – важный навык для любой сеньорной роли.
Специальный промик на скидку 15% для всех айосеров –
APPLE_GODS
.Telegram
Teamlead Good Reads – ежедневные советы про менеджмент людей и команд
Самые интересные статьи, видео и новости, связанные с управлением людьми, командами, разработкой и продуктами.
Размещение рекламы: @tanyasanovna
Папка лучших продуктовых каналов: https://t.me/addlist/YvmnHCHUp700Nzky
Размещение рекламы: @tanyasanovna
Папка лучших продуктовых каналов: https://t.me/addlist/YvmnHCHUp700Nzky
Интересная аналитика по тому, сколько изменений принес SwiftUI 4.