Простой совет, позволяющий отделить результат команды от всех остальных логов при дебаге. Настройте цвет покислотнее.
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 #8
Недельное мероприятие от команды 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.
Хеширование в Swift для начинающих - как оно работает и используется в коллекциях в общем случае и в Swift. Для освежения знаний тоже подойдет.
https://drebenko.notion.site/Swift-ea16b79f8d56430f87b76c0398fe9db3
https://drebenko.notion.site/Swift-ea16b79f8d56430f87b76c0398fe9db3
Dima on Notion
Хеширование в Swift. Что это и как применять? | Notion
Уровень: Новичок
13 августа Яндекс приглашает на «Дзен-Мобайл: как ускорить рост приложений» — онлайн-митап для iOS- и Android-разработчиков
На митапе обсудят, как устроена мобильная разработка в Яндекс.Дзене, как они делают видео и как внедрили server-side вёрстку в приложениях.
— В докладе об истории видео в Дзене поговорят о том, какие метрики и зачем собирают в разработке видео, как интегрировали рекламу, как организовывают бесшовное проигрывание на нескольких поверхностях и как планируют создать самописный плеер.
— Во второй части расскажут, как переносили вёрстку ленты на сервер, о реализации Backend Driven UI, о том, на какие грабли наступили, и что будут делать дальше.
— А на дискуссии рассмотрят плюсы и минусы независимых подходов к server-side вёрстке от разных компаний.
Участие в мероприятии бесплатное. Зарегистрируйтесь — взамен отправят файл для календаря и два напоминания о трансляции: https://clck.ru/Wcvho
На митапе обсудят, как устроена мобильная разработка в Яндекс.Дзене, как они делают видео и как внедрили server-side вёрстку в приложениях.
— В докладе об истории видео в Дзене поговорят о том, какие метрики и зачем собирают в разработке видео, как интегрировали рекламу, как организовывают бесшовное проигрывание на нескольких поверхностях и как планируют создать самописный плеер.
— Во второй части расскажут, как переносили вёрстку ленты на сервер, о реализации Backend Driven UI, о том, на какие грабли наступили, и что будут делать дальше.
— А на дискуссии рассмотрят плюсы и минусы независимых подходов к server-side вёрстке от разных компаний.
Участие в мероприятии бесплатное. Зарегистрируйтесь — взамен отправят файл для календаря и два напоминания о трансляции: https://clck.ru/Wcvho
Дзен-Мобайл: как ускорить рост приложений
13 августа приглашаем iOS- и Android-разработчиков на онлайн-митап от Яндекс.Дзена.
Обсудим, как устроена мобильная разработка в Яндекс.Дзене, как мы делаем видео и как внедрили server-side верстку в приложениях.
Зарегистрируйтесь — взамен отправим файл…
Обсудим, как устроена мобильная разработка в Яндекс.Дзене, как мы делаем видео и как внедрили server-side верстку в приложениях.
Зарегистрируйтесь — взамен отправим файл…
Частые проблемы DI и как их можно решить, используя современные фичи Swift: Subscript и Property Wrappers.
https://www.avanderlee.com/swift/dependency-injection/
https://www.avanderlee.com/swift/dependency-injection/
SwiftLee
Dependency Injection in Swift using latest Swift features
Dependency Injection using latest Swift features allows you to mock data, and write tests easily without 3rd party dependencies.
Как работает асинхронный
https://oleb.net/2021/async-program-launch-sequence/
main()
со ссылками на код в репо Свифта. С помощью Swift runtime и GCD.https://oleb.net/2021/async-program-launch-sequence/
oleb.net
How Swift runs an async executable – Ole Begemann
Who creates the task for your async <code>main</code> method to run in, and how.
С кооперативной отменой можно было познакомиться и до async/await, но теперь она стала немного лучше.
https://alejandromp.com/blog/the-importance-of-cooperative-cancellation/
https://alejandromp.com/blog/the-importance-of-cooperative-cancellation/
Alexito's World
The importance of cooperative cancellation | Alexito's World
One of the most important aspects to understand about Swift Concurrency is how cancellation of async tasks works. You may expect that when a task is cancelled, it immediately stops,...
Подробнее про
https://www.fivestars.blog/articles/alwaysEmitIntoClient/
@_alwaysEmitIntoClient
- потенциальное решение одного из пороков SwiftUI. Поддержка новых функций фреймворка старыми версиями iOS.https://www.fivestars.blog/articles/alwaysEmitIntoClient/
FIVE STARS
Backporting new features with @_alwaysEmitIntoClient | FIVE STARS
An exploration of the private @_alwaysEmitIntoClient attribute
Как iOS-разработчику с опытом прокачать свой уровень?
💎 9-10 августа в 15.00 мск примите участие в открытом интенсиве «Пишем современное iOS приложение на SwiftUI».
За два дня вы разберете особенности создания UI с помощью фреймворка SwiftUI и напишете бизнес-логику с помощью нативных средств (Combine).
Преподаватель Анна Жаркова объяснит, как использовать новинки, представленные на WWDC 2021, в том числе и async-await.
👉 Для регистрации на интенсив пройдите вступительный тест
💎 9-10 августа в 15.00 мск примите участие в открытом интенсиве «Пишем современное iOS приложение на SwiftUI».
За два дня вы разберете особенности создания UI с помощью фреймворка SwiftUI и напишете бизнес-логику с помощью нативных средств (Combine).
Преподаватель Анна Жаркова объяснит, как использовать новинки, представленные на WWDC 2021, в том числе и async-await.
👉 Для регистрации на интенсив пройдите вступительный тест
Otus
Разработчик iOS: практическое применение Swift 5, работа в Xсode и Git
Курс Разработчик iOS в OTUS с возможностью трудоустройства
Attabench помогает правильно тестировать скорость работы функций и рисовать графики зависимости от размера входных данных. В будущем его должен заменить Swift Collections Benchmark, но пока его развитие происходит не особо активно.
https://swiftrocks.com/benchmarking-swift-code-properly-with-attabench
https://swiftrocks.com/benchmarking-swift-code-properly-with-attabench
Swiftrocks
Benchmarking Swift Code Properly with Attabench
Hmmmm, how fast is this piece of code? Let's find out!