#swift
Result builders in Swift (10 мин)
🗣 Крайне интересную конструкцию @resultBuilder привнесли вместе с SwiftUI. Она оказалась слишком удобной, чтобы остаться незамеченной
📍 Как работает @resultBuilder, и как его реализовать?
📍 Как реализовать перечисление значений в замыкании и поставить условие внутри?
Я обычно использую @resultBuilder для добавления вьюх и активации констрэинтов. Для чего используете вы?
Result builders in Swift (10 мин)
🗣 Крайне интересную конструкцию @resultBuilder привнесли вместе с SwiftUI. Она оказалась слишком удобной, чтобы остаться незамеченной
📍 Как работает @resultBuilder, и как его реализовать?
📍 Как реализовать перечисление значений в замыкании и поставить условие внутри?
Я обычно использую @resultBuilder для добавления вьюх и активации констрэинтов. Для чего используете вы?
🔥6👎1
#ui
A project for studying of UICollectionViewCompositionalLayout (3 мин)
🗣 Практику люди воспринимают чаще лучше, чем теорию. Это готовый проект, в котором можно поизучать, как работают появившиеся в iOS 13 компоненты UICollectionView
📍 Ссылка на GitHub проекта
📍 Пример основан на трех компонентах: NSCollectionLayoutSection, NSCollectionLayoutGroup, NSCollectionLayoutItem
Как по мне взаимодействие с коллекциями стало удобнее. Что можете сказать про них?
A project for studying of UICollectionViewCompositionalLayout (3 мин)
🗣 Практику люди воспринимают чаще лучше, чем теорию. Это готовый проект, в котором можно поизучать, как работают появившиеся в iOS 13 компоненты UICollectionView
📍 Ссылка на GitHub проекта
📍 Пример основан на трех компонентах: NSCollectionLayoutSection, NSCollectionLayoutGroup, NSCollectionLayoutItem
Как по мне взаимодействие с коллекциями стало удобнее. Что можете сказать про них?
🔥4👍3👎3
#appstore #apple
The App Store has a "Too Big To Fail" problem (15 мин)
🗣 Apple закрывает глаза на несоблюдение своих правил слишком "большими" приложениями. В последнее время политика AppStore пересматривается и постоянно меняется
📍 Почему Apple не обращает внимания на несоблюдение своих правил Roblox и Netflix
📍 Хроника недавних изменений в политике AppStore
В последнее время AppStore очень сильно меняется, как думаете, во что это выльется?
The App Store has a "Too Big To Fail" problem (15 мин)
🗣 Apple закрывает глаза на несоблюдение своих правил слишком "большими" приложениями. В последнее время политика AppStore пересматривается и постоянно меняется
📍 Почему Apple не обращает внимания на несоблюдение своих правил Roblox и Netflix
📍 Хроника недавних изменений в политике AppStore
В последнее время AppStore очень сильно меняется, как думаете, во что это выльется?
👍4👎3🤔2
#foundation
3 surprises when using Markdown in SwiftUI (15 мин)
🗣 По следам WWDC. Еще одна фича из SwiftUI перекатилась Foundation и доступна с iOS 15. AttributedString теперь поддерживает Markdown и даже GitHub Flavored Markdown
📍 В статье говорится об имеющихся подводных камнях при использовании Markdown
У кого были жуткие боли при нестандартном использовании AttributedString? 😅
3 surprises when using Markdown in SwiftUI (15 мин)
🗣 По следам WWDC. Еще одна фича из SwiftUI перекатилась Foundation и доступна с iOS 15. AttributedString теперь поддерживает Markdown и даже GitHub Flavored Markdown
📍 В статье говорится об имеющихся подводных камнях при использовании Markdown
У кого были жуткие боли при нестандартном использовании AttributedString? 😅
👍4🔥4👎3
#network
Native Network Monitoring In Swift (4 мин)
🗣 Понаблюдать за состоянием сети и типом подключения можно просто и элегантно без Reachability и Alamofire
📍 Используется нативный фреймворк Network
📍 Реализация подписок на уведомления об изменении состояния сети
Native Network Monitoring In Swift (4 мин)
🗣 Понаблюдать за состоянием сети и типом подключения можно просто и элегантно без Reachability и Alamofire
📍 Используется нативный фреймворк Network
📍 Реализация подписок на уведомления об изменении состояния сети
👍5👎3
#xcode
20 лет Xcode год за годом (15 мин)
🗣 Познавательная история о том, как зарождался Xcode, от Project Builder до основного IDE для разработки под устройства Apple
📍 Приобретение Apple компании NeXTSTEP. Всем известная приставка NS в Cocoa появилась не просто так 😅
📍 Бесплатная раздача IDE и поставка дисков с инструментами разработчика
📍 Ребрендинг, новый компилятор и многое другое
Напишите, как много фактов узнали из статьи?
20 лет Xcode год за годом (15 мин)
🗣 Познавательная история о том, как зарождался Xcode, от Project Builder до основного IDE для разработки под устройства Apple
📍 Приобретение Apple компании NeXTSTEP. Всем известная приставка NS в Cocoa появилась не просто так 😅
📍 Бесплатная раздача IDE и поставка дисков с инструментами разработчика
📍 Ребрендинг, новый компилятор и многое другое
Напишите, как много фактов узнали из статьи?
👍7👎3
#systemcapabilities
Home Screen Quick Actions for iOS: Getting Started (20 мин)
🗣 Рекомендую к прочтению гайд по настройке Quick Actions в вашем приложении. В нем собрана вся полезная информация для начала работы
📍 Отличие статических действий от динамических
📍 Созданий и перехват быстрых действий
Home Screen Quick Actions for iOS: Getting Started (20 мин)
🗣 Рекомендую к прочтению гайд по настройке Quick Actions в вашем приложении. В нем собрана вся полезная информация для начала работы
📍 Отличие статических действий от динамических
📍 Созданий и перехват быстрых действий
👍5👎3
#concurrency
Акторы Swift под капотом (10 мин)
🗣 Перевод статьи об Actor в Swift, где довольно подробно рассказывается о том, как они работают под капотом
📍 Решение проблем параллелизма с помощью акторов (Race Condition и т.д.)
📍 Использование новой концепции Cooperative Threading Model вместо DispatchQueue
📍 Для чего нужны Executors в Actor
Акторы Swift под капотом (10 мин)
🗣 Перевод статьи об Actor в Swift, где довольно подробно рассказывается о том, как они работают под капотом
📍 Решение проблем параллелизма с помощью акторов (Race Condition и т.д.)
📍 Использование новой концепции Cooperative Threading Model вместо DispatchQueue
📍 Для чего нужны Executors в Actor
👍3👎3
#swift
Что нового в Swift 5.6 (10 мин)
🗣 Swift 5.6 уже доступен и включает в себя минорный пак изменений
📍 Ключевое слово any для отображения экзистанциальных типов
📍 Плейсхолдеры _ позволяют указывать некоторые части типа значения
📍 Протокол CodingKeyRepresentable кодирует словари с ключами, не являющимися обычными String или Int
📍 Условие if #unavailable - cразу код для версий, меньше заданной в условии
📍 Улучшили функции для параллелизма
Некоторые новости я не могу пропустить, но, к сожалению, посты временно будут выходить не так часто как раньше. Пишите, что думаете об обновлении
Что нового в Swift 5.6 (10 мин)
🗣 Swift 5.6 уже доступен и включает в себя минорный пак изменений
📍 Ключевое слово any для отображения экзистанциальных типов
📍 Плейсхолдеры _ позволяют указывать некоторые части типа значения
📍 Протокол CodingKeyRepresentable кодирует словари с ключами, не являющимися обычными String или Int
📍 Условие if #unavailable - cразу код для версий, меньше заданной в условии
📍 Улучшили функции для параллелизма
Некоторые новости я не могу пропустить, но, к сожалению, посты временно будут выходить не так часто как раньше. Пишите, что думаете об обновлении
👍11👎3
#ui
Customizing the appearance of UINavigationBar (4 мин)
🗣 Apple недавно сильно расширили возможности кастомизации UINavigationBar с использованием scrollEdgeAppearance и compactScrollEdgeAppearance
📍 scrollEdgeAppearance, compactScrollEdgeAppearance
- конфигурации применяемые, когда контент начинает заходить за Navigation Bar
📍 Также в статье рассказано, как конфигурировать внешний вид во всем приложении и в отдельных контроллерах
Customizing the appearance of UINavigationBar (4 мин)
🗣 Apple недавно сильно расширили возможности кастомизации UINavigationBar с использованием scrollEdgeAppearance и compactScrollEdgeAppearance
📍 scrollEdgeAppearance, compactScrollEdgeAppearance
- конфигурации применяемые, когда контент начинает заходить за Navigation Bar
📍 Также в статье рассказано, как конфигурировать внешний вид во всем приложении и в отдельных контроллерах
🔥6👎3
#swiftui
Kavsoft (YouTube)
🗣 Авторский канал, посвященный разработке на SwiftUI
Последние интересные выпуски:
📺 SwiftUI 3.0 Animation Challenge - Wallet App UI
📺 SwiftUI 3.0 Matrix Rain Effect
Kavsoft (YouTube)
🗣 Авторский канал, посвященный разработке на SwiftUI
Последние интересные выпуски:
📺 SwiftUI 3.0 Animation Challenge - Wallet App UI
📺 SwiftUI 3.0 Matrix Rain Effect
🤩4👎3
This media is not supported in your browser
VIEW IN TELEGRAM
#ui
Создаём стираемую карту (scratch card) для iOS-приложения (YouTube)
🗣 Такая механика точно придаст особый шарм приложению с розыгрышами, подарками. Возможно пригодится для CVV кода на карте. В любом случае интересно, как это сделано
GitHub репозиторий тестового проекта здесь
Создаём стираемую карту (scratch card) для iOS-приложения (YouTube)
🗣 Такая механика точно придаст особый шарм приложению с розыгрышами, подарками. Возможно пригодится для CVV кода на карте. В любом случае интересно, как это сделано
GitHub репозиторий тестового проекта здесь
👎3🔥3👍1🤩1
#tools
How to set UserDefaults value with Launch Arguments (4 мин)
🗣 Необычный способ проводить тестирование приложения, используя UserDefaults и Launch Arguments
Для меня стало откровением способность UserDefaults автоматически впитывать в себя аргументы, указанные в схеме. А для вас?
How to set UserDefaults value with Launch Arguments (4 мин)
🗣 Необычный способ проводить тестирование приложения, используя UserDefaults и Launch Arguments
Для меня стало откровением способность UserDefaults автоматически впитывать в себя аргументы, указанные в схеме. А для вас?
👎3👍2
#xcode #tools
Лайфхаки по многомодульности в iOS (15 мин)
🗣 В статье представлен набор отлаженных решений для организации многомодульного iOS приложения
📍 Поддержка структуры проекта с помощью Tuist
📍 Решение проблемы медленной компиляции
📍 Настройка окружения
📍 Кодогенерация и шаблоны Xcode
Лайфхаки по многомодульности в iOS (15 мин)
🗣 В статье представлен набор отлаженных решений для организации многомодульного iOS приложения
📍 Поддержка структуры проекта с помощью Tuist
📍 Решение проблемы медленной компиляции
📍 Настройка окружения
📍 Кодогенерация и шаблоны Xcode
👍3👎3🔥1
#ui
Как варить дизайн-систему для живого приложения (32 мин)
🗣 Создание и поддержка дизайн-системы задача не тривиальная. Разработчик в докладе делится опытом, подходами и проблемами
📍 Структура чаптера iOS-разработчиков. План и цели внедрения дизайн-системы
📍 Организация стилей компонентов
📍 Поддержка документации
📍 Работа с Bar Appearance
📍 Автоматизация тестирования компонентов
Как варить дизайн-систему для живого приложения (32 мин)
🗣 Создание и поддержка дизайн-системы задача не тривиальная. Разработчик в докладе делится опытом, подходами и проблемами
📍 Структура чаптера iOS-разработчиков. План и цели внедрения дизайн-системы
📍 Организация стилей компонентов
📍 Поддержка документации
📍 Работа с Bar Appearance
📍 Автоматизация тестирования компонентов
🔥5👎3
#architecture
📺 MVI в iOS-приложении (32 мин)
🗣 Разбор популярной State Machine в Android в реалиях iOS. В начале немного сложновато, но под конец на реальном примере все встает на свои места
📍 Какие существуют инструменты и фреймворки, позволяющие реализовать State Machine и их различия
📍 Модули MVI и их обязанности
📺 MVI в iOS-приложении (32 мин)
🗣 Разбор популярной State Machine в Android в реалиях iOS. В начале немного сложновато, но под конец на реальном примере все встает на свои места
📍 Какие существуют инструменты и фреймворки, позволяющие реализовать State Machine и их различия
📍 Модули MVI и их обязанности
👎3🔥2👏1
#swift
Abstract types and methods in Swift (10 мин)
🗣 Автор статьи анализирует имеющиеся проблемы и объединяет лучшее из абстрактных типов и протоколов в одно решение
📍 Проблемы с Dependency Injection, тестированием кода и т.п.
📍 Преимущества и недостатки абстрактных типов и протоколов
Abstract types and methods in Swift (10 мин)
🗣 Автор статьи анализирует имеющиеся проблемы и объединяет лучшее из абстрактных типов и протоколов в одно решение
📍 Проблемы с Dependency Injection, тестированием кода и т.п.
📍 Преимущества и недостатки абстрактных типов и протоколов
👎3👍2
#refactoring
How to remove unused code in Swift (5 мин)
🗣 Утилита с открытым исходным кодом, которая поможет найти и удалить весь неиспользуемый код в проекте
📍 Ссылка на Github проект с подробным описанием возможностей
📍 Утилита находит неиспользуемые class, struct, protocol, function, property, constructor, enum, typealias, associatedtype
How to remove unused code in Swift (5 мин)
🗣 Утилита с открытым исходным кодом, которая поможет найти и удалить весь неиспользуемый код в проекте
📍 Ссылка на Github проект с подробным описанием возможностей
📍 Утилита находит неиспользуемые class, struct, protocol, function, property, constructor, enum, typealias, associatedtype
👎3🔥3👏2
#architecture
How to modularize existing iOS projects using Swift Package (15 мин)
🗣 Потрясающая пошаговая и подробная инструкция для модуляризации имеющегося проекта в Swift Package
📍 Создание Swift Package
📍 Конфигурация поддерживающих платформ
📍 Регулирование уровней доступа к полям
How to modularize existing iOS projects using Swift Package (15 мин)
🗣 Потрясающая пошаговая и подробная инструкция для модуляризации имеющегося проекта в Swift Package
📍 Создание Swift Package
📍 Конфигурация поддерживающих платформ
📍 Регулирование уровней доступа к полям
👍4👎3
#storage
Safer and cleaner UserDefaults and AppStorage (5 мин)
🗣 Статья о том, как правильно, безопасно и удобно пользоваться UserDefaults
📍 Какие проблемы существуют при стандартном использовании UserDefaults
📍 Что можно сделать, чтобы избежать ошибок
📍 В конце статьи реализуется расширение AppStorage (Property Wrapper), что очень удобно
Safer and cleaner UserDefaults and AppStorage (5 мин)
🗣 Статья о том, как правильно, безопасно и удобно пользоваться UserDefaults
📍 Какие проблемы существуют при стандартном использовании UserDefaults
📍 Что можно сделать, чтобы избежать ошибок
📍 В конце статьи реализуется расширение AppStorage (Property Wrapper), что очень удобно
👍6👎3🔥1
#appstore #xcode
App Store submission requirement starts April 25 (2 мин)
🗣 Небольшое обновление. После 25 апреля сборки, выкладываемые в AppStore, должны будут собираться на Xcode 13
Уверен, у разработчиков поддерживающих реально масштабные приложения есть регулярные задачи мигрировать весь проект на версию выше. Некоторые с этим затягивают и сидят на Xcode 12. Как думаете, многих коснется такое изменение?
App Store submission requirement starts April 25 (2 мин)
🗣 Небольшое обновление. После 25 апреля сборки, выкладываемые в AppStore, должны будут собираться на Xcode 13
Уверен, у разработчиков поддерживающих реально масштабные приложения есть регулярные задачи мигрировать весь проект на версию выше. Некоторые с этим затягивают и сидят на Xcode 12. Как думаете, многих коснется такое изменение?
🔥6👎3