Swift становится всё более высокоуровневым языком. Вот и попытка решить за разработчика ряд известных проблем при работе с много-поточностью привела к появлению нового типа в Swift 5.5 – Actors.
Акторы – это математическая модель, здесь ничего нового. Если вы не знакомы с понятием, можете представлять каждый актор как остров, который общается с материком посредством лодок. Вся логика взаимодействия актора с миром содержится в самой модели.
Если говорить уже знакомыми терминами, то актор в Swift, это фактически DispatchQueue, state, а также механизм управления этим состоянием. Иными словами, всё то, что раньше делали вручную, язык берёт на себя.
Это действительно отличный инструмент, который вместе с async/await был рекомендован для внедрения аж 29 июля 2016 года. Спустя 5 лет разработчики дождались. Вооружайтесь, но помните – с любой силой приходит и ответственность 😉
Материалы для изучения:
https://developer.apple.com/videos/play/wwdc2021/10133/
https://betterprogramming.pub/a-deep-dive-into-actors-in-swift-5-5-8cc2fa004ded
Акторы – это математическая модель, здесь ничего нового. Если вы не знакомы с понятием, можете представлять каждый актор как остров, который общается с материком посредством лодок. Вся логика взаимодействия актора с миром содержится в самой модели.
Если говорить уже знакомыми терминами, то актор в Swift, это фактически DispatchQueue, state, а также механизм управления этим состоянием. Иными словами, всё то, что раньше делали вручную, язык берёт на себя.
Это действительно отличный инструмент, который вместе с async/await был рекомендован для внедрения аж 29 июля 2016 года. Спустя 5 лет разработчики дождались. Вооружайтесь, но помните – с любой силой приходит и ответственность 😉
Материалы для изучения:
https://developer.apple.com/videos/play/wwdc2021/10133/
https://betterprogramming.pub/a-deep-dive-into-actors-in-swift-5-5-8cc2fa004ded
Apple Developer
Protect mutable state with Swift actors - WWDC21 - Videos - Apple Developer
Data races occur when two separate threads concurrently access the same mutable state. They are trivial to construct, but are notoriously...
📦 Swift Collections & Swift Algorithms
Apple представила два новых пакета, которые расширяют набор структур данных и алгоритмов в Swift.
Сессия WWDC 2021
https://developer.apple.com/videos/play/wwdc2021/10256/
Swift Collections добавляет три структуры данных (кратко опишем преимущества):
- Deque — коллекция, которая позволяет эффективно добавлять и удалять начальные элементы, при этом эффективность добавления и удаления элементов с конца сопоставима с Array;
- OrderedSet — Set, который сохраняет порядок, в котором элементы были добавлены;
- OrderedDictionary — Dictionary, который сохраняет порядок, в котором элементы были добавлены.
Подробнее: https://swift.org/blog/swift-collections/
Репозиторий: https://github.com/apple/swift-collections
Swift Algorithms добавляет дополнительные эффективные методы для последовательностей и коллекций:
- генерация сочетаний;
- генерация перестановок;
- генерация всех пар двух последовательностей;
- разбиение последовательности на подпоследовательности по переданному условию;
- объединение последовательностей с одинаковым типом данных;
- итерация последовательности заданное количество раз;
- удаление повторяющихся элементов из последовательности;
- случайная выборка элементов k элементов из последовательности;
- разбиение последовательностей;
- поворот последовательности.
Подробнее: https://swift.org/blog/swift-algorithms/
Репозиторий: https://github.com/apple/swift-algorithms
Apple представила два новых пакета, которые расширяют набор структур данных и алгоритмов в Swift.
Сессия WWDC 2021
https://developer.apple.com/videos/play/wwdc2021/10256/
Swift Collections добавляет три структуры данных (кратко опишем преимущества):
- Deque — коллекция, которая позволяет эффективно добавлять и удалять начальные элементы, при этом эффективность добавления и удаления элементов с конца сопоставима с Array;
- OrderedSet — Set, который сохраняет порядок, в котором элементы были добавлены;
- OrderedDictionary — Dictionary, который сохраняет порядок, в котором элементы были добавлены.
Подробнее: https://swift.org/blog/swift-collections/
Репозиторий: https://github.com/apple/swift-collections
Swift Algorithms добавляет дополнительные эффективные методы для последовательностей и коллекций:
- генерация сочетаний;
- генерация перестановок;
- генерация всех пар двух последовательностей;
- разбиение последовательности на подпоследовательности по переданному условию;
- объединение последовательностей с одинаковым типом данных;
- итерация последовательности заданное количество раз;
- удаление повторяющихся элементов из последовательности;
- случайная выборка элементов k элементов из последовательности;
- разбиение последовательностей;
- поворот последовательности.
Подробнее: https://swift.org/blog/swift-algorithms/
Репозиторий: https://github.com/apple/swift-algorithms
📖 Apple DocC
DocC — инструмент для создания документации, представленный Apple на WWDC 2021.
DocC позволяет создавать документацию из MarkDown комментариев для QuickHelp, Developer Documentation и экспортировать её как сайт. Теперь MarkDown в Xcode поддерживает ссылки на другие свойства и методы, а сгенерированная документация позволяет по ним перемещаться.
Пока DocC поддерживает только фреймворки и пакеты, при этом он создает документацию только для public части.
DocC — это не просто аналог Jazzy, кроме создания обычного справочника, в DocC появилась возможность добавлять статьи и туториалы.
Подборка сессий WWDC 2021 про DocC:
– Elevate your DocC documentation in Xcode
– Build interactive tutorials using DocC
– Host and automate your DocC documentation
Также Paul Hudson одним из первых написал статью про DocC.
DocC — инструмент для создания документации, представленный Apple на WWDC 2021.
DocC позволяет создавать документацию из MarkDown комментариев для QuickHelp, Developer Documentation и экспортировать её как сайт. Теперь MarkDown в Xcode поддерживает ссылки на другие свойства и методы, а сгенерированная документация позволяет по ним перемещаться.
Пока DocC поддерживает только фреймворки и пакеты, при этом он создает документацию только для public части.
DocC — это не просто аналог Jazzy, кроме создания обычного справочника, в DocC появилась возможность добавлять статьи и туториалы.
Подборка сессий WWDC 2021 про DocC:
– Elevate your DocC documentation in Xcode
– Build interactive tutorials using DocC
– Host and automate your DocC documentation
Также Paul Hudson одним из первых написал статью про DocC.
Apple Developer
Meet DocC documentation in Xcode - WWDC21 - Videos - Apple Developer
Discover how you can use DocC to build and share documentation for Swift packages and frameworks. We'll show you how to begin generating...
#промо
Хотите создавать приложения для Apple, даже если раньше никогда не программировали?
Начните с изучения Swift — языка программирования для разработчиков iOS и macOS.
Прямо сейчас запишитесь на бесплатный интенсив GeekBrains «Swift для начинающих».
За два часа вы:
- узнаете особенности и преимущества Swift;
- научитесь использовать базовые конструкции Swift;
- создадите простое iOS-приложение.
Участие бесплатное, регистрация по ссылке.
Хотите создавать приложения для Apple, даже если раньше никогда не программировали?
Начните с изучения Swift — языка программирования для разработчиков iOS и macOS.
Прямо сейчас запишитесь на бесплатный интенсив GeekBrains «Swift для начинающих».
За два часа вы:
- узнаете особенности и преимущества Swift;
- научитесь использовать базовые конструкции Swift;
- создадите простое iOS-приложение.
Участие бесплатное, регистрация по ссылке.
📲 Нововведения в iOS 15 для разработчиков и дизайнеров
Основные из них:
- новый способ делиться геополицией;
- появились приоритеты уведомлений;
- новый встроенный controller — UISheetPresentationController;
- новые способы раскраски иконок SF Symbols 3;
- UIToolbar и UITabBar теперь не отображают фон при прокрутке страницы вниз;
- возвращение колеса прокрутки в UIDatePicker;
- новые стили для UIButton;
- унификация системных цветов.
https://ux.pub/ios-15-chto-novogo-dlya-produktovyh-dizaynerov-i-razrabotchikov/
Основные из них:
- новый способ делиться геополицией;
- появились приоритеты уведомлений;
- новый встроенный controller — UISheetPresentationController;
- новые способы раскраски иконок SF Symbols 3;
- UIToolbar и UITabBar теперь не отображают фон при прокрутке страницы вниз;
- возвращение колеса прокрутки в UIDatePicker;
- новые стили для UIButton;
- унификация системных цветов.
https://ux.pub/ios-15-chto-novogo-dlya-produktovyh-dizaynerov-i-razrabotchikov/
⚙️ Что нового в SwiftUI 3
Новые возможности:
— Новые вью - Canvas и TimelineView
— Асинхронные задачи и AsyncImage для загрузки изображений по URL
— Враппер @FocusState для управления фокусом вью
Расширения:
— В списке появился свайп, поддержка Pull-to-Refresh и поиска
— Text вью теперь поддерживает markdown
— Появился \.dismiss в @Environment
— Добавили badges для TabView и Text в List
— Теперь можно стилизовать сепараторы
— 4 новых стиля для Toggle
— К Color добавили .mint, .teal, .cyan, .indigo, .brown
— Новый эффект размытия заднего фона с помощью материалов
Статьи для изучения:
— https://swiftwithmajid.com/2021/06/08/what-is-new-in-swiftui-after-wwdc21/
— https://www.fivestars.blog/articles/swiftui-wwdc21/
— https://www.hackingwithswift.com/articles/235/whats-new-in-swiftui-for-ios-15
Сессия WWDC 2021:
— https://developer.apple.com/videos/play/wwdc2021/10018/
Новые возможности:
— Новые вью - Canvas и TimelineView
— Асинхронные задачи и AsyncImage для загрузки изображений по URL
— Враппер @FocusState для управления фокусом вью
Расширения:
— В списке появился свайп, поддержка Pull-to-Refresh и поиска
— Text вью теперь поддерживает markdown
— Появился \.dismiss в @Environment
— Добавили badges для TabView и Text в List
— Теперь можно стилизовать сепараторы
— 4 новых стиля для Toggle
— К Color добавили .mint, .teal, .cyan, .indigo, .brown
— Новый эффект размытия заднего фона с помощью материалов
Статьи для изучения:
— https://swiftwithmajid.com/2021/06/08/what-is-new-in-swiftui-after-wwdc21/
— https://www.fivestars.blog/articles/swiftui-wwdc21/
— https://www.hackingwithswift.com/articles/235/whats-new-in-swiftui-for-ios-15
Сессия WWDC 2021:
— https://developer.apple.com/videos/play/wwdc2021/10018/
📱Приглашаем на One Day Offer для iOS разработчиков от Tinkoff
Вы — в течение одного дня общаетесь с командой Тинькофф.
Мы — даем оффер в конце дня, если общение проходит хорошо.
В какую команду
Набираем разработчиков в мобильный банк — делать приложение Тинькофф для 10 миллионов клиентов каждый месяц. Сейчас над приложением работают 5 технических и 25 кросс-функциональных команд, поэтому вы сможете выбрать интересное вам направление.
Кого ждем
У нас сильная команда, и мы ищем таких же коллег: с хорошим знанием языка, платформы, умением писать качественный код и опытом от двух лет.
📨 Отправляйте заявку на участие в Тинькофф One Day Offer. В течение трех дней мы дадим обратную связь, а за два дня до мероприятия пришлем всю информацию об интервью.
Вы — в течение одного дня общаетесь с командой Тинькофф.
Мы — даем оффер в конце дня, если общение проходит хорошо.
В какую команду
Набираем разработчиков в мобильный банк — делать приложение Тинькофф для 10 миллионов клиентов каждый месяц. Сейчас над приложением работают 5 технических и 25 кросс-функциональных команд, поэтому вы сможете выбрать интересное вам направление.
Кого ждем
У нас сильная команда, и мы ищем таких же коллег: с хорошим знанием языка, платформы, умением писать качественный код и опытом от двух лет.
📨 Отправляйте заявку на участие в Тинькофф One Day Offer. В течение трех дней мы дадим обратную связь, а за два дня до мероприятия пришлем всю информацию об интервью.
Async await в примерах
Новая статья от Antoine с примерами использования async/await, разбором концепции и сравнением с concurrency подходом.
https://www.avanderlee.com/swift/async-await/
Новая статья от Antoine с примерами использования async/await, разбором концепции и сравнением с concurrency подходом.
https://www.avanderlee.com/swift/async-await/
Возможность управлять фокусом TextField и других элементов в SwiftUI появилась аж в третей версии, спустя два года после запуска.
Иными словами, если вы хотите сделать форму ввода и автоматически передать фокус (first responder) элементу – изощряйтесь, think different, придумывайте велосипеды, тащите UITextField или используйте версию таргета iOS 15 (она не в проде ещё).
Топик WWDC
Direct and reflect focus in SwiftUI
Обсуждение на форуме Apple, где разработчики делятся своим разочарованием
https://developer.apple.com/forums/thread/650112
Как мне сказали, Flutter имел эту возможность сразу в первой версии. Не проверял, но звучит логично. Почему Apple мог забить на такой важный функционал?
Иными словами, если вы хотите сделать форму ввода и автоматически передать фокус (first responder) элементу – изощряйтесь, think different, придумывайте велосипеды, тащите UITextField или используйте версию таргета iOS 15 (она не в проде ещё).
Топик WWDC
Direct and reflect focus in SwiftUI
Обсуждение на форуме Apple, где разработчики делятся своим разочарованием
https://developer.apple.com/forums/thread/650112
Как мне сказали, Flutter имел эту возможность сразу в первой версии. Не проверял, но звучит логично. Почему Apple мог забить на такой важный функционал?
🙌 Snapshot тестирование
Хороший Гайд по внедрению снапшот тестов в проект.
https://habr.com/ru/company/vivid_money/blog/569032/
Хороший Гайд по внедрению снапшот тестов в проект.
https://habr.com/ru/company/vivid_money/blog/569032/
Хабр
Внедряем Snapshot testing в UI-тесты iOS
Хабр, привет! Меня зовут Борис. Я AQA iOS-engineer в Vivid Money. В этой статье я хочу рассказать про snapshot тесты и показать, как их можно эффективно применять в своём проекте. Данная статья будет...
Замечательная система логирования для Apple на SwiftUI. Записывает события
⭐️ Stars: 3.3k
https://github.com/kean/Pulse
URLSession
, позволяет искать по ним, делиться, даже разбивку HTTP запроса на компоненты предоставляет. ⭐️ Stars: 3.3k
https://github.com/kean/Pulse
Привет!
Команда Cameos ищет крутого iOS разработчика в лондонский офис Snapchat. Cameos полностью генерируются на клиенте, поэтому Вас ожидают сложные, классные задачи, связанные с перфомансов и работой с ML. Полагаются все плюшки работы в большой компании, при этом еще сохраняется дух стартапа внутри (компания AI Factory была недавно куплена Snap). Через год возможен relocation в Лос-Анджелес 😎🌴
Желающие попробовать свои силы пишите @grtkachenko
Команда Cameos ищет крутого iOS разработчика в лондонский офис Snapchat. Cameos полностью генерируются на клиенте, поэтому Вас ожидают сложные, классные задачи, связанные с перфомансов и работой с ML. Полагаются все плюшки работы в большой компании, при этом еще сохраняется дух стартапа внутри (компания AI Factory была недавно куплена Snap). Через год возможен relocation в Лос-Анджелес 😎🌴
Желающие попробовать свои силы пишите @grtkachenko
Distractify
Snapchat Cameos Have Officially Become Our Favorite Feature
Snapchat's features include Cameos, a new way to selfie or send your face to another person without taking an entirely new photo.
Довольно интересный инструмент для работы с CoreData на Swift. Декларативная, удобная и безопасная апишка. Очень много фич, в том числе такие как поддержка API SwiftUI и Combine, отказ от файлов
⭐️ Stars: 3k
👩💻 Contributors: 29
https://github.com/JohnEstropia/CoreStore
UPD от @oknesta: И есть слак канал, где активно отвечают на вопросы:
http://swift-corestore-slack.herokuapp.com
xcdatamodeld
, упрощённая система миграции. В пэт-проджекте однозначно стоит поиграться⭐️ Stars: 3k
👩💻 Contributors: 29
https://github.com/JohnEstropia/CoreStore
UPD от @oknesta: И есть слак канал, где активно отвечают на вопросы:
http://swift-corestore-slack.herokuapp.com
Замечательный лонгрид и доклад от команды Yandex Go про переход на Swift Package Manager в существующем большом проекте, в том числе с Objective-C.
https://habr.com/ru/company/yandex/blog/559938/
Видео
https://youtu.be/_e3nbqpOgXY
https://habr.com/ru/company/yandex/blog/559938/
Видео
https://youtu.be/_e3nbqpOgXY
Хабр
Тернистый путь внедрения Swift Package Manager. Доклад Яндекса
Доклад будет интересен iOS-разработчикам, которые хотят внедрить технологию Swift Package Manager (SPM) в существующий проект. Руководитель iOS-разработки Яндекс...
Приглашаем iOS- и Android-разработчиков присоединиться к мобильной команде Kaspersky по программе Mobile Easy Offer.
Какие условия?
Если коротко — ты сможешь сам выбрать, как работать: в офисе, на удаленке или в гибридном формате, — будешь решать масштабные задачи вместе с командой лучших экспертов, работать над проектами в разных направлениях (B2B- и B2C-продукты, технологические решения и др). А еще у нас предусмотрены: программа релокации; премии; страхование сотрудников и их детей; 2 спортзала, сауна, массажист и врач прямо в офисе, и многое другое.
Если хочешь узнать подробнее, то переходи по ссылке.
Кого мы приглашаем?
- iOS-разработчиков со знанием Swift / ObjectiveC
- Android-разработчиков со знанием Java / Kotlin
Что нужно делать?
- До 12 августа подай заявку и пройди небольшое тестирование.
- 14 августа приходи на онлайн-знакомство и собеседование с командой, и 15 августа получи оффер.
Подать заявку: https://kas.pr/n825
Какие условия?
Если коротко — ты сможешь сам выбрать, как работать: в офисе, на удаленке или в гибридном формате, — будешь решать масштабные задачи вместе с командой лучших экспертов, работать над проектами в разных направлениях (B2B- и B2C-продукты, технологические решения и др). А еще у нас предусмотрены: программа релокации; премии; страхование сотрудников и их детей; 2 спортзала, сауна, массажист и врач прямо в офисе, и многое другое.
Если хочешь узнать подробнее, то переходи по ссылке.
Кого мы приглашаем?
- iOS-разработчиков со знанием Swift / ObjectiveC
- Android-разработчиков со знанием Java / Kotlin
Что нужно делать?
- До 12 августа подай заявку и пройди небольшое тестирование.
- 14 августа приходи на онлайн-знакомство и собеседование с командой, и 15 августа получи оффер.
Подать заявку: https://kas.pr/n825
Классный вводный туториал для The Composable Architecture.
https://medium.com/@atimca/the-composable-architecture-tutorial-d220fd25cab3
https://medium.com/@atimca/the-composable-architecture-tutorial-d220fd25cab3
Как подготовиться к iOS собеседованию
Хорошая статья, затрагивающая все аспекты поиска работы, в том числе самоанализ на тему, что вам этот поиск вообще нужен.
https://habr.com/ru/company/indriver/blog/575572/
Хорошая статья, затрагивающая все аспекты поиска работы, в том числе самоанализ на тему, что вам этот поиск вообще нужен.
https://habr.com/ru/company/indriver/blog/575572/
Хабр
Как подготовиться к iOS-собеседованию
Всем привет! Меня зовут Илья, и я провожу собеседования * хлоп-хлоп-хлоп* . Сейчас работаю на позиции Principal iOS Engineer в inDriver, мой фокус смещен в сторону технических...