Как использовать
https://www.avanderlee.com/swift/mainactor-dispatch-main-thread/
@MainActor
для работы с главным потоком и создать свой глобальный Actor
для переиспользования.https://www.avanderlee.com/swift/mainactor-dispatch-main-thread/
SwiftLee
MainActor usage in Swift explained to dispatch to the main thread
MainActor in Swift replaces DispatchQueue.main and ensures tasks are performing on the main thread in a performant manner.
В тех случаях, где SwiftUI работает хорошо, он работает очень хорошо. Обзор состояния SwiftUI и прогноз на будущее.
https://www.jessesquires.com/blog/2021/07/01/is-swiftui-ready/
https://www.jessesquires.com/blog/2021/07/01/is-swiftui-ready/
Jesse Squires
Is SwiftUI ready?
I’ve been following what’s going on with SwiftUI since it was released with iOS 13 at WWDC 2019 and have even taken extensive notes, but I have avoided using...
Свифтовые замыкания проверяются компилятором, чтобы соответствовать парадигме async/await при помощи атрибута
https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/
@Sendable
. Какие именно он накладывает ограничения - в статье.https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/
Andy Ibanez - iOS Developer
Structured Concurrency With Task Groups in Swift
Learn about executing a dynamic amount of concurrency in Swift using Task Groups.
Breaking news. VIPER настолько хорош, что его даже в Apple используют!
https://twitter.com/collindonnell/status/1415052296002539525
https://twitter.com/collindonnell/status/1415052296002539525
Twitter
Collin Donnell
On my team at Apple, we used VIPER and a lot of other less-than-standard patterns. I struggled with it a lot more than anyone else on the team. Any task required routing through six classes, and I found myself physically exhausted when I had to interact with…
Упрощение группировки элементов и выбора N случайных элементов при помощи функций высшего порядка и других фич коллекций в Swift.
https://swiftsenpai.com/swift/5-complex-algorithms-simplified/
https://swiftsenpai.com/swift/5-complex-algorithms-simplified/
Swift Senpai
5 Complex Algorithms Simplified Using Swift's Higher-Order Functions - Swift Senpai
5 practical example of using Swift's higher order function to reduce code complexity when dealing with complex algorithms.
Используете или пробовали KMM? Пройдите небольшой опрос, который поможет оценить текущее состояние экосистемы!
https://surveys.jetbrains.com/s3/Kotlin-Multiplatform-user-survey-July-2021
https://surveys.jetbrains.com/s3/Kotlin-Multiplatform-user-survey-July-2021
Jetbrains
Kotlin Multiplatform User Survey
Kotlin Multiplatform User Survey.
На связи Орка – пожалуй, лучшее европейское приложение для инвестиций. Как Тинькофф-Инвестиции, но для Великобритании, а потом – и для всей Европы. Это технически сложное приложение, в основе которого много исследований, разработки и аналитики. Всё для того, чтобы в телефоне конечного пользователя был простой и понятный инстумент, с которым инвестировать может абсолютно каждый. Выводить такой продукт на западный рынок – задача непростая, но крайне интересная! Согласен? Тогда присоединяйся!
Что есть сейчас в проекте:
⁃ iOS 13+ и готовность потрогать SwiftUI, но на данный момент основной инструмент UIKit.
⁃ свежий взгляд на архитектуру.
⁃ переиспользование UI компонентов, дизайн система, верстка с AutoLayout в коде.
Подробнее о нас и задачах тут: job.orca.app/ios
Пиши @anna_orca
Что есть сейчас в проекте:
⁃ iOS 13+ и готовность потрогать SwiftUI, но на данный момент основной инструмент UIKit.
⁃ свежий взгляд на архитектуру.
⁃ переиспользование UI компонентов, дизайн система, верстка с AutoLayout в коде.
Подробнее о нас и задачах тут: job.orca.app/ios
Пиши @anna_orca
Как Airbnb рендерит UI на бэке. Разбиение на компоненты, компактный и широкий режимы. И все это с использованием GraphQL.
https://medium.com/airbnb-engineering/a-deep-dive-into-airbnbs-server-driven-ui-system-842244c5f5
https://medium.com/airbnb-engineering/a-deep-dive-into-airbnbs-server-driven-ui-system-842244c5f5
Medium
A Deep Dive into Airbnb’s Server-Driven UI System
How Airbnb ships features faster across web, iOS, and Android using a server-driven UI system named Ghost Platform 👻.
Простой совет, позволяющий отделить результат команды от всех остальных логов при дебаге. Настройте цвет покислотнее.
https://dasdom.dev/posts/changing-color-for-debugger-output/
https://dasdom.dev/posts/changing-color-for-debugger-output/
dasdom
Make Debugger Console Output Stand Out | dasdom
Sometimes debugger output is hard to find in the debug console because of all the noise. Changing the text color can help.
Лонгрид про базовые вещи в юнит тестировании, когда у вас VIPER. Начиная с принципов и заканчивая конкретными примерами хороших тестов и антипаттернов.
https://habr.com/ru/company/cian/blog/567358/
https://habr.com/ru/company/cian/blog/567358/
Хабр
Тесты в iOS: хороший, плохой, …
Привет! Меня зовут Андрей Михайлов, я работаю iOS-разработчиком в Циан и отвечаю за внедрение модульного тестирования в процесс разработки. Сегодня я немного расскажу о том, какими свойствами должны...
Ускорить перезагрузку данных ячейки с использованием
https://swiftsenpai.com/development/cells-reload-improvements-ios-15/
…DiffableDataSource
можно заменой метода reloadItems
на reconfigureItems
.https://swiftsenpai.com/development/cells-reload-improvements-ios-15/
Swift Senpai
Table and Collection View Cells Reload Improvements in iOS 15 - Swift Senpai
Apple introduced a new way to reload cells in WWDC21, let's explore how we can use it to reload cells with reference and value type items.
AppCode и KMM-плагин — как работает внутри?
Совсем недавно был анонс того, что в AppCode появился плагин для разработки под KMM. Подобное решение выглядит классно, ведь можно использовать одну IDE для того, чтобы писать приложения под KMM сразу и на iOS и на Android.
Но всё ли так хорошо? Насколько стабильно всё работает, и можно ли использовать этот плагин в проде? А какие планы на будущее и что нас ожидает? Ответы на эти и многие другие вопросы мы получим на YouTube-канале AndroidLive.😉
А поговорим обо всём этом с Айдаром Мухаметзяновым — разработчиком из JetBrains, который трудится над AppCode и KMM-плагином для него. До этого Айдар 7 лет разрабатывал iOS приложения в разных компаниях.
Трансляция пройдёт 21 июля в 18:30 по МСК. Обсудим, как плагин работает внутри, а потом вместе сделаем небольшое приложение, которое покажет все возможности IDE.
Ссылка на трансляцию тут. Будет интересно как iOS, так и Android разработчикам, которые думают о Multiplatform 😎
Совсем недавно был анонс того, что в AppCode появился плагин для разработки под KMM. Подобное решение выглядит классно, ведь можно использовать одну IDE для того, чтобы писать приложения под KMM сразу и на iOS и на Android.
Но всё ли так хорошо? Насколько стабильно всё работает, и можно ли использовать этот плагин в проде? А какие планы на будущее и что нас ожидает? Ответы на эти и многие другие вопросы мы получим на YouTube-канале AndroidLive.😉
А поговорим обо всём этом с Айдаром Мухаметзяновым — разработчиком из JetBrains, который трудится над AppCode и KMM-плагином для него. До этого Айдар 7 лет разрабатывал iOS приложения в разных компаниях.
Трансляция пройдёт 21 июля в 18:30 по МСК. Обсудим, как плагин работает внутри, а потом вместе сделаем небольшое приложение, которое покажет все возможности IDE.
Ссылка на трансляцию тут. Будет интересно как iOS, так и Android разработчикам, которые думают о Multiplatform 😎
The JetBrains Blog
Kotlin Multiplatform Mobile for AppCode | The Kotlin Blog
Hi everyone, Today we’re expanding our Kotlin Multiplatform Mobile ecosystem by introducing the Kotlin Multiplatform Mobile (KMM) plugin for AppCode. By using this plugin you can: Specify the str
C iOS15 в CreateML появилась возможность обучаться на девайсе. Гайд как создать приложение, рекомендующее музыку по ключевым словам и лайкнутым альбомам.
https://martinmitrevski.com/2021/07/11/ml-recommendation-app-with-create-ml-on-ios-15/
https://martinmitrevski.com/2021/07/11/ml-recommendation-app-with-create-ml-on-ios-15/
martinmitrevski
ML recommendation app with Create ML on iOS 15
Introduction WWDC21 brought us a lot of new cool things, such as the new Swift concurrency features, Xcode Cloud, new frameworks, as well as updates to the existing ones. One of the highlights for …
Chris Eidhof рассуждает на тему поиска баланса между Not invented here и неконтролируемым количеством зависимостей.
https://chris.eidhof.nl/post/fewer-dependencies/
https://chris.eidhof.nl/post/fewer-dependencies/
Гайд по созданию базовых workflow в Xcode Cloud. Чтобы билдил, тестил для валидации PRов и в бету разливал.
https://www.alexanderlogan.co.uk/wwdc21/004-xcode-cloud/
https://www.alexanderlogan.co.uk/wwdc21/004-xcode-cloud/
alexanderlogan.co.uk
Starter Workflows with Xcode Cloud
Build a workflow suitable for modern development quickly.
Неструктурированный параллелизм дает больше возможностей, чем структурированный. Только вот проверок во время компиляции не будет.
https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/
https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/
Andy Ibanez - iOS Developer
Introduction to Unstructured Concurrency in Swift
Learn how to use unstructured concurrency in Swift with the new mechanism, when structured concurrency doesn't suit your needs.
Серия коротких советов по ревью кода: использовать только необходимое в параметрах функций, правильно работать с техдолгом и помнить, что люди несовершенны.
https://newsletter.ioscodereview.com/issues/code-review-issue-1-highlights-from-2020-675182
https://newsletter.ioscodereview.com/issues/code-review-issue-1-highlights-from-2020-675182
iOS Code Review Newsletter
Code Review - Issue #1 | Highlights from 2020 | Revue
iOS Code Review | Curated code improvement tips - Hi there. How awesome of you to stop by!This issue was actually never sent to anyone. I've just created the
Podlodka анонсировала первый сезон Podlodka Techlead Crew – новой конференции про техническое лидерство, архитектуру систем и инженерные практики. Минимум абстрактного менеджерства, максимум фокуса на проектировании и развитии систем, а также на аспектах правильной инженерной культуры.
🔥Старт 2 августа.
Интенсив продлится две недели. Сессии проходят дважды в день: утром и вечером.
Тебя уже ждут: крутые спикеры, сессии в лайве, ламповое общение и обмен кейсами в слаке, записи (для тех, кто не успевает на лайв).
Темой первой недели стал System design, а второй Качество системы.
Во время первой недели вы:
- Узнаете подходы к проектированию систем с учетом требований и сущностей реального мира
- Научитесь определять контракты взаимодействия частей системы на всех слоях
- Разберетесь, когда и как правильно делать ревью архитектуры, чтобы она соответствовала реализации
На второй неделе:
- Научитесь контролировать качество системы в продакшене
- Узнаете, что такое качественный код, как его измерить и итерационно улучшать
- Изучите практики работы с техдолгом и легаси
Подробности и билеты уже на сайте 😊
🔥Старт 2 августа.
Интенсив продлится две недели. Сессии проходят дважды в день: утром и вечером.
Тебя уже ждут: крутые спикеры, сессии в лайве, ламповое общение и обмен кейсами в слаке, записи (для тех, кто не успевает на лайв).
Темой первой недели стал System design, а второй Качество системы.
Во время первой недели вы:
- Узнаете подходы к проектированию систем с учетом требований и сущностей реального мира
- Научитесь определять контракты взаимодействия частей системы на всех слоях
- Разберетесь, когда и как правильно делать ревью архитектуры, чтобы она соответствовала реализации
На второй неделе:
- Научитесь контролировать качество системы в продакшене
- Узнаете, что такое качественный код, как его измерить и итерационно улучшать
- Изучите практики работы с техдолгом и легаси
Подробности и билеты уже на сайте 😊
podlodka.io
Онлайн-конференция Podlodka Teсhlead Crew #9
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам techlead-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Хорошо там, где не SwiftUI. Как все могло бы быть, видно в Jetpack Compose: независимость от версии ОС, open source, активность авторов в коммьюнити, частота релизов, документация и публичный роадмап.
https://michaellong.medium.com/swiftui-vs-jetpack-compose-why-android-wins-hands-down-b5f849b730db
https://michaellong.medium.com/swiftui-vs-jetpack-compose-why-android-wins-hands-down-b5f849b730db
Medium
SwiftUI vs. Jetpack Compose: Why Android Wins Hands Down
SwiftUI is a powerful tool, but Android’s version is better. Here’s why.
Как реализовать скрытие сайдбара на macOS+SwiftUI. Конечно же с хаками подкапотного
https://sarunw.com/posts/how-to-toggle-sidebar-in-macos/
NSSplitViewController
.https://sarunw.com/posts/how-to-toggle-sidebar-in-macos/
Sarunw
How to show and hide a sidebar in a SwiftUI macOS app | Sarunw
Once the sidebar is collapsed, there is no way to get it back. Learn how to mitigate the situation.