Особенности работы с Dynamic Island
- При конфигурации WidgetKit для Dynamic Island нужно задать вьюшки для четырех состояний: compact leading, compact trailing, expanded и minimal
- Expanded-состояние делит все пространство виджета на 4 области, и позволяет задать, в каких из них конкретно мы хотим отображать контент
- Можно задавать background color для compact и minimal состояний
- При конфигурации WidgetKit для Dynamic Island нужно задать вьюшки для четырех состояний: compact leading, compact trailing, expanded и minimal
- Expanded-состояние делит все пространство виджета на 4 области, и позволяет задать, в каких из них конкретно мы хотим отображать контент
- Можно задавать background color для compact и minimal состояний
🔥14
Новые материалы в HIG про графики
📊Charts: Супер подробная статья про то, как надо подходить к дизайну всех составляющих графика: данных, осей, легенды, accessibility
📈Charting data: советы по тому, как представлять данные в виде графиков
📊Charts: Супер подробная статья про то, как надо подходить к дизайну всех составляющих графика: данных, осей, легенды, accessibility
📈Charting data: советы по тому, как представлять данные в виде графиков
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Как правильно отображать строки с динамическим временем
- Если вы используете компонент Text для отображения текущего времени, то могли сталкиваться с тем, что его ширина немного прыгает при изменении времени
- Это происходит, потому что разные цифры имеют разную ширину
- Чтобы избежать этого, примените к Text модификатор monospacedDigit()
- Если вы используете компонент Text для отображения текущего времени, то могли сталкиваться с тем, что его ширина немного прыгает при изменении времени
- Это происходит, потому что разные цифры имеют разную ширину
- Чтобы избежать этого, примените к Text модификатор monospacedDigit()
🔥90👍29😱8🤡4
Как отключить вопрос про криптографию в App Store Connect
Чтобы App Store Connect не спрашивал при каждой загрузке билда в TestFlight, использует ли приложение криптографию, установите в Info.plist свойство App Uses Non-Exempt Encryption.
Чтобы 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.
🔗Новые интересные питчи про возможные изменения в языке.
Новый выпуск рассылки 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, и про проблемы, которые вызывает его использование.
Отличный ответ на Stack Overflow про то, почему Apple сначала требовали включить поддержку Bitcode во всех приложениях, а потом отказались от этого. Автор ответа рассказывает и про техническую реализацию Bitcode, и про проблемы, которые вызывает его использование.
Stack Overflow
Xcode 14 deprecates bitcode - but why?
Xcode 14 Beta release notes are out, all thanks to the annual WWDC.
And alas, the Bitcode is now deprecated, and you'll get a warning message if you attempt to enable it.
And I was wondering, why has
And alas, the Bitcode is now deprecated, and you'll get a warning message if you attempt to enable it.
And I was wondering, why has
👍39
Обзор Apple Watch Ultra от серийного разработчика приложений для часов
David Smith, кажется, самый известный инди-разработчик приложений для Apple Watch. Среди того, что он сделал: Watchsmith (супер-мощная система кастомизации циферблата) и Pedometer++ (удобный трекер активности для тех, кому недостаточно колец).
После покупки себе Apple Watch Ultra он выбрался в горы Шотландии, протестил часы и поделился своими впечатлениями с точки зрени пользователя и разработчика.
David Smith, кажется, самый известный инди-разработчик приложений для Apple Watch. Среди того, что он сделал: Watchsmith (супер-мощная система кастомизации циферблата) и Pedometer++ (удобный трекер активности для тех, кому недостаточно колец).
После покупки себе Apple Watch Ultra он выбрался в горы Шотландии, протестил часы и поделился своими впечатлениями с точки зрени пользователя и разработчика.
YouTube
Testing an Apple Watch Ultra in the Scottish Highlands
[For everyone asking what navigation app I'm using, that is an app I am currently developing. It isn't available yet, but I hope to get it finished soon.]
To really try and see how the Apple Watch Ultra performs in the field, I headed up to the Scottish…
To really try and see how the Apple Watch Ultra performs in the field, I headed up to the Scottish…
👍15🔥3
Альтернативы print
В Swift есть несколько альтернатив обычному print(): Swift.debugPrint(), String(reflecting:), Mirror(reflecting:) и dump(). В статье разбирается, в каких случаях они могут быть полезны.
В Swift есть несколько альтернатив обычному print(): Swift.debugPrint(), String(reflecting:), Mirror(reflecting:) и dump(). В статье разбирается, в каких случаях они могут быть полезны.
Swiftjective-C
Swift's print(), debugPrint(), String(reflecting:), Mirror(reflecting:) and dump()
Every codebase under the sun on God's green earth uses print statements to wrangle bugs. Let's look at the tools that Swift has for such cases.
👍38🤯8❤2
Статистика по использованию Swift и SwiftUI в приложениях Apple в iOS 16
- С помощью SwiftUI были реализованы следующие новые фичи iOS: LiveActivities, Swift Charts, Live Captions, Shared with You
- Количество бинарей, использующих Swift и SwiftUI продолжает расти
- Swift обошел C++
- С iOS 15 использование SwiftUI выросло практически в два раза
- С помощью 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 – индикатор загрузки файла, который превращается в уведомление о ее окончании.
Держите еще один референс по возможному использованию Dynamic Island – индикатор загрузки файла, который превращается в уведомление о ее окончании.
👍51🔥21👎2🤔2
На этой неделе мы наконец-то опубликуем ежегодное исследование российского рынка iOS разработки с красивыми графиками про компании, в которых хотят работать, экспертов, на которых подписаны, и каналы, которые чаще всего читают!
Помимо интересных графиков и волнующих инсайтов, там будет и доска с iOS вакансиями, куда вы можете попасть. Если вам интересно платно разместить свою вакансию – напишите @rio_de_novo.
Исследование прошлого года можно почитать здесь
Помимо интересных графиков и волнующих инсайтов, там будет и доска с iOS вакансиями, куда вы можете попасть. Если вам интересно платно разместить свою вакансию – напишите @rio_de_novo.
Исследование прошлого года можно почитать здесь
👎59👍13🤡5🔥2
NavigationPath в SwiftUI
- NavigationPath позволяет замаппить любое hashable значение на переход в навигации
- Это позволяет не объявлять большой enum, описывающий все возможные переходы
- NavigationPath позволяет получить Codable представление всего навигационного стека. Верно и обратное – его можно инициализировать ранее сохраненным стеком навигации
- NavigationPath позволяет замаппить любое hashable значение на переход в навигации
- Это позволяет не объявлять большой enum, описывающий все возможные переходы
- NavigationPath позволяет получить Codable представление всего навигационного стека. Верно и обратное – его можно инициализировать ранее сохраненным стеком навигации
Swift with Majid
Mastering NavigationStack in SwiftUI. NavigationPath.
SwiftUI provides us with a brand new data-driven navigation API allowing us to map a value to a destination in the view hierarchy. This week I want to continue the story of the new navigation API in SwiftUI by covering another tool. We will learn how to use…
🔥20👍3👎3
sequence(first:next:)
Чтобы итерироваться по иерархии вьюх, можно использовать функцию sequence(first:next:).
Чтобы итерироваться по иерархии вьюх, можно использовать функцию sequence(first:next:).
🔥104👍14🤯13🤡8👎1
Использование os_signpost в связке с Time Profiler
- Time Profiler помогает визуализировать события, протяженные во времени
- Это удобно для тех случаев, когда надо анализировать события, происходящие параллельно друг с другом, например сетевые запросы
- Данные в Time Profiler можно категоризировать по модулям, файлам и функциям
- Time Profiler помогает визуализировать события, протяженные во времени
- Это удобно для тех случаев, когда надо анализировать события, происходящие параллельно друг с другом, например сетевые запросы
- Данные в Time Profiler можно категоризировать по модулям, файлам и функциям
🔥27
Обновлены официальные дизайн-ресурсы для watchOS 9
Apple обновили sketch-файлы компонентов интерфейса и разных шаблонов для часов.
Apple обновили sketch-файлы компонентов интерфейса и разных шаблонов для часов.
❤🔥4🔥1
Подробный разбор Measurement API
- Measurement – API для работы с физическими величинами
- Он упрощает сложение величин разных типов друг с другом и конвертацию форматов
- Вы можете объявлять свои собственные Measurement типы
- Самая ценная фича – локализация, которая подбирает не только правильный перевод, но и подходящую меру для каждой страны. Например, для России – метры, а для США – футы
- Кроме самой локализации, есть куча встроенных опций по форматированию итоговых значений
- Measurement – API для работы с физическими величинами
- Он упрощает сложение величин разных типов друг с другом и конвертацию форматов
- Вы можете объявлять свои собственные Measurement типы
- Самая ценная фича – локализация, которая подбирает не только правильный перевод, но и подходящую меру для каждой страны. Например, для России – метры, а для США – футы
- Кроме самой локализации, есть куча встроенных опций по форматированию итоговых значений
🔥25👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Multiple blending modes в SwiftUI
Посмотрите, какого кайфового эффекта в динамике можно добиться, настроив blending mode для текста.
Посмотрите, какого кайфового эффекта в динамике можно добиться, настроив blending mode для текста.
🔥110👍2