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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🐥 Swift Collections package
Каждый раз, когда я вижу в MR очередную реализацию "более эффективной" коллекции, хочется бить по рукам. Даже если есть практическая необходимость, уже есть официальный пакет с открытым исходным кодом для расширения набора коллекций Swift. Цель проекта - служить испытательным полигоном для новых структур данных, улучшить дизайн и исправить ошибки до официального включения в библиотеку. Например, есть реализации для двусторонней очереди (Deque), упорядоченного набора (OrderedSet), упорядоченного словаря (OrderedDictionary), BitSet, BitArray, Heap, TreeSet и TreeDictionary.
Особенности коллекций:

Deque:
• Упорядоченная коллекция с произвольным доступом и изменяемостью
• Поддерживает эффективные вставки и удаления с обоих концов
• Обеспечивает удобные операции по вставке и выталкиванию элементов

OrderedSet:
• Гибрид массива и набора
• Поддерживает уникальные элементы и эффективные тесты на принадлежность
• Использует массив для хранения элементов и хэш-таблицу для индексов

OrderedDictionary:
• Альтернатива словарю для эффективного доступа к элементам в различных позициях
• Вставляет новые пары ключ-значение за постоянное время
• Обеспечивает произвольный доступ к парам ключ-значение
#swift #collections
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🐥 Ignine - статические сайты на Swift
У вас бывает желание сделать простой статический сайт? Иногда хочется быстро накидать, но не хочется напрямую все верстать руками. Кажется, я нашел себе нового фаворита взамен Hugo. Сначала я был максимально скептичен, обычный POC по DSL Swift <-> HTML, подобные решения уже были.
Ignite - это статический конструктор сайтов для разработчиков любящих Swift. Он предлагет выразительный и мощный API для создания красивых веб-сайтов. Ignite не пытается преобразовать пользовательский код Swift в HTML или просто преобразовать HTML-теги в Swift-код. Вместо этого он нацелен на использование синтаксиса, подобного SwiftUI, чтобы помочь вам создавать отличные веб-сайты, даже если вы не разбираетесь в HTML или CSS. Поддерживаются все основные концепты современного веба:
🟢Grid Layout
🟢Navigation
🟢Content
🟢Text
🟢Styling
🟢Theming
🟢Modifiers
Все это можно вживую посмотреть на демо странице. Что приятно, этот продукт используется для hackingwithswift а значит не только активно поддерживается, но и соответствует требованиям разработчиков. Чем вам не pet-проект на выходные 🥂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
⚡️ Swift Build открыли исходники!
Врываемся в рабочую неделю с супер новостями, Apple выпускает Swift Build в опенсорс! Наконец, можно взглянуть на внутренние процессы сборки swift, включая поддержку Linux и Windows. Я не стал торопиться с публикацией на выходных и потратил немного времени чтобы понять что мы получили и что это значит для будущего Swift.
Cистема сборки отвечает за преобразование входных данных (исходников, ассетов, конфигураций) в выходные артефакты (библиотеку, утилиту, приложение). Swift Build отвечает за этап планирования сборки и за саму сборку внутри Swift Package Manager и Xcode. Работает поверх llbuild и интегрирован с компилятором Swift.

Чем отличается swift-build от xcodebuild и Xcode?
🟣Swift-build использует внутреннее представление проекта "PIF"
🟣xcodebuild преобразует пользовательские форматы конфигурации в PIF перед передачей в swift-build
🟣swift-build можно использовать для создания проектов Xcode, но сначала нужно преобразовать их в PIF с помощью xcodebuild

Что это значит для сообщества?
🟢Можно будет оптимизировать сборку под свой проект и протестировать в Xcode начиная с Xcode 16.2
🟢Появилась возможность интегрировать альтернативные IDE со Swift, VSCode или Cursor
🟢Swift становится универсальным языком и больше отвязан от экосистемы Apple
#swiftbuild
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11
Network Link Conditioner

Если вы тестируете свое приложение на девайсе или симмуляторе в условиях хорошей сети, вы точно пропускаете часть проблем, возникающих у пользователей. Сотовая сеть не везде хорошо ловит, а даже если ловит хорошо, может оказаться что вышка перегружена и LTE превращается в 3g. Для этого в iOS и MacOS существует отдельный инструмент "Network Link Conditioner". Вот как его включить:
🟢В macOS Sequoia он не входит в стандартный набор ОС, требуется установить Additional Tools for Xcode
🟢На устройстве Network Link Conditioner можно найти в разделе настроек разработчика, который появляется после активации

Главное-не забыть его выключить, ставьте 🎉 кто забывал. Я как-то неделю ходил с 3G
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉24👍4
📘 Создаем удобное взаимодействие с пользователем

Я убежден, что разработчик должен высказывать свое мнение про фичи, которые разрабатывает. А чтобы высказываться по делу, нужно самому понимать что считается стандартом индустрии. Данная статья как раз про это, при чем выходит за рамки 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