Forwarded from Polymorphic Blueprint (Aѕtɛmiɾ)
#evolution #swift #spm
Swift 6.0 Roadmap: SE-0435 Swift Language Version Per Target
Существующий
Пропозал нацелен на гранулярную миграцию новых версий языка - один из столпов обеспечения бесперебойной адаптации новой функциональности.
В Swift 6.0, по умолчанию будет включена проверка строгой конкурентности (strict concurrency checking), что является примером тех изменений, что могут вызвать некоторые сложности. Данное изменение существенным образом повлияет на проекты использующие (многомодульные) SPM пакеты, в частности породит лавины ошибок (errors), что в предыдущих версиях были лишь предупреждениями (warnings) из за кардинальных изменений модели изоляции и ее энфорса (по мимо прочего).
Стоит только вспомнить миграцию со
Авторами пропозала является инженер
• Данное изменение позволит авторам пакетов инкрементно переводить проекты на новую языковую модель
• Вводится настройка таргета API (target setting API) для спецификации версии языка, а в случае ее отсутствия, версия будет определена путем фолбека на текущую версию определенную на уровне пакета (как это делается сейчас)
• Новая настройка
• Ограничена версией манифеста на 6.0
• На более старых версиях работать не будет
[Implementation PR]
🏛 Polymorphic Blueprint
Swift 6.0 Roadmap: SE-0435 Swift Language Version Per Target
Существующий
SPM манифест API для спецификации версии языка Swift применяется ко всему пакету, что ограничивает адаптацию новых версий языка имеющих импликации на обратную совместимость.Пропозал нацелен на гранулярную миграцию новых версий языка - один из столпов обеспечения бесперебойной адаптации новой функциональности.
В Swift 6.0, по умолчанию будет включена проверка строгой конкурентности (strict concurrency checking), что является примером тех изменений, что могут вызвать некоторые сложности. Данное изменение существенным образом повлияет на проекты использующие (многомодульные) SPM пакеты, в частности породит лавины ошибок (errors), что в предыдущих версиях были лишь предупреждениями (warnings) из за кардинальных изменений модели изоляции и ее энфорса (по мимо прочего).
Стоит только вспомнить миграцию со
Swift 3 на 4, где ломалось практически все (но было весело). Справедливости ради кода еще было не так много, как сейчас, а изменения носили сугубо синтаксический характер. Позднее разработчики позаботились, об инструментах миграции. Сейчас же стоит вопрос ABI совместимости, семантики и большого числа кода подлежащего миграции с практически неминуеыми breaking changes. Авторами пропозала является инженер
Apple, так что мы с 99% долей вероятности можем быть уверены, что он будет одобрен, так как на форуме Swift питч и рационализация были тепло приняты. Holly Borla: The Swift 6 migration is more involved than previous migrations, and it will not be forced on anybody who does not want to migrate.
• Данное изменение позволит авторам пакетов инкрементно переводить проекты на новую языковую модель
• Вводится настройка таргета API (target setting API) для спецификации версии языка, а в случае ее отсутствия, версия будет определена путем фолбека на текущую версию определенную на уровне пакета (как это делается сейчас)
• Новая настройка
swiftLanguageVersion в которой можно указать версию языка Swift и опциональное условие BuildSettingCondition (платформа(ы) и/или тип конфигурации [.release, .debug])• Ограничена версией манифеста на 6.0
• На более старых версиях работать не будет
public struct SwiftSetting {
// ... other settings
@available(_PackageDenoscription, introduced: 6.0)
public static func swiftLanguageVersion(
_ version: SwiftVersion,
_ condition: BuildSettingCondition? = nil
) -> SwiftSetting {
...
}
}
Нет связанных импликаций на безопасность и конфиденциальность существующих или будущих пакетов
Note:На
Package.swift ссылаются,
как на манифест пакета (package manifest)
[Implementation PR]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
Примеряем обновочки Swift-Composable-Architecture
Во-первых, 1.10.2 version of TCA.
- @Shared стейты.
- Фиксы багов.
Во-вторых, 0.9.0 version of TCACoordinators.
- Поддержка paths.
- Обновление апи под TCA.
При всех хейтерских мнениях по поводы TCA, технология развивается семимильными шагами.
Пока что ни разу не пожалели, что внедрили Swift-Composable-Architecture в наш основной стэк.
Во-первых, 1.10.2 version of TCA.
- @Shared стейты.
- Фиксы багов.
Во-вторых, 0.9.0 version of TCACoordinators.
- Поддержка paths.
- Обновление апи под TCA.
При всех хейтерских мнениях по поводы TCA, технология развивается семимильными шагами.
Пока что ни разу не пожалели, что внедрили Swift-Composable-Architecture в наш основной стэк.
👍4🔥2
Media is too big
VIEW IN TELEGRAM
Интересно, войдет ли Metal UI и animations в повседневные интерфейсы современных мобильны приложений?
Пока, как ни крути, для большинства разработчиков это - недостижимый уровень.
И все же, со временем доступность технологий упрощается, появляются новые материалы для изучения и готовые решения.
Что же, ждем-с?
Ссылка
Пока, как ни крути, для большинства разработчиков это - недостижимый уровень.
И все же, со временем доступность технологий упрощается, появляются новые материалы для изучения и готовые решения.
Что же, ждем-с?
Ссылка
🔥6👍5😍2
Кто-нибудь, объясните, как готовить суп с макаронами?
Вроде их мало, мало, мало, а, потом хе-ра-кс, и у тебя вместо супа макаронное рагу…
Зато с сосисками и кетчупом зайдет.
Вроде их мало, мало, мало, а, потом хе-ра-кс, и у тебя вместо супа макаронное рагу…
Зато с сосисками и кетчупом зайдет.
😁3🌭3💯3
Array capacity
C одной стороны:
C другой стороны:
Ссылки:
Buffer;
Geometric progression;
Reserve capacity;
Array capacity optimization;
What is the use of an array capacity.
C одной стороны:
Preserving an Array's Geometric Growth Strategy
@inlinable
internal func _growArrayCapacity(_ capacity: Int) -> Int {
return capacity * 2
}
C другой стороны:
Basically, the array capacity has no external use. It is there for Swift's internal use... ...Now that you've seen, you can forget about it.
Ссылки:
Buffer;
Geometric progression;
Reserve capacity;
Array capacity optimization;
What is the use of an array capacity.
🦄8👍3
Но я точно скажу да на изучение Английского с Trannoscriptum
Trannoscriptum, это:
- Свободное общение с умным AI-учителем иностранного языка на любую тему. Он проанализирует ваш диалог на допущенные ошибки.
- Перевод фраз. Пришли перевод в аудио или текстовом сообщении и получи разбор твоей фразы — были ли допущены грамматические или смысловые ошибки.
Скажи YES Trannoscriptum! 🇬🇧
Trannoscriptum, это:
- Свободное общение с умным AI-учителем иностранного языка на любую тему. Он проанализирует ваш диалог на допущенные ошибки.
- Перевод фраз. Пришли перевод в аудио или текстовом сообщении и получи разбор твоей фразы — были ли допущены грамматические или смысловые ошибки.
Скажи YES Trannoscriptum! 🇬🇧
Telegram
Trannoscriptum
Умный чат-бот для тренировки разговорной речи на английском, французском и немецком 🇬🇧🇩🇪🇫🇷
Нужна помощь? Пишите @issdev
Нужна помощь? Пишите @issdev
💯8👍5❤1
Пятничный дебаф ⤵️
1) -20% к производительности.
2) +15% временных затрат на рилсы.
Как фиксить эту игрушка дьявола?
1) -20% к производительности.
2) +15% временных затрат на рилсы.
Как фиксить эту игрушка дьявола?
😈9
SwiftUI на iOS 14 + Оптимизация
Базированная статья с конкретными советами и практиками при разработке на SwiftUI.
Сейчас в комьюнити бытует мнение, что на секцию SwiftUI особо нечего спрашивать, и все же подобные статьи раскрывают практичную внутрянку, которую должен знать каждый.
В общем, обязательно к прочтению ⬇️
Ссылки:
- SwiftUI на iOS 14: преодолевая баги и улучшая перформанс в 3 раза.
- The Mystery Behind View Equality.
Базированная статья с конкретными советами и практиками при разработке на SwiftUI.
Сейчас в комьюнити бытует мнение, что на секцию SwiftUI особо нечего спрашивать, и все же подобные статьи раскрывают практичную внутрянку, которую должен знать каждый.
В общем, обязательно к прочтению ⬇️
Ссылки:
- SwiftUI на iOS 14: преодолевая баги и улучшая перформанс в 3 раза.
- The Mystery Behind View Equality.
👍9🔥2