iOS Broadcast
3.31K subscribers
1.7K photos
84 videos
972 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
#di

DI в iOS: Complete guide (25 мин)

🗣 Крайне подробный путеводитель по Dependency Injection в iOS, начиная от нативных решений, заканчивая самыми популярными библиотеками

📍 Нативный DI. Каждый разработчик iOS неявно его использует
📍 Паттерн Service Locator. Его преимущества и недостатки
📍 Разбор пяти DI библиотек: Swinject, DIP, DITranquillity, EasyDI, Needle и Weaver
👍6🔥3👎1
#tests

Раннер Emcee. Всем айосерам по тестовой ферме (5 мин)

🗣 Ребята из AVITO славятся большим количеством UI тестов. Они выкатили обзор на свой же тест-раннер Emcee и подтвердили числами его эффективность

📍 Как UI тесты помогают релизиться раз в неделю
📍 Гайд по настройке Emcee
📍 Кому нужен тест-раннер
👍2👏2👎1
#appstore #apple

Следы RealityOS нашли в репозиториях и App Store (3 мин)

🗣 Очень возможно, что скоро мы сможем разрабатывать ПО под гарнитуры с дополненной реальностью

📍 Разработчики нашли упоминания RealityOS на GitHub
📍 Аналитика сообщают, что гарнитура выйдет с таким же уровнем вычислительной мощности, что и Mac M1
📍 Apple планирует представить гарнитуру на WWDC в этом году
🔥3👍2👎1
Forwarded from Android Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
#вакансия

Head Hunter (они же HH) ищут множество спецов к себе в команду:
👉 Techlead iOS. Техлид не принадлежит ни к одной из команд и отвечает за iOS платформу в компании целиком.
👉 Android и iOS разработчики в команду Mobile Core
👉 Teaml Lead в команду Mobile Core. За плечами у вас может быть опыт в Android (подробности вакансии) или iOS (подробности вакансии)

Что делает команда Mobile Core?
👉 Упрощает жизнь коллегам из продуктовых команд
👉 Настраивают CI/CD и ускоряет сборки
👉 Формируют и внедряют общие правила архитектуры и стиля кода
👉 Разрабатывают инструменты автоматизации
👉 Собирают метрики процесса разработки
👉 Помогают работать над продуктовыми задачами.

Куда делись старые Team Lead и Tech Lead?
Текущий Team Lead команды решил сфокусироваться на роли Android Tech Lead, а iOS разработчик и техлид перешли в продуктовые команды пилить фичи.

При отклике обязательно расскажите что вы узнали о вакансии из Android Broadcast, что здорово поддержит нас
💩5🔥4👎2👍1🤮1
#swift #memory

Как устроен счетчик ссылок в Swift (20 мин)

🗣 После прочтения этой статьи вы на любой вопрос со звездочкой ответите на собеседовании про память в Swift

📍 Типы ссылок в ARC
📍 Счетчики ссылок, и где они хранятся
📍 Как работает Side Table
📍 Жизненный цикл объекта

Расскажите, о чем вы узнали впервые из статьи
🔥11👎1
#ui

Always correct gradient text in UIKit (8 мин)

🗣 Полезная статья о том, как эффективно и легко достичь эффекта градиента в UILabel

📍 В статье используется UIGraphicsImageRenderer и CAGradientLayer
📍 Из того же цикла статей посмотрите, как применить градиент к границам view
👍6👏2
#ui

Hero: переходы View Controller-ов (2 мин)

🗣 Библиотека, позволяющая кастомизировать переходы между контроллерами, достигая потрясающих результатов

📍 В репозитории на GitHub Hero полно примеров с анимациями и кодом для них
📍 Также есть Tutorial по анимациям, модификаторам, интерактивным переходам и многом другом

Поделитесь, какие достоинства или недостатки вы нашли в Hero?
🔥4👍2👎1
#tests

Unit testing asynchronous Swift code (10 мин)

🗣 Не все разработчики уделяют время написанию тестов асинхронному коду. В статье описан ряд способов начать это делать

📍 Автор использует тип XCTestExpectetion для проверки асинхронного кода
📍 Также в статье используются: Inverted Expectations, Dispatch Queues и UNUserNotificationCenter

Пишете тесты на асинхронный код?
👍2🔥2👏2👎1
#swift #objc

Why do we ever need to inherit from NSObject? (10 мин)

🗣 В статье раскрываются преимущества наследования от NSObject

📍 Затрагивается тема производительности
📍 Рассказывается о том, где реально необходимо наследование от NSObject (KVO, Swizzling)
🔥7👎1
#ui

How to create reusable views for modern collection views (10 мин)

🗣 В каждом приложении используется Table View или Collection View. Не в каждом приложении от них наследуются, чтобы сделать универсальными для любой ячейки. Еще меньше проектов, где не приходится создавать новую ячейку для каждой новой View.

Кратко о статье:
📍 Переиспользуемые View в Generic ячейках
📍 Применение Compositional Layout в таком подходе
📍 Как регистрировать Generic ячейки и держать источник данных для разных ячеек одновременно

Мне безумно интересно, какой подход используете вы? Практик очень много
🔥4👏4
#swift

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

Как по мне взаимодействие с коллекциями стало удобнее. Что можете сказать про них?
🔥4👍3👎3
#appstore #apple

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? 😅
👍4🔥4👎3
#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 и поставка дисков с инструментами разработчика
📍 Ребрендинг, новый компилятор и многое другое

Напишите, как много фактов узнали из статьи?
👍7👎3
#systemcapabilities

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
👍3👎3
#swift

Что нового в 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
📍 Также в статье рассказано, как конфигурировать внешний вид во всем приложении и в отдельных контроллерах
🔥6👎3