Серия видео в реальном времени по использованию SwiftUI. В данном видео на практике рассматривается пример применения TDD с интерфейсом SwiftUI. Очень полезно для тех кто слышал про TDD но не мог практически понять как писать тесты до написания логики. Очень хорошо видно как преображается качество архитектурного решения исходя из вводных по тестовым сценариям.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Apple объявила о проведении мероприятия Let Loose. Оно состоится во вторник 7 мая. Прямая трансляция будет доступна на сайте Apple.com.
Слоган и изображение, украшающее анонс предстоящего события, намекают на выпуск новых планшетов iPad Pro и iPad Air, а также аксессуаров Apple Pencil и Magic Keyboard. По данным MacRumors, инсайдеры ждут от майской презентации раскрытия следующих устройств:
Please open Telegram to view this post
VIEW IN TELEGRAM
MacRumors
Apple Announces 'Let Loose' Event on May 7 Amid Rumors of New iPads
Apple has announced it will be holding a special event on Tuesday, May 7 at 7 a.m. Pacific Time (10 a.m. Eastern Time), with a live stream to be...
C 1 мая 2024 года приложения без PrivacyInfo.xcprivacy, будут отклоняться от Review.
PrivacyInfo.xcprivacy - это XML-файл в формате .plist. Существует 3 основных типа данных, которые должны быть указаны в Манифесте конфиденциальности:
Если вы еще не успели разобраться в полной документации Apple, этот генератор спасет вам майские праздники
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
В данном пропоузале появилась возможность помечать
import
любым из доступных уровней доступа Swift, чтобы ограничить типы или интерфейсы. Благодаря этим изменениям, зависимости теперь могут быть помечены как видимые для текущего исходного файла (private или fileprivate), модуля (internal), пакета (package) или всех клиентов (public).Это предложение вносит изменения в два функционала, которые будут включены в Swift 6 по умолчанию.:
Это отличное дополнение к языку, о котором я лично давно ждал, поскольку оно позволяет разработчикам лучше скрывать детали реализации. Кроме того, это также ограничивает количество зависимостей, импортируемых клиентами пакета, теми, которые помечены как общедоступные, при соблюдении правильных условий, что сокращает время компиляции.
Please open Telegram to view this post
VIEW IN TELEGRAM
Простая статья - напоминание о том что использование кастомных шрифтов не означает отказ от поддержки динамического изменения размера. Около 30% пользователей используют не стандартный размер шрифта, исходя из аналитики PSDFKit.
Кстати у них выходила более крупная статья еще в 2018 году и она еще актуальна.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from Compose Broadcast
Инструкция (7м) от TouchLab как интегрировать нативные iOS компоненты в Compose iOS
#ios #swiftui #compose #kmp
#ios #swiftui #compose #kmp
🔥2
Forwarded from Big Geek
Bloomberg: Евросоюз обяжет Apple добавить на iPad поддержку сторонних магазинов приложений в Европе
Также Apple придётся на территории ЕС сделать iPad совместимым с альтернативными браузерными движками — то есть, подогнать планшеты под действие Закона о цифровых рынках (DMA).
Ранее DMA действовал только в отношении смартфонов. Теперь у Apple есть примерно шесть месяцев, чтобы привести iPadOS в соответствие с новыми требованиями.
Также Apple придётся на территории ЕС сделать iPad совместимым с альтернативными браузерными движками — то есть, подогнать планшеты под действие Закона о цифровых рынках (DMA).
Ранее DMA действовал только в отношении смартфонов. Теперь у Apple есть примерно шесть месяцев, чтобы привести iPadOS в соответствие с новыми требованиями.
🔥10👍5🤔2
Статья для начинающих по тому как работать с состояниями в SwiftUI. Для опытных инженеров, возможно, это покажется базой, но к этому нужно прийти. Что приятно, автор идёт дальше обычных примеров с Hello world и раскрывает несколько нюансов с которым сталкивался каждый, приходя в UDF архитектуру
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Mercedes отказался от интеграции CarPlay 2.0
«Все, что происходит в этом цифровом окне в ваш автомобиль и в мир — это не просто информационно-развлекательная система. Это не просто музыка, которую вы слушаете, или телефонный звонок, который вы делаете.
Еще одна революция происходит в области автоматизированного вождения. Так что наша операционная система Mercedes-Benz на самом деле является центральной нервной системой в мозгу всего автомобиля, где информационно-развлекательная система является одной из четырех областей. Вся операционная система, информационно-развлекательная система, автоматизированное вождение, все функции кузова, экстерьера и интерьера автомобиля, вся система привода, управление батареей, все это.
Все это — единая целостная архитектура программного обеспечения. Поэтому, если вы хотите создать превосходный клиентский опыт, вам нужно думать об этом в целом. И только производитель может связать все это воедино.
Никто, ни одна из технологических компаний, даже не пытается сделать все это.»
Это важное заявление, т.к. 2 года назад на раннем анонсе именно Mercedes был одним из немногих производителей массового сегмента кто планировал интеграцию с CarPlay 2.0.
«Все, что происходит в этом цифровом окне в ваш автомобиль и в мир — это не просто информационно-развлекательная система. Это не просто музыка, которую вы слушаете, или телефонный звонок, который вы делаете.
Еще одна революция происходит в области автоматизированного вождения. Так что наша операционная система Mercedes-Benz на самом деле является центральной нервной системой в мозгу всего автомобиля, где информационно-развлекательная система является одной из четырех областей. Вся операционная система, информационно-развлекательная система, автоматизированное вождение, все функции кузова, экстерьера и интерьера автомобиля, вся система привода, управление батареей, все это.
Все это — единая целостная архитектура программного обеспечения. Поэтому, если вы хотите создать превосходный клиентский опыт, вам нужно думать об этом в целом. И только производитель может связать все это воедино.
Никто, ни одна из технологических компаний, даже не пытается сделать все это.»
Это важное заявление, т.к. 2 года назад на раннем анонсе именно Mercedes был одним из немногих производителей массового сегмента кто планировал интеграцию с CarPlay 2.0.
🤔4
Еще одна статья с попыткой интегрировать Preview в повседневную работу. Кажется, что Apple анонсировала очень удобный инструмент, которым очень сложно пользоваться в реальной жизни, особенно учитывая "стабильность" работы Xcode. Тем не менее, всегда интересно посмотреть на подход к разработке проекте в котором разрабока в основном ведется через Preview. В теории есть множество плюсов:
На практике же, приходится решать множество вопросов ради не стабильно работающего инструмента
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Вы пользуетесь SwiftUI Preview ?
Anonymous Poll
30%
Да, активно
29%
Да, ограниченно
41%
Почти не использую
👍3
Статья для тех кто все еще путается в отличиях и корректности применения. Выбор между ними зависит от конкретного варианта использования, владения объектом и времени жизни, а также от масштабов использования объекта в иерархии вьюх.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
iOS Broadcast
Вы пользуетесь SwiftUI Preview ?
This media is not supported in your browser
VIEW IN TELEGRAM
Как показал опрос, только около 30% разработчиков активно используют SwiftUI Preview. Главной причиной является "стабильность" работы этого инструмента. Несмотря на все старания, даже в актуальной версии Xcode, запуск предпросмотра работает через раз. Но что интересно, уже сейчас можно использовать те подходы и принципы, которые заложены в SwiftUI Preview в обычном симмуляторе. Hot reloading это то чего не хватает тем кто пробовал разработку в вебе или Flutter, возможность без перезапуска вносить изменения в исходный код. В статье рассматривается пример, как использовать hot reloading уже сегодня. Ну а я жду официальной поддержки и анонса на скором WWDC
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
С появлением UIHostingConfiguration стало намного проще добавлять содержимое SwiftUI в UITableView. Он довольно хорошо справляется со сценариями повторного использования, это намного проще, чем старый метод configure(data:), который большинство людей использовали в ячейке на основе UIKit. Но, как часто бывает со SwiftUI, нужно понимать как это работает под капотом. Например при переиспользовании ячеек. Для этого случая важно установить идентификатор вручную для каждой SwiftUI ячейки. В статье как раз рассматривается этот пример, в котором из-за смешанного контента внутри ячеек, появляются глитчи при прокрутке коллекции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1
Итоги презентации Apple "Let loose"
🟢 Новый 12.9 дюймовый iPad Air
🟢 Новый iPad Pro
🟢 Новый процессор M4 на 3 нанометровой технологии с упором на исполнение нейронок
🟢 Новый Apple Pencil Pro с жестами, совместимый с iPad Air
🟢 Новая клавиатура для iPad
Хочется отметить что M4 представили через 7 месяцев после M3 и главный прорыв в исполнении нейронок. Ждем WWDC и множества нововведений с ML и LLM
Хочется отметить что M4 представили через 7 месяцев после M3 и главный прорыв в исполнении нейронок. Ждем WWDC и множества нововведений с ML и LLM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Маленькая но полезная подсказка: у Binding есть опциональный конструктор который позволяет оставить аргумент опциональным и избежать ошибки компиляции
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23
Принят "новый" тип в стандартную библиотеку синхронизации -
Mutex
. Этот тип будет оболочкой для примитива мьютекса, зависящего от платформы. Теперь, для защиты данных в классе, используемыемых одновременно многими потоками можно использовать конструкцию:
class FancyManagerOfSorts {
let cache = Mutex<[String: Resource]>([:])
func save(_ resource: Resource, as key: String) {
cache.withLock {
$0[key] = resource
}
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
swift-evolution/proposals/0433-mutex.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
🔥16❤2