Комбинирование Combine с Core Data. Используется все тот же KVO publisher.
https://www.avanderlee.com/combine/nsmanagedobject-observe-changes-core-data/
https://www.avanderlee.com/combine/nsmanagedobject-observe-changes-core-data/
SwiftLee
How to observe NSManagedObject changes in Core Data using Combine
NSManagedObject changes in Core Data can be observed by using Publishers in Combine and keeps both UIViews an SwiftUI Views up to date.
Разница между singleton и shared instance заключается в том что у первого есть приватный конструктор, а второй и паттерном то назвать сложно. Держу в курсе.
https://www.alainschlesser.com/singletons-shared-instances/
https://www.alainschlesser.com/singletons-shared-instances/
Alain Schlesser
Singletons And Shared Instances
Given the popularity of the Singleton design pattern, how comes that some developers decry it as an "anti-pattern"? Can it really be that bad? This article explains the rationale of why it can indeed be that bad and provides alternative approaches that should…
Хотите заниматься iOS разработкой? Сделайте первые шаги на бесплатном интенсиве от OTUS и создайте простейшее приложения без единой строчки кода!
Интенсив пройдет 6-7 мая и даст вам возможность активно протестировать обучение на онлайн-курсе «iOS Developer. Basic».
📌Программа интенсива:
6 мая
Что такое XCode?
Как «рисуются экраны»
Добавим на экраны кнопки и поля ввода. Создадим экран авторизации.
Создадим второй экран нашего приложения и добавим переход на него из окна авторизации.
7 мая
Посмотрим, какие есть возможности что бы «бродить» по приложению.
Добавим свою навигацию
Создадим экран личных данных пользователя ( имя, фото, описание ).
⚡️В итоге получим простенькое приложение без единой строчки кода, но имеющее авторизацию, навигацию и экран пользователя.
Регистрируйтесь, чтобы принять участие: https://otus.pw/frO6/
Интенсив пройдет 6-7 мая и даст вам возможность активно протестировать обучение на онлайн-курсе «iOS Developer. Basic».
📌Программа интенсива:
6 мая
Что такое XCode?
Как «рисуются экраны»
Добавим на экраны кнопки и поля ввода. Создадим экран авторизации.
Создадим второй экран нашего приложения и добавим переход на него из окна авторизации.
7 мая
Посмотрим, какие есть возможности что бы «бродить» по приложению.
Добавим свою навигацию
Создадим экран личных данных пользователя ( имя, фото, описание ).
⚡️В итоге получим простенькое приложение без единой строчки кода, но имеющее авторизацию, навигацию и экран пользователя.
Регистрируйтесь, чтобы принять участие: https://otus.pw/frO6/
Otus
Курс по программированию для IOS для новичков, обучение iOS-разработке с нуля онлайн
Станьте профессионалом в разработке для iOS. Пройдите курс в Otus и научитесь профессионально создавать приложения для iOS
Гайд по операторам времени в Combine: delay, retry, debounce, а так же типам Deffered и Future.
https://www.swiftbysundell.com/articles/controlling-the-timing-of-a-combine-pipeline/
https://www.swiftbysundell.com/articles/controlling-the-timing-of-a-combine-pipeline/
Swift by Sundell
Controlling the timing of a Combine pipeline | Swift by Sundell
How to implement timing features like debouncing, deferring, and delayed retries when building Combine-based data pipelines.
Краткое описание того, как работает OrderedSet в Swift.
https://oleb.net/2021/ordered-set/
https://oleb.net/2021/ordered-set/
oleb.net
How OrderedSet works – Ole Begemann
I did not understand how <code>OrderedSet</code> in the new Swift Collections library uses a hash table of array indices for fast lookups, so I read the source code to find out.
Хардкорный лонгрид обзор на предложение изменений в Swift, которые помогут победить в войне за экзистенциальные типы. Если проще, то благодаря ему будет можно объявлять переменные и свойства любыми протоколами, в том числе с дженериками.
https://www.timekl.com/blog/2021/04/26/swift-generics-2-existentials-boogaloo/
https://www.timekl.com/blog/2021/04/26/swift-generics-2-existentials-boogaloo/
Timekl
Swift Generics 2: Existentials Boogaloo - don't panic
Swift Generics 2: Existentials Boogaloo
It’s been just over two years since we first saw “Improving the UI of
generics,” the discussion post abo...
It’s been just over two years since we first saw “Improving the UI of
generics,” the discussion post abo...
В SPM со Swift 5.5 появятся Package Collections. Если кратко, то появится возможность размещать курируемые листы фреймворков и библиотек, распространяемых через SPM.
https://github.com/apple/swift-package-manager/blob/a5f7859ef5d9b1ff97788e8fa0a71db65e011ce4/Documentation/PackageCollections.md
https://github.com/apple/swift-package-manager/blob/a5f7859ef5d9b1ff97788e8fa0a71db65e011ce4/Documentation/PackageCollections.md
GitHub
apple/swift-package-manager
The Package Manager for the Swift Programming Language - apple/swift-package-manager
Если кратко, то UML умер, а никто и не заметил. Нормально живем без него, отсутствие проектирования всего приложения заранее никому не мешает.
https://www.sicpers.info/2021/04/on-uml/
https://www.sicpers.info/2021/04/on-uml/
Скидка от OTUS на обучение iOS-разработке по промокоду: 21study10
Бесплатные демо-занятия:
👉 13 мая - «Machine Learning в iOS с помощью CoreML и CreateML: изображения, текст, звук»
Поговорим об основных архитектурах нейронных сетей и их оптимизированных версиях под мобильные устройства, а также о возможностях CoreML 3 и 4.
Регистрация: https://otus.pw/87CM/
👉 17 мая - «Пишем клиент для музыкального сервиса»
Попробуем за пару часов написать приложение для работы с музыкальным сервисом.
Регистрация: https://otus.pw/g5vA/
Для записи на занятия необходимо пройти тестирование!
Бесплатные демо-занятия:
👉 13 мая - «Machine Learning в iOS с помощью CoreML и CreateML: изображения, текст, звук»
Поговорим об основных архитектурах нейронных сетей и их оптимизированных версиях под мобильные устройства, а также о возможностях CoreML 3 и 4.
Регистрация: https://otus.pw/87CM/
👉 17 мая - «Пишем клиент для музыкального сервиса»
Попробуем за пару часов написать приложение для работы с музыкальным сервисом.
Регистрация: https://otus.pw/g5vA/
Для записи на занятия необходимо пройти тестирование!
Otus
Разработчик iOS: практическое применение Swift 5, работа в Xсode и Git
Курс Разработчик iOS в OTUS с возможностью трудоустройства
Неоморфизм легко находит отражение в SwiftUI. Продолжаем наслаждаться его визуальными возможностями.
https://sarunw.com/posts/how-to-make-bevel-effect-in-swiftui/
https://sarunw.com/posts/how-to-make-bevel-effect-in-swiftui/
Sarunw
How to make a simple bevel effect using inner shadows in SwiftUI | Sarunw
We can make a simple bevel effect using two inner shadows. SwiftUI has a built-in way to add a drop shadow with the shadow modifier. But if you want to add an inner shadow effect, you need to be a bit creative.
Добавляем новые операторы в Publisher через расширения, чтобы не дублировать их повторяющиеся комбинации или упростить код в месте вызова.
https://swiftwithmajid.com/2021/04/28/building-custom-combine-operators-in-swift/
https://swiftwithmajid.com/2021/04/28/building-custom-combine-operators-in-swift/
Swift with Majid
Building custom Combine operators in Swift
Combine looks like a very sophisticated framework and provides you all the needed things you might need to process your data. It comes with many valuable operators like map, filter, and reduce. This week we will learn how to build new operators that we might…
Если хочется сохранить веб-страницу для просмотра оффлайн, то с iOS 11 доступно сохранение как растровое изображение, а с iOS 14 как PDF или Web archive.
https://blog.artemnovichkov.com/swiftui-offline
https://blog.artemnovichkov.com/swiftui-offline
Teletype
Working with web content offline in SwiftUI apps
Three out-of-box ways to work with web content offline. Of course, with SwiftUI examples.
🍏Какие iOS-разработчики востребованы на рынке труда?
Ждем вас 14 мая в OTUS на встрече с Константином Савяловым, Senior IOS-разработчиком, работавшим над масштабными российскими проектами.
Константин расскажет, что нужно знать начинающему специалисту, чтобы создавать качественные приложения, которые достойны размещения в AppStore.
Во время вебинара вы обсудите требования в вакансиях к джуниорам. Узнаете, как мы проапгрейдили базовый онлайн-курс «iOS Developer», и сможете задать свои вопросы эксперту.
🔑Регистрируйтесь на вебинар и подключайтесь: https://otus.pw/dWzo/
Ждем вас 14 мая в OTUS на встрече с Константином Савяловым, Senior IOS-разработчиком, работавшим над масштабными российскими проектами.
Константин расскажет, что нужно знать начинающему специалисту, чтобы создавать качественные приложения, которые достойны размещения в AppStore.
Во время вебинара вы обсудите требования в вакансиях к джуниорам. Узнаете, как мы проапгрейдили базовый онлайн-курс «iOS Developer», и сможете задать свои вопросы эксперту.
🔑Регистрируйтесь на вебинар и подключайтесь: https://otus.pw/dWzo/
Otus
Курс разработчик iOS, базовый уровень
Научитесь разрабатывать приложения для мобильных устройств Apple без знаний программирования
Автор написал набор протоколов и расширений, чтобы при тестировании было проще локализовать расхождение между полученным и ожидаемым значениями.
https://elegantchaos.com/2021/04/30/matchable.html
https://elegantchaos.com/2021/04/30/matchable.html
Как писать более лаконичные тесты с помощью предикатов. Бонусом можно вспомнить, что вообще предикаты умеют.
https://www.avanderlee.com/swift/nspredicate-xctestexpectations/
https://www.avanderlee.com/swift/nspredicate-xctestexpectations/
SwiftLee
NSPredicate based XCTestExpectations for conditional checks
Block based predicates, formerly known as NSBlockPredicate, allows testing for conditions to become true after asynchronous events.
App Tracking разрешают только 13% по миру и 5% по штатам. Тех, кто запретил даже спрашивать 5% по миру и 3% по штатам.
https://www.flurry.com/blog/ios-14-5-opt-in-rate-att-restricted-app-tracking-transparency-worldwide-us-daily-latest-update/
https://www.flurry.com/blog/ios-14-5-opt-in-rate-att-restricted-app-tracking-transparency-worldwide-us-daily-latest-update/
Flurry
iOS 14.5 Opt-in Rate - Daily Updates Since Launch | Flurry
With Apple's release of iOS 14.5 at the end of April, iOS app developers are now required to request permission to track their users beyond the app in use. In this report, we share the daily opt-in rate as well as the percentage of users with ‘restricted’…
Уверены, вы создаете крутое приложение. А незрячий может им пользоваться?
О том, как сделать продукт доступным, расскажет онлайн-курс для разработчиков (iOS, web и android), дизайнеров и исследователей. Начало совсем скоро, 22 мая!
В программе: теория, практика и тестирование работ вместе с незрячими и слабовидящими людьми. Теорию будут читать:
- Валерия Курмак (AiC),
- iOS: Миша Рубанов (Додо Пицца)
- Android: Женя Кузнецов (Яндекс Go)
- Web: Глафира Жур (SpurIT)
Другие приглашенные спикеры расскажут о доступности в геймдизайне, информационной архитектуре, дизайн-системах и куче еще всего.
Этот курс для тех, кому важно:
😎 обеспечить доступность своего приложения для любого, включая незрячего и парализованного,
👨🦯 прокачаться в создании интерфейсов для людей
💪 повысить свою конкурентоспособность на зарубежном и российском рынке,
✍️ систематизировать знания по инклюзивной разработке,
🧠 стать частью сообщества продвинутых профессионалов.
Дата курса 22.05-27.06
Приходите: https://www.kurmak.info/
О том, как сделать продукт доступным, расскажет онлайн-курс для разработчиков (iOS, web и android), дизайнеров и исследователей. Начало совсем скоро, 22 мая!
В программе: теория, практика и тестирование работ вместе с незрячими и слабовидящими людьми. Теорию будут читать:
- Валерия Курмак (AiC),
- iOS: Миша Рубанов (Додо Пицца)
- Android: Женя Кузнецов (Яндекс Go)
- Web: Глафира Жур (SpurIT)
Другие приглашенные спикеры расскажут о доступности в геймдизайне, информационной архитектуре, дизайн-системах и куче еще всего.
Этот курс для тех, кому важно:
😎 обеспечить доступность своего приложения для любого, включая незрячего и парализованного,
👨🦯 прокачаться в создании интерфейсов для людей
💪 повысить свою конкурентоспособность на зарубежном и российском рынке,
✍️ систематизировать знания по инклюзивной разработке,
🧠 стать частью сообщества продвинутых профессионалов.
Дата курса 22.05-27.06
Приходите: https://www.kurmak.info/
Крутая статья про тонкости работы с URLSession в бэкграунде. Файлы отправляются только из локальной ссылки, вход в бэкграунд может занимать много времени, а еще есть пара сниппетов кода, позволяющих ускорить тестирование.
https://www.avanderlee.com/swift/urlsession-common-pitfalls-with-background-download-upload-tasks/
https://www.avanderlee.com/swift/urlsession-common-pitfalls-with-background-download-upload-tasks/
SwiftLee
URLSession: Common pitfalls with background download & upload tasks
Downloading and uploading from the background with the URLSession API brings some common pitfalls, especially when combined with app extensions.
SmartDev - первая технологическая конференция Сбера
⏱ 20 мая
👨💻 Онлайн и бесплатно
🎯 Регистрация
Сбер впервые организовывает масштабную техно-конференцию, чтобы рассказать, какие возможности открывает для разработчиков, инженеров и других представителей техно-сообщества.
Более 50 топовых российских и международных спикеров, параллельные стримы и live coding от шести активов Сбера:
- SmartMarket —о единой среде разработки приложений от Сбера и инструментах для создания навыков виртуальных ассистентов Салют;
- Platform V — о полноценном PaaS от Сбера;
- SberCloud — об облачной платформе от Сбера;
- ML Space — о платформе для ML-разработки полного цикла от SberCloud;
- Салют + платформы — о виртуальных ассистентах семейства Салют, устройствах от SberDevices и новых возможностях для разработчиков;
- SmartUniverse — о дополнительных сервисах от компаний экосистемы Сбера и партнеров.
Подключайся к конференции 20 мая. Будь в курсе первым!
⏱ 20 мая
👨💻 Онлайн и бесплатно
🎯 Регистрация
Сбер впервые организовывает масштабную техно-конференцию, чтобы рассказать, какие возможности открывает для разработчиков, инженеров и других представителей техно-сообщества.
Более 50 топовых российских и международных спикеров, параллельные стримы и live coding от шести активов Сбера:
- SmartMarket —о единой среде разработки приложений от Сбера и инструментах для создания навыков виртуальных ассистентов Салют;
- Platform V — о полноценном PaaS от Сбера;
- SberCloud — об облачной платформе от Сбера;
- ML Space — о платформе для ML-разработки полного цикла от SberCloud;
- Салют + платформы — о виртуальных ассистентах семейства Салют, устройствах от SberDevices и новых возможностях для разработчиков;
- SmartUniverse — о дополнительных сервисах от компаний экосистемы Сбера и партнеров.
Подключайся к конференции 20 мая. Будь в курсе первым!
17 мая - Бесплатное демо-занятие «Пишем клиент для музыкального сервиса»
Попробуем написать всего за пару часов приложение для работы с музыкальным сервисом.
В качестве технологии используем декларативный фреймворк SwiftUI и Combine.
Для регистрации на занятие, необходимо пройти тестирование: https://otus.pw/nTAu/
🎁 Скидка на курс iOS Professional по промокоду: 21study10
Попробуем написать всего за пару часов приложение для работы с музыкальным сервисом.
В качестве технологии используем декларативный фреймворк SwiftUI и Combine.
Для регистрации на занятие, необходимо пройти тестирование: https://otus.pw/nTAu/
🎁 Скидка на курс iOS Professional по промокоду: 21study10
Otus
Разработчик iOS: практическое применение Swift 5, работа в Xсode и Git
Курс Разработчик iOS в OTUS с возможностью трудоустройства