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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
Xcode Tip: filtering debugger output

Небольшой совет для дебаггинга. Можно включить фильтр логов в левом нижнем углу 😎
Знали от этом?

#лайфхаки
👍7👎1
TCA, The next iOS Architecture ? (4 мин)

Из чего состоит TCA:
👉 State описывает данные, которые нужны фичи для логики и отрисовки UI
👉 Action представляет действия, которые могут произойти в фиче, например, пользовательские действия, нотификации
👉 Reducer - функция, которые описывает, как изменяется state при данном action. Reducer также возвращает за Effect, который должен произойти. Например, API реквесты
👉 Store - runtime, который драйвит фичу. Все пользовательские действия отправляются в store, он запускает reducer и effect'ы, затем путем observ'инга state обновляетcя UI.

#architecture
👍8👎1
Short Tutorial in Accessibility Inspector (5 мин)

Accessibility Inspector может быть полезен для проверки доступности приложения, а также для определения accessibility label в тестах. В статье краткий гайд о том, как им пользоваться

#accessibility
👍6👎1
Реализация спойлеров в SwiftUI (4 мин)

В Telegram есть функция спойлера, которая позволяет скрыть определенную часть вашего сообщения, которая может показать спойлер. В этой статье рассмотрели, как реализовать данную функцию в SwiftUI

#swiftUI
👍2👎1
Как не потерять голову (и память) при поиске утечек в iOS (6 мин)

Способы обнаружения утечек из статьи:
👉 С помощью Xcode Memory Graph
👉 С помощью Instruments. После запуска приложения вы можете увидеть в реальном времени, сколько ресурсов потребляется в строке Allocations, и были ли обнаружены какие-либо утечки памяти в строке Leaks
👉 С помощью инструмента «Анализ» (только для Objective-C)
👉 С помощью unit-тестов
👉 С помощью Symbolic breakpoint. Вы можете создать точку останова, чтобы отследить вызовы метода dealloc, и проверить, был ли освобожден контроллер из памяти

#memory
👍2👎1
Освоение диаграмм в SwiftUI. Доступность (3 мин)

Swift Charts понимает ваши данные и автоматически создает дерево доступности для вашей диаграммы. Вам не потребуется выполнять никаких специальных действий, чтобы сделать вашу диаграмму доступной при использовании фреймворка Swift Charts.

#swiftui #accessibility
👍3👎1
Apple’s Worldwide Developers Conference returns June 5, 2023

WWDC в этом году пройдет с 5 по 9 июня.
Будут представлены новинки iOS, iPadOS, macOS, watchOS и tvOS. Также будут представлены новые технологии и инструменты для разработчиков.
Наряду с объявлениями, сделанными в ходе основного доклада и презентаций State of the Union 5 июня, онлайн-программа этого года будет включать сессии, индивидуальные лабораторные занятия и возможности для общения с инженерами Apple и другими разработчиками.
До 19 апреля можно поучаствовать в Swift Student Challenge.

#apple #wwdc
🔥3👎1
Посмотрите на свою белую спину, а потом вот на эти видео 😎
📺 iOS 17 - Release Date Confirmed, New Leaks & WWDC 2023! (10 мин)
📺 iOS 16.4 - 50+ Changes and Features! (19 мин)
📺 Новости мобильной разработки 2023.9 (37 мин)
📺 Менторство в IT — Как это работает #2 (49 мин)

#подборкавидео
😁6👎1
Болевые точки Dart и Flutter (24 мин)

Глобально все «раздражение» автор разделил на 3 основные части:
👉 проблемный дизайн Dart как современного ЯП;
👉 средства разработки (IDE и tooling), которые иногда не только не помогают, но и немножечко вредят;
👉 ограничения Flutter, которых могло и не быть.
а также он выделил...
👉 не нативные UI виджеты;
👉 уровень производительности (особенно в вебе);
👉 отсутствие динамического обновления с бека;
👉 state management ecosystem is a mess;
👉 нет возможности подгружать динамические библиотеки в run-time;
👉 нет официальной поддержки аудио (только ограниченные сторонние пакеты);

Пробовали ли вы flutter? Как вам? 🙋

#crossplatform
🤯5
В чем отличия #available и @available?
Anonymous Quiz
39%
#available для потребителей API, @available для создателей API
25%
#available для создателей API, @available для потребителей API
20%
Нужно использовать @available, #available устарело
16%
Нет разницы, дело вкуса
👎2👍1
Understanding protocol associated types and their constraints

Associated type добавляется в протокол и позволяет не специфицировать конкретный тип данных, а ограничить его лишь соответствием протоколу. Интересные кейсы читайте в статье

#swift
👍2
The relationship between UIView and CALayer (1 мин)

Об отношениях UIView и CALayer:
👉 UIView наследуется от UIResponder, это базовый юнит иерархии view и контейнер для CALayer
👉 CALayer - sublayer UIView, который обрабатывает отрисовку и анимации содержимого view
👉 UIView контроллирует графику, анимации и верстку с помощью CALayer. Например, свойства frame, bounds и center UIView задаются соответствующими свойствами CALayer
👉 CALayer предоставляет множество свойств и функций, которых нет у UIView. Например, shadow, corner radius, border, gradient

#ui
👍6👎1
Вышел Swift 5.8 (2 мин)

Обновление включает в себя функции и возможности, которые получат официальную поддержку в Swift 6, но разработчики уже могут использовать их, передав компилятору флаг -enable-upcoming-feature, а затем указав идентификаторы самих функций.
Также обновлена официальная документация в новом формате, менеджер пакетов Swift и SwiftSyntax.
Apple продолжает внедрять поддержку своего языка программирования на машинах под управлением Windows.
Бинарные файлы Swift 5.8 для Xcode, Windows и Linux доступны для скачивания на официальном сайте. Также Swift 5.8 поставляется вместе с Xcode 14.3, который компания выпустила на этой неделе.

#swift
🔥5👎2
Test Plans — теперь по умолчанию для новых проектов с Xcode 14.3 (2 мин)

В Xcode 14.3 для новых проектов по умолчанию используется Test Plan. Данный план тестирования по умолчанию в редакторе Test Plan помечен как Autocreated (создан автоматически), он может быть просмотрен и изменен, как и обычный. Для нового проекта, если вы откроете схему по умолчанию, план тестирования будет указан в разделе Test, а кнопка преобразования не появится

#testing
👎1🤩1
5 reasons I still feel SwiftUI is premature (5 мин)

Многие в восторге от SwiftUI 😎
А вот автор статьи считает его сырым:
👉 Все еще невозможно использовать без UIKit. Например, navbar, tab bar, TextEditor
👉 Ограниченный scroll view. Невозможно использовать contentOffset и velocity
👉 Целевой экран Navigation link предзагружен. Нужны костыли, чтобы сделать ленивую загрузку view
👉 ForEach ограничен невозможностью использовать index
👉 Многие SDK не поддерживают SwiftUI

#swiftUI
👎7👍4
Переходим на Flutter: за и против (8 мин)

Резюмируя:
👉 Виджеты Flutter позволяют быстро и гибко реализовывать сложные пользовательские представления, а сам Dart легче освоить, чем Kotlin, Swift или Java
👉 Flutter имеет активное сообщество разработчиков, различные пакеты, а также программы для повышения качества этих пакетов. Инструментарий старается идти в ногу со временем
👉 Реальная производительность может отличаться от платформы к платформе, поэтому необходимо определиться с целевым предназначением
👉 Пользовательское взаимодействие на некоторых платформах может отличаться от нативного

#crossplatform
👎12👍6
[iOS] Make your app suitable for UI auto-testing (10 мин)

Можно добавить в свое приложение бекдоры, скрытые от пользователя, такие как изменения API URL, работу с фича тогглами, пропуски онбордингов и т.д. Это поможет сделать тестирование более атомарным, уменьшить время прогона, улучшить стабильность и поработать с тестовым покрытием.
В статье приведены инструменты и примеры их работы для контроля и работы с UI тестами:
👉 launchArguments and launchEnvironment
👉 SBTUITestTunnel
👉 mac host — test app tunnel

#testing
👍2👎1