iOS Broadcast
3.38K subscribers
1.72K photos
85 videos
985 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
📘 Создаем удобное взаимодействие с пользователем

Я убежден, что разработчик должен высказывать свое мнение про фичи, которые разрабатывает. А чтобы высказываться по делу, нужно самому понимать что считается стандартом индустрии. Данная статья как раз про это, при чем выходит за рамки Apple Human Interface Guidelines.
Первое впечатление можно произвести только один раз. А неконсистентный опыт внутри приложения перечеркивает весь позитив. Важно продумать не только успешные сценарии но и сценарии ошибок. Каждый переход формирует общее впечатление пользователя. При подключении пользователи ожидают увидеть экран приветствия и, возможно, краткое руководство. После многократного использования приложения просмотр одних и тех же советов точно надоест. Хорошо разработанное приложение учитывает потребности пользователей и адаптируется к ним во всех ситуациях, повышая общую эффективность приложения и вовлеченность пользователей.

Первое впечатление: Онбординг и начало работы
🟣Должно быть эффективным и ненавязчивым.
🟣Вспомогательные указания помогают пользователям ориентироваться.
🟣Вводное состояние важно для создания доверия.

Состояние: Успешный сценарий
🟢Частичная загрузка контента должна быть обработана.
🟢Пустой экран должен быть понятен пользователю.
🟢"Результаты не найдены" должны быть ненавязчивыми.
🟢Новые обновления должны быть краткими и не мешать работе.

Состояние: Загрузка
🟡Состояния загрузки должны быть незаметными.
🟡Экраны "Скелетоны" помогают управлять ожиданиями пользователей.

Состояние: Ошибка
🔴Ошибки должны быть четко и понятно сообщены.
🔴Информирование пользователей важно в критических ситуациях.

Состояние: Прощание
🔵Продуманный опыт разлогинивания или удаления акккаунта важен для положительного впечатления.
🔵Приложения должны укреплять доверие и стимулировать повторное участие.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131👌1
Что означает Swift Build для экосистемы Swift
А вот и первый обзор swift build от команды, занимающейся работой с Xcode. Tuist подтвердили важность выхода в опенсорс и раскрыли это со своей стороны:

Влияние на опыт разработчиков
🔵Более быстрое внедрение улучшений
🔵Повышенная надежность и детерминизм сборки
🔵Расширяемость и поддержка новых платформ
🔵Оптимизация времени сборки и новые возможности в программировании

Tuist и Swift Build
🔵Tuist стремится улучшить качество создания приложений
🔵Swift Build открывает новые возможности для Tuist
🔵Tuist создает серверную инфраструктуру и стандартизирует данные

Будущее Swift Build
🔵Возможно появление Swift Build DSL для объявления графиков
🔵Tuist заявляет о участии в развитии экосистемы и будет вносить свои идеи в swift build
Please open Telegram to view this post
VIEW IN TELEGRAM
🐥 Локализуем списки в Swift правильно

Swift предоставляет множество встроенных форматтеров, один из которых форматтер списков ListFormatter (iOS 13+). Он помогает объединять списки элементов в удобочитаемые предложения:
🟢Форматировщик списка учитывает языковой стандарт пользователя.
🟢Можно принудительно установить языковой стандарт, изменив свойство place.
🟢Форматировщик списка поддерживает массивы любого типа, но элементы должны быть представлены в виде строк.
🟢Можно использовать настраиваемые типы, соответствующие протоколу CustomizableStringConvertible.
#swift #list #formatter #listformatter
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9
🐥 [SE-0460] Явная специализация дженериков в Swift
Продолжаю разбирать пропоузалы Swift. В этом предложении вводится новый атрибут @specialized , который позволяет в дженерик функции генерировать предварительно специализированные версии этой функции для определенных типов. Эта специализация создает пользовательскую реализацию функции, где "дженерики" заменяются определенными типами. Это позволяет оптимизировать функции, под конкретные типы: когда неспециализированная версия функции вызывается с одним из этих типов, компилятор генерирует код, который будет повторно отправлен в эти предварительно специализированные версии, если таковые имеются. Врядли это пригодится где-то кроме Foundation и специализированных фреймворков, но идея интересная.
#swift #evolution
Please open Telegram to view this post
VIEW IN TELEGRAM
🔨 Отладка диплинков, пушей и быстрых действий
Отладка фич, таких как диплинки или быстрые действия с главного экрана, может быть сложной задачей. По умолчанию отладчик автоматически подключается при запуске приложения в Xcode. После завершения работы приложения отладчик отключается, что затрудняет тестирование. Но можно изменить поведение в Xcode - выбрать опцию "Wait for executable to be launched". Эта опция позволяет подключать отладчик к приложению даже при ручном запуске.

Шаги:
🟢Product > Scheme > Edit Scheme
🟢Включите опцию "Wait for executable to be launched" на вкладке "Info" секции "Launch"
🟢Запустите приложение в Xcode как обычно (приложение само не запустится)
🟢Вручную запустите приложение с симулятора или устройства следуя тестовому сценарию

Добавляйте в 🔖 чтобы не потерять
#xcode #deeplink #debugging #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
⚡️ Swift для Visual Studio Code 2.0

Вышла новая версия расширения Swift для Visual Studio Code. Расширение поддерживает разработку приложений Swift на всех платформах. Расширение упрощает разработку приложений Swift для серверных, облачных, встраиваемых и Linux/Windows приложений.
🟢Разработано членами рабочей группы Swift Server.
🟢Старая версия автоматически устанавливает новое расширение и отключает себя.
🟢Все языковые функции будут предоставляться новым расширением.

Работает так же через SourceKit-LSP. Посмотреть на реализацию и законтрибьютить можно сюда, если готовы писать на typescript.
К сожалению, это не делает расширение более подходящим для iOS разработки, но радует что поддержка не забросилась и вышел мажорный апдейт. Для меня поддержка VSCode - возможность работать с AI ассистентами, ассистент в Xcode не оправдал ожиданий, а все решения вокруг Xcode больше похожи на костыль
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🐥 Использование групп задач в Swift Concurrency
Группы задач существовали всегда, в GCD, OperationQueue и Combine. Они есть и в Swift Concurrency. Группы задач позволяют динамически запускать несколько дочерних задач и ожидать их выполнения или отмены. Группы задач используют совместную отмену и требуют проверки свойства Task.isCancelled (привет OperaionQueue). В статье на примерах рассматривается использование групп задач и оптимизация при работе с ними:
🟢Задачи добавляются с помощью функции addTask и могут иметь определенный приоритет.
🟢Группы задач выполняются в совместном пуле потоков, что позволяет оптимизировать логику приложения.
🟢Добавление задач только после завершения предыдущих задач помогает сократить потребление памяти.
🟢Функция addTaskUnlessCancelled добавляет задачу только при отсутствии отмены группы задач.

#swift #concurrency #group
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
🈸 Состояние мобильного рынка 2024

Еще один обзор состояния рынка мобильной разработки за 2024г.
Что меня привлекло:
🔵Россия на 5 месте по загрузкам, без учета наших альтсторов на Androd
🔵По прибыли для разработчиков РФ на 13 месте, несмотря на все трудности с оплатой
🔵Число загрузок мобильных приложений увеличилось во всех странах
🔵Заметный рост наблюдался в Индии (+8,28%) и Бразилии (+11,54%)
🔵В Южной Корее и Японии доходы снизились
🔵Общая тенденция указывает на положительную динамику по загрузкам и выручке

Топ категорий по тратам
🔵Развлекательные приложения стали самой прибыльной категорией с доходом в 18,98 миллиарда долларов
🔵Ролевые игры, игры-стратегии, экшн-игры, казуальные игры и социальные приложения также показали значительный рост
🔵Фотографические приложения, приложения для продуктивности и приключенческие игры также внесли значительный вклад в доходы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6