iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.5K subscribers
702 photos
66 videos
4.08K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Регистрация в РКН: https://gosuslugi.ru/snet/67b464d698a28c4e866d827a

Размещение рекламы: @tanyasanovna
Download Telegram
Особенности работы с Dynamic Island

- При конфигурации WidgetKit для Dynamic Island нужно задать вьюшки для четырех состояний: compact leading, compact trailing, expanded и minimal
- Expanded-состояние делит все пространство виджета на 4 области, и позволяет задать, в каких из них конкретно мы хотим отображать контент
- Можно задавать background color для compact и minimal состояний
🔥14
Новые материалы в HIG про графики

📊Charts: Супер подробная статья про то, как надо подходить к дизайну всех составляющих графика: данных, осей, легенды, accessibility
📈Charting data: советы по тому, как представлять данные в виде графиков
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Как правильно отображать строки с динамическим временем

- Если вы используете компонент Text для отображения текущего времени, то могли сталкиваться с тем, что его ширина немного прыгает при изменении времени
- Это происходит, потому что разные цифры имеют разную ширину
- Чтобы избежать этого, примените к Text модификатор monospacedDigit()
🔥90👍29😱8🤡4
Как отключить вопрос про криптографию в App Store Connect

Чтобы App Store Connect не спрашивал при каждой загрузке билда в TestFlight, использует ли приложение криптографию, установите в Info.plist свойство App Uses Non-Exempt Encryption.
🔥76👍22👎2🥰1
Обзор новых пропозалов в Swift за август-сентябрь

Новый выпуск рассылки Swift Evolution Monthly:

Принятые пропозалы: улучшение print’ов для key path’ов, StaticBigInt и conditional compilation для атрибутов.
👨‍👩‍👧‍👦Планы на новые рабочие группы: Numerical/ML, Swift Tooling, Platform Support.
🔗Новые интересные питчи про возможные изменения в языке.
👍7🔥5🌭2
Почему Bitcode был отключен в Xcode 14

Отличный ответ на Stack Overflow про то, почему Apple сначала требовали включить поддержку Bitcode во всех приложениях, а потом отказались от этого. Автор ответа рассказывает и про техническую реализацию Bitcode, и про проблемы, которые вызывает его использование.
👍39
Обзор Apple Watch Ultra от серийного разработчика приложений для часов

David Smith, кажется, самый известный инди-разработчик приложений для Apple Watch. Среди того, что он сделал: Watchsmith (супер-мощная система кастомизации циферблата) и Pedometer++ (удобный трекер активности для тех, кому недостаточно колец).

После покупки себе Apple Watch Ultra он выбрался в горы Шотландии, протестил часы и поделился своими впечатлениями с точки зрени пользователя и разработчика.
👍15🔥3
Альтернативы print

В Swift есть несколько альтернатив обычному print(): Swift.debugPrint(), String(reflecting:), Mirror(reflecting:) и dump(). В статье разбирается, в каких случаях они могут быть полезны.
👍38🤯82
Статистика по использованию Swift и SwiftUI в приложениях Apple в iOS 16

- С помощью SwiftUI были реализованы следующие новые фичи iOS: LiveActivities, Swift Charts, Live Captions, Shared with You
- Количество бинарей, использующих Swift и SwiftUI продолжает расти
- Swift обошел C++
- С iOS 15 использование SwiftUI выросло практически в два раза
🔥26👍7❤‍🔥2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Dynamic Island и кастомный индикатор загрузки

Держите еще один референс по возможному использованию Dynamic Island – индикатор загрузки файла, который превращается в уведомление о ее окончании.
👍51🔥21👎2🤔2
На этой неделе мы наконец-то опубликуем ежегодное исследование российского рынка iOS разработки с красивыми графиками про компании, в которых хотят работать, экспертов, на которых подписаны, и каналы, которые чаще всего читают!

Помимо интересных графиков и волнующих инсайтов, там будет и доска с iOS вакансиями, куда вы можете попасть. Если вам интересно платно разместить свою вакансию – напишите @rio_de_novo.

Исследование прошлого года можно почитать здесь
👎59👍13🤡5🔥2
NavigationPath в SwiftUI

- NavigationPath позволяет замаппить любое hashable значение на переход в навигации
- Это позволяет не объявлять большой enum, описывающий все возможные переходы
- NavigationPath позволяет получить Codable представление всего навигационного стека. Верно и обратное – его можно инициализировать ранее сохраненным стеком навигации
🔥20👍3👎3
sequence(first:next:)

Чтобы итерироваться по иерархии вьюх, можно использовать функцию sequence(first:next:).
🔥104👍14🤯13🤡8👎1
Использование os_signpost в связке с Time Profiler

- Time Profiler помогает визуализировать события, протяженные во времени
- Это удобно для тех случаев, когда надо анализировать события, происходящие параллельно друг с другом, например сетевые запросы
- Данные в Time Profiler можно категоризировать по модулям, файлам и функциям
🔥27
Обновлены официальные дизайн-ресурсы для watchOS 9

Apple обновили sketch-файлы компонентов интерфейса и разных шаблонов для часов.
❤‍🔥4🔥1
Подробный разбор Measurement API

- Measurement – API для работы с физическими величинами
- Он упрощает сложение величин разных типов друг с другом и конвертацию форматов
- Вы можете объявлять свои собственные Measurement типы
- Самая ценная фича – локализация, которая подбирает не только правильный перевод, но и подходящую меру для каждой страны. Например, для России – метры, а для США – футы
- Кроме самой локализации, есть куча встроенных опций по форматированию итоговых значений
🔥25👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Multiple blending modes в SwiftUI

Посмотрите, какого кайфового эффекта в динамике можно добиться, настроив blending mode для текста.
🔥110👍2