Неочевидная альтернатива `enum`ам. А также кейсам, когда можно использовать вложенные `enum`ы. Например внутри Optional.
https://www.swiftbysundell.com/articles/avoiding-problematic-enum-cases-in-swift/
https://www.swiftbysundell.com/articles/avoiding-problematic-enum-cases-in-swift/
Swift by Sundell
Avoiding problematic cases when using Swift enums | Swift by Sundell
Swift’s enums are awesome, but they’re not always the best choice for modeling a given piece of data. Let’s explore why that is, and what other tools that can be good to keep in mind in order to avoid certain problematic enum cases.
Podlodka iOS crew 5 подходит к концу, но орагнизаторы уже готовят следующий сезон.
Помоги ПК выбрать топовые темы недель, создай свою конфу - заполни небольшую форму.
Среди заполнивших будет разыграна бесплатная проходка на 6 сезон iOS crew!
Помоги ПК выбрать топовые темы недель, создай свою конфу - заполни небольшую форму.
Среди заполнивших будет разыграна бесплатная проходка на 6 сезон iOS crew!
podlodka.io
Онлайн-конференция Podlodka iOS Crew, сезон #16
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам iOS-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
История развития доступности в iOS. Настолько революционной фичи, что вообще никто не понял первую презентацию.
https://habr.com/ru/company/dododev/blog/559622/
https://habr.com/ru/company/dododev/blog/559622/
Хабр
Доступность на iOS началась с «36 секунд»
8 июня 2009 года Фил Шиллер выступил на WWDC. Всего 36 секунд он неловко говорил о VoiceOver, Zoom, White on Black (с iOS 6 называется Invert Colors) и Mono Audio. Это были первые реальные...
На что заменили Target-Action из UIKit, и почему замыкания лучше. Что такое SubscriptionView - возвращаемое значение
https://www.fivestars.blog/articles/swiftui-patterns-closures/
onReceive(_:perform:)
.https://www.fivestars.blog/articles/swiftui-patterns-closures/
FIVE STARS
SwiftUI patterns: view closures | FIVE STARS
A tour into how SwiftUI has replaced UIKit's Target-Action design pattern
Хак с проверкой, заблокирован ли девайс, через сохранение в Keychain константы.
https://nemecek.be/blog/104/checking-if-device-is-locked-or-sleeping-in-ios
https://nemecek.be/blog/104/checking-if-device-is-locked-or-sleeping-in-ios
nemecek.be
Checking if device is locked (or sleeping) in iOS
This is easier in the main app, but there is a way to do this in the extension as well.
Все новое с прошедшего WWDC. Если читать нравится больше, чем смотреть видео.
https://developer.apple.com/documentation/New-Technologies-WWDC-2021
https://developer.apple.com/documentation/New-Technologies-WWDC-2021
Сочетание macOS 12 beta + M1 + Xcode не работает. Не важно, насколько технология важна для Apple, сложности и баги не выбирают.
https://dimillian.medium.com/xcode-is-not-working-under-rosetta-anymore-on-macos-12-on-apple-silicon-b93f64a362f7
https://dimillian.medium.com/xcode-is-not-working-under-rosetta-anymore-on-macos-12-on-apple-silicon-b93f64a362f7
Medium
Xcode is not working under Rosetta anymore on macOS 12 on Apple Silicon
It could be a beta 1 issue but I prefer to warn you.
DocC воспринимает только публичные части кода, даже
https://www.hackingwithswift.com/articles/238/how-to-document-your-project-with-docc
internal
игнорируется. По уровню интеграции он лучше, чем другие решения, но функционал пока отстает в некоторых частях. Ждем опенсорса к концу этого года.https://www.hackingwithswift.com/articles/238/how-to-document-your-project-with-docc
Hacking with Swift
How to document your project with DocC
Markdown-powered documentation is now just a click away.
Бесконечно обсуждать можно 3 вещи: _, _, нужны ли DTO. Вывод из статьи: не нужны, пока совсем не припрет. Забота о будущем - это преждевременная оптимизация и не стоит шаблонного кода.
https://michaellong.medium.com/why-we-shouldnt-use-data-transfer-objects-in-swift-38dcef529a66
https://michaellong.medium.com/why-we-shouldnt-use-data-transfer-objects-in-swift-38dcef529a66
Medium
Why We Shouldn’t Use Data Transfer Objects In Swift
A case for and against (mostly against) using classic DTO’s.
Как
https://benscheirman.com/2021/06/async-await-and-the-future-of-combine/
AsyncSequence
может повлиять на будущее Combine, который не получил развития на этом WWDC.https://benscheirman.com/2021/06/async-await-and-the-future-of-combine/
Ben Scheirman
Async/Await and the Future of Combine
Swift 5.5 is here with Xcode 13 Beta and with it comes my favorite new addition to Swift: Async/Await.
Хотите создавать приложения для Apple, даже если раньше никогда не программировали?
Начните с изучения Swift — языка программирования для разработчиков iOS и macOS.
Прямо сейчас запишитесь на бесплатный интенсив GeekBrains «Swift для начинающих».
За два часа вы:
- узнаете особенности и преимущества Swift;
- научитесь использовать базовые конструкции Swift;
- создадите простое iOS-приложение.
Участие бесплатное, регистрация по ссылке.
Начните с изучения Swift — языка программирования для разработчиков iOS и macOS.
Прямо сейчас запишитесь на бесплатный интенсив GeekBrains «Swift для начинающих».
За два часа вы:
- узнаете особенности и преимущества Swift;
- научитесь использовать базовые конструкции Swift;
- создадите простое iOS-приложение.
Участие бесплатное, регистрация по ссылке.
GeekBrains
Курс Swift для начинающих. Знакомство с языком Swift | Обучение программированию онлайн | GeekBrains - образовательный портал
Хотите научиться создавать мобильные приложения? Пройдите интенсивный двухчасовой курс по Swift на GeekBrains.ru и узнайте основы языка Swift с опытными преподавателями.
Почему вложенные Optional’ы все еще существуют. Они могут быть полезны в определенном контексте, например при извлечении опциональных элементов из стека.
https://brodigy.medium.com/nested-optionals-in-swift-design-mistake-by-apple-7240ea61edd
https://brodigy.medium.com/nested-optionals-in-swift-design-mistake-by-apple-7240ea61edd
Medium
Nested Optionals in Swift, design mistake?
Some time ago I stumbled upon this extension:
Как происходит модуляризация при 110 фреймворках и 2+ приложениях. Процесс разбирается на примере выделения чата в один общий фреймворк, внедряемый в несколько приложений. Плюсом рассказывается о преимуществах явных зависимостей над неявными, использовании xcconfig для настроек сборки каждого модуля.
https://medium.com/bumble-tech/modularising-an-ios-app-3ea131a5c809
https://medium.com/bumble-tech/modularising-an-ios-app-3ea131a5c809
Medium
Modularising an iOS app
Why and how we have been breaking Badoo app up into modules
Пример, как можно организовать работу с диплинками при модульной архитектуре. Выносим обработку диплинков в сами модули, при открытии выбираем подходящий.
https://nbelopotapov.medium.com/better-routing-with-deep-links-in-ios-app-451c52371ac8
https://nbelopotapov.medium.com/better-routing-with-deep-links-in-ios-app-451c52371ac8
Medium
Better deep links handling in modular iOS App
Change you app navigation
5 июля старт Podlodka Soft Skills Crew – нашей новой конференции про софт-скиллы для инженеров!
🟢 Тема первой недели: Коммуникации
Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них.
🟢 Тема второй недели: Problem solving
Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели.
Подробности нашего свежего формата уже на сайте, смотри и успевай по скидке!🔥По традиции, она действует до конца недели.
🟢 Тема первой недели: Коммуникации
Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них.
🟢 Тема второй недели: Problem solving
Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели.
Подробности нашего свежего формата уже на сайте, смотри и успевай по скидке!🔥По традиции, она действует до конца недели.
podlodka.io
Онлайн-конференция Podlodka Soft Skills Crew, сезон #6
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Как избежать лишних вычислений в SwiftUI: вынести все взаимодействие с данными в отдельную сущность и отдавать их с изменениями при помощи аттрибута
https://swiftbysundell.com/articles/avoiding-swiftui-value-recomputation/
@Published
.https://swiftbysundell.com/articles/avoiding-swiftui-value-recomputation/
Swift by Sundell
Avoiding having to recompute values within SwiftUI views | Swift by Sundell
When using multiple computed properties within SwiftUI views could become problematic, and various approaches to fix those kinds of problems.
Лонгрид про модуляризацию. В Badoo собрали несколько внутренних инструментов для отображения, проверки и починки графа зависимостей, аналитики по времени и количеству билдов для каждого модуля.
https://medium.com/bumble-tech/modularising-the-badoo-ios-app-ce75d5a7aba7
https://medium.com/bumble-tech/modularising-the-badoo-ios-app-ce75d5a7aba7
Medium
Modularising the Badoo iOS app
Dealing with knock-on effects
В Xcode 13 можно будет ставить брейкпоинты на одно из нескольких замыканий или вызываемых функций внутри одной строки. Правда пока, похоже, не работает.
https://useyourloaf.com/blog/xcode-column-breakpoints/
https://useyourloaf.com/blog/xcode-column-breakpoints/
Use Your Loaf - iOS Development News & Tips
Xcode Column Breakpoints
Xcode 13 adds column breakpoints which work like a more granular version of line breakpoints.
Task local values могут помочь отделить параллельные цепочки вызовов друг от друга.
https://www.donnywals.com/what-are-swift-concurrencys-task-local-values/
https://www.donnywals.com/what-are-swift-concurrencys-task-local-values/
Donny Wals
What are Swift Concurrency’s task local values? – Donny Wals
If you’ve been following along with Swift Concurrency in the past few weeks, you might have come across the term "task local values". Task local values are, like the name suggests…
Со Swift 5.5 можно забыть про преобразования CGFloat к Double и обратно. Теперь они взаимозаменяемы.
https://www.swiftbysundell.com/tips/double-cgfloat-auto-conversions/
https://www.swiftbysundell.com/tips/double-cgfloat-auto-conversions/
Swift by Sundell
Automatic conversions between Double and CGFloat values in Swift 5.5 | Swift by Sundell
How the Swift compiler is now able to automatically perform conversions between Double and CGFloat values.