И начнем мы со Swift 5.8, который вышел официально https://www.swift.org/blog/swift-5.8-released/ . В новой версии появились доработки, связанные как с самим sdk и Swift, так и SPM, инструментом документации и SwiftSyntax.
Часть новинок уже разобрал у себя Пол Хадсон (https://www.hackingwithswift.com/articles/256/whats-new-in-swift-5-8)
https://debash.medium.com/swift-5-8-что-нового-ff0d55d6238b
https://byby.dev/swift-58
1. SDK
SE-0274: Concise magic file names - краткие псевдонимы для файлов
С помощью #file теперь можно будет включить вывод пути к исходному файлу в формате Module/<filename>.swift
// New behavior, when enabled
print(#file)
// Old behavior, when needed
print(#filePath)
SE-0362: Piecemeal adoption of upcoming language improvements - в этой фиче появляется флаг компиляции -enable-upcoming-feature X, где X - имя фичи в формате UpperCamelCaseFeatureName. Например, так мы можем брать что-то из разработки под Swift 6 для Swift 5.8
SE-0365: Allow implicit self for weak self captures, after self is unwrapped - Неявное использование self для слабых ссылок после их развертывания
class ViewController {
let button: Button
func setup() {
button.tapHandler = { [weak self] in
guard let self else { return }
dismiss()
}
}
func dismiss() { ... }
}
SE-0367: Conditional compilation for attributes - условная компиляция атрибутов
#if compiler(>=9999) && COMPILATION_CONDITION
public typealias IntegerLiteralType = StaticBigInt
#else
public typealias IntegerLiteralType = UInt64
#endif
SE-0368: StaticBigInt - новый тип для больших Int
SE-0369: Add CustomDebugStringConvertible conformance to AnyKeyPath - добавляет соответствие протоколу CustomDebugStringConvertible для AnyKeyPath. Это позволит отображать отладочную ссылку как \ParentTypeName.PropertyName. Сейчас этот путь отображается как KeyPath<ParentTypeName, PropertyTypeName>
SE-0370: Pointer Family Initialization Improvements and Better Buffer Slices
SE-0372: Document Sorting as Stable - касается функций сортировки в Swift. Теперь они официально отмечены как “устойчивые”. Это означает, что элементы, которые равны по значению, будут оставаться в том же порядке, в котором были в исходном массиве после сортировки.
SE-0373: Lift all limitations on variables in result builders - Снятие ограничений на переменные в теле замыкающих выражений. Ослабляет некоторые ограничения на переменные, используемые в теле замыкающих выражений, позволяя писать код, который ранее возвращал ошибку компиляции.
**SE-0374: Add sleep(for:) to Clock**- решает дисбаланс в API между интерфейсами sleep для clock и tasks. Добавленный API позволяет работать с duration, что решает проблему:
let clock: any Clock<Duration> = ContinuousClock()
// Duration-based
try await clock.sleep(for: .seconds(1))
SE-0375: Opening existential arguments to optional parameters - Открытие существующих аргументов для опциональных параметров.
Исправляет проблему, связанную с использованием дженерик)функций с опциональными значениями. В версии Swift 5.7 использование протоколов для вызова универсальных функций не работало с опциональными значениями, но теперь в Swift 5.8 это исправлено
func optionalDouble<T: Numeric>(_ number: T?) -> T {
let numberToDouble = number ?? 0
return numberToDouble * 2
}
let first = 1
let second = 2.0
let third: Float = 3
let numbers: [any Numeric] = [first, second, third]
for number in numbers {
print(optionalDouble(number))
}
SE-0376: Function Back Deployment - Обратное развёртывание функции
SE-0376 добавляет новый атрибут @backDeployed, который позволяет использовать новые API в более старых версиях фреймворков. Благодаря этому атрибуту код функции записывается в двоичный файл приложения и уже в рантайме в зависимости от версии iOS используется либо заранее подготовленный файл, либо нативная реализация нового API.
При этом надо понимать, что @backDeployed применяется только к функциям, методам, сабскриптам и вычисляемым свойствам.
Часть новинок уже разобрал у себя Пол Хадсон (https://www.hackingwithswift.com/articles/256/whats-new-in-swift-5-8)
https://debash.medium.com/swift-5-8-что-нового-ff0d55d6238b
https://byby.dev/swift-58
1. SDK
SE-0274: Concise magic file names - краткие псевдонимы для файлов
С помощью #file теперь можно будет включить вывод пути к исходному файлу в формате Module/<filename>.swift
// New behavior, when enabled
print(#file)
// Old behavior, when needed
print(#filePath)
SE-0362: Piecemeal adoption of upcoming language improvements - в этой фиче появляется флаг компиляции -enable-upcoming-feature X, где X - имя фичи в формате UpperCamelCaseFeatureName. Например, так мы можем брать что-то из разработки под Swift 6 для Swift 5.8
SE-0365: Allow implicit self for weak self captures, after self is unwrapped - Неявное использование self для слабых ссылок после их развертывания
class ViewController {
let button: Button
func setup() {
button.tapHandler = { [weak self] in
guard let self else { return }
dismiss()
}
}
func dismiss() { ... }
}
SE-0367: Conditional compilation for attributes - условная компиляция атрибутов
#if compiler(>=9999) && COMPILATION_CONDITION
public typealias IntegerLiteralType = StaticBigInt
#else
public typealias IntegerLiteralType = UInt64
#endif
SE-0368: StaticBigInt - новый тип для больших Int
SE-0369: Add CustomDebugStringConvertible conformance to AnyKeyPath - добавляет соответствие протоколу CustomDebugStringConvertible для AnyKeyPath. Это позволит отображать отладочную ссылку как \ParentTypeName.PropertyName. Сейчас этот путь отображается как KeyPath<ParentTypeName, PropertyTypeName>
SE-0370: Pointer Family Initialization Improvements and Better Buffer Slices
SE-0372: Document Sorting as Stable - касается функций сортировки в Swift. Теперь они официально отмечены как “устойчивые”. Это означает, что элементы, которые равны по значению, будут оставаться в том же порядке, в котором были в исходном массиве после сортировки.
SE-0373: Lift all limitations on variables in result builders - Снятие ограничений на переменные в теле замыкающих выражений. Ослабляет некоторые ограничения на переменные, используемые в теле замыкающих выражений, позволяя писать код, который ранее возвращал ошибку компиляции.
**SE-0374: Add sleep(for:) to Clock**- решает дисбаланс в API между интерфейсами sleep для clock и tasks. Добавленный API позволяет работать с duration, что решает проблему:
let clock: any Clock<Duration> = ContinuousClock()
// Duration-based
try await clock.sleep(for: .seconds(1))
SE-0375: Opening existential arguments to optional parameters - Открытие существующих аргументов для опциональных параметров.
Исправляет проблему, связанную с использованием дженерик)функций с опциональными значениями. В версии Swift 5.7 использование протоколов для вызова универсальных функций не работало с опциональными значениями, но теперь в Swift 5.8 это исправлено
func optionalDouble<T: Numeric>(_ number: T?) -> T {
let numberToDouble = number ?? 0
return numberToDouble * 2
}
let first = 1
let second = 2.0
let third: Float = 3
let numbers: [any Numeric] = [first, second, third]
for number in numbers {
print(optionalDouble(number))
}
SE-0376: Function Back Deployment - Обратное развёртывание функции
SE-0376 добавляет новый атрибут @backDeployed, который позволяет использовать новые API в более старых версиях фреймворков. Благодаря этому атрибуту код функции записывается в двоичный файл приложения и уже в рантайме в зависимости от версии iOS используется либо заранее подготовленный файл, либо нативная реализация нового API.
При этом надо понимать, что @backDeployed применяется только к функциям, методам, сабскриптам и вычисляемым свойствам.
Swift.org
Swift 5.8 Released!
Swift 5.8 is now officially released! 🎉 This release includes major additions to the language and standard library, including hasFeature to support piecemeal adoption of upcoming features, an improved developer experience, improvements to tools in the Swift…
👍2
SE-0381: DiscardingTaskGroups позволит создавать группы задач, отбрасывающие дочерние задачи сразу после их завершения вместо явного использования await.
Swift Package Manager
SE-0362: Piecemeal adoption of upcoming language improvements
SE-0378: Package Registry Authentication
Swift Package Manager
SE-0362: Piecemeal adoption of upcoming language improvements
SE-0378: Package Registry Authentication
Через 1.5 часа стартуем крутую юбилейную неделю на Podlodka Android Crew:
https://podlodka.io/droidcrew
В программе Jetpack Compose + KMM. Будет очень много интересного и крутого;) И я даже не могу выбрать, какие доклады рекомендовать больше, поэтому очень рекомендую прям ВСЁ.
А в четверг 6 апреля в 19 Мск я расскажу и покажу, как работать с популярными DI библиотеками в приложении KMM (нативный андроид апп я переписала на Compose).
Приходите 😉
https://podlodka.io/droidcrew
В программе Jetpack Compose + KMM. Будет очень много интересного и крутого;) И я даже не могу выбрать, какие доклады рекомендовать больше, поэтому очень рекомендую прям ВСЁ.
А в четверг 6 апреля в 19 Мск я расскажу и покажу, как работать с популярными DI библиотеками в приложении KMM (нативный андроид апп я переписала на Compose).
Приходите 😉
podlodka.io
Онлайн-конференция Podlodka Android Crew, сезон #14
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам Android-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
🔥3👍1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Вышел Kotlin 1.8.20
👉 Улучшения в K2 компиляторе
👉 Новая инкрементальная компиляция в JVM включена по умолчанию
👉 Поддержка WebAssembly. Новый экспериментальный таргет - Kotlin/Wasm
👉 Часть таргетов Kotlin/Native помечены как deprecated и будут удалены в 1.9.20
👉 Экспериментальная поддержка AutoClosable и Base64 кодировки в стандартной библиотеке
Превью фичи следующей версии языка (включаются спец. флагами)
🎉 Современная замена получения всех значений Enum
🎉 data object
🎉 Дополнительные конструкторы в inline классах
📺 Видео версия обзора новинок (13 мин)
#kotlin @kotlin_broadcast
👉 Улучшения в K2 компиляторе
👉 Новая инкрементальная компиляция в JVM включена по умолчанию
👉 Поддержка WebAssembly. Новый экспериментальный таргет - Kotlin/Wasm
👉 Часть таргетов Kotlin/Native помечены как deprecated и будут удалены в 1.9.20
👉 Экспериментальная поддержка AutoClosable и Base64 кодировки в стандартной библиотеке
Превью фичи следующей версии языка (включаются спец. флагами)
🎉 Современная замена получения всех значений Enum
🎉 data object
🎉 Дополнительные конструкторы в inline классах
📺 Видео версия обзора новинок (13 мин)
#kotlin @kotlin_broadcast
Forwarded from ГК «Аквариус»
Media is too big
VIEW IN TELEGRAM
Отечественный разработчик и производитель компьютерной техники "Аквариус" открыл новый завод под Тверью 🏭
Там выпускают персональные компьютеры и недавно запустили серийное производство карманных персональных компьютеров (КПК) на российской операционной системе.
Смотрите полный видеорепортаж с нового производственного комплекса по ссылке 👈🏼
#Аквариус #Тверь #МИР24
Там выпускают персональные компьютеры и недавно запустили серийное производство карманных персональных компьютеров (КПК) на российской операционной системе.
Смотрите полный видеорепортаж с нового производственного комплекса по ссылке 👈🏼
#Аквариус #Тверь #МИР24
🔥9👍3😢1
Готовим для вас крутейший контент) Ждем у нас на Codefest 27-28 мая 😉
Forwarded from CodeFest'15 | 31 мая — 1 июня 2025
Продолжаем знакомить вас с программой.
📲 Mobile
🔹 Кирилл Розов расскажет про одну из горячих новинок Google, которая позволяет переносить функции на старые версии Android. Порассуждает на тему фрагментации и важны ли всё ещё обновления Android OS.
🔹 Что такое навигация в Compose и как реализовать базовую навигацию. Про внутренности компоуза и то, как работает библиотека — в докладе Алексея Гладкова.
🔹 Дмитрий Прокоп приоткроет схему релизного процесса и инструментария в Авито. Расскажет, как они с командой ускоряли релизы, вводили практики бета-тестирования и собирали метрики.
🔹 Полина Скалкина поведает свой личный опыт запуска приложения на SwiftUI. И о «шишках», которые она набила во время этого релиза.
🔹 После доклада Павла Гершевича закрепите термин многомодульность в мобильных приложениях, узнаете зачем она нужна и как её организовать на примере реального проекта на Flutter.
Больше спикеров на сайте 👉🏼 https://13.codefest.ru/speakers
📲 Mobile
🔹 Кирилл Розов расскажет про одну из горячих новинок Google, которая позволяет переносить функции на старые версии Android. Порассуждает на тему фрагментации и важны ли всё ещё обновления Android OS.
🔹 Что такое навигация в Compose и как реализовать базовую навигацию. Про внутренности компоуза и то, как работает библиотека — в докладе Алексея Гладкова.
🔹 Дмитрий Прокоп приоткроет схему релизного процесса и инструментария в Авито. Расскажет, как они с командой ускоряли релизы, вводили практики бета-тестирования и собирали метрики.
🔹 Полина Скалкина поведает свой личный опыт запуска приложения на SwiftUI. И о «шишках», которые она набила во время этого релиза.
🔹 После доклада Павла Гершевича закрепите термин многомодульность в мобильных приложениях, узнаете зачем она нужна и как её организовать на примере реального проекта на Flutter.
Больше спикеров на сайте 👉🏼 https://13.codefest.ru/speakers
🔥3❤1
Forwarded from Открытая мобильная платформа
Разработчики получают всё больше инструментов для создания приложений для ОС Аврора.
На профильной конференции Mobius наш коллега поделится:
🤘 статусом поддержки кроссплатформенного фреймворка Flutter в ОС Аврора;
🤘 нашими планами по доступности SDK для экосистемы.
https://mobiusconf.com/talks/b534162b89294a6f8c3021962c93a9fa/
На профильной конференции Mobius наш коллега поделится:
https://mobiusconf.com/talks/b534162b89294a6f8c3021962c93a9fa/
Please open Telegram to view this post
VIEW IN TELEGRAM
Mobius 2023 Spring. Конференция для мобильных разработчиков
ОС Аврора и Flutter. Статус поддержки | Доклад на Mobius 2023 Spring
Доклад будет посвящен процессу и особенностям портирования фреймворка Flutter на ОС Аврора, а также тому, как можно писать Flutter-приложения под ОС Аврора.
🔥2
Ада Лавлейс разработала первую в мире программу, Грейс Хоппер была в числе создателей языка программирования COBOL, Радья Перлман произвела протокол Spanning Tree Protocol — ключевую технологию для работы интернета, а я двигаю Kotlin Multiplatform в массы!
👏16❤1🤡1
Forwarded from Usetech
Доклад Анны Жарковой в подборке JUG Ru Group на Habr
Исторически женщины играли важную роль в развитии IT-отрасли: Ада Лавлейс разработала первую в мире программу, Грейс Хоппер была в числе создателей языка программирования COBOL, Радья Перлман произвела протокол Spanning Tree Protocol — ключевую технологию для работы интернета.
Команда JUG Ru Group собрала подборку с докладами женщин, которые сегодня вносят ощутимый вклад в IT-отрасль 🚀 С попыткой примирить миры Android и iOS в нее попал доклад Анны Жарковой - ведущего мобильного разработчика ГК Юзтех.
В докладе Анна рассказывает, как превратить приложение Android в кроссплатформенное и сделать используемым вместе с iOS при помощи Kotlin Multiplatform.
Оставляем вам ссылочку на публикацию. Не забудьте поделиться с друзьями и поставить + себе в карму 🙌
Исторически женщины играли важную роль в развитии IT-отрасли: Ада Лавлейс разработала первую в мире программу, Грейс Хоппер была в числе создателей языка программирования COBOL, Радья Перлман произвела протокол Spanning Tree Protocol — ключевую технологию для работы интернета.
Команда JUG Ru Group собрала подборку с докладами женщин, которые сегодня вносят ощутимый вклад в IT-отрасль 🚀 С попыткой примирить миры Android и iOS в нее попал доклад Анны Жарковой - ведущего мобильного разработчика ГК Юзтех.
В докладе Анна рассказывает, как превратить приложение Android в кроссплатформенное и сделать используемым вместе с iOS при помощи Kotlin Multiplatform.
Оставляем вам ссылочку на публикацию. Не забудьте поделиться с друзьями и поставить + себе в карму 🙌
🔥12👍4🤡1
Forwarded from Mobius — канал конференции
Выбор архитектуры и платформ разработки — в новом выпуске «Ленты Мобиуса» — 12 апреля в 17:00
Гостем выпуска станет Анна Жаркова — ведущий Android/iOS-разработчик, архитектор мобильных приложений и тимлид.
Вместе с Анной мы обсудим:
— Как выбрать архитектуру проекта?
— Какую платформу выбрать для начала и какие ресурсы в этом помогут?
— Любят ли фулстек-разработчики одну платформу больше другой?
До встречи 12 апреля в 17:00.
Жмите колокольчик, чтобы не пропустить выпуск.
Гостем выпуска станет Анна Жаркова — ведущий Android/iOS-разработчик, архитектор мобильных приложений и тимлид.
Вместе с Анной мы обсудим:
— Как выбрать архитектуру проекта?
— Какую платформу выбрать для начала и какие ресурсы в этом помогут?
— Любят ли фулстек-разработчики одну платформу больше другой?
До встречи 12 апреля в 17:00.
Жмите колокольчик, чтобы не пропустить выпуск.
❤4👍1🔥1
Дала интервью Skillbox про удаленку и работу из дома https://skillbox.ru/media/code/gde-luchshe-rabotat-doma-v-ofise-ili-kovorkinge/
Skillbox
Где лучше работать: дома, в офисе или в коворкинге?
Опытные айтишники рассказывают, в каких условиях приятнее программировать, тестировать, администрировать и не только.
https://www.youtube.com/watch?v=D823mqyMTeQ в пятницу подключайтесь на трансляцию Surf, посвященную новинкам андроид 14 и нейросетям
YouTube
Что нового в Android и куда нас приведут нейронки
Обсудим нововведения Android 14 и использование нейросетей в нативной разработке в прямом эфире! У микрофона:
— Алексей Рябков, Surf Android TeamLead
— Герман Прошунин, Surf Android Developer
— Максим Кругликов, Surf Android Developer
— Кирилл Розов…
— Алексей Рябков, Surf Android TeamLead
— Герман Прошунин, Surf Android Developer
— Максим Кругликов, Surf Android Developer
— Кирилл Розов…
👍2🥰1
Прямая бесплатная трансляция конференции Kotlin Konf. Подключайтесь)
Forwarded from Kotlin Multiplatform (Aleksey Mikhailov)
Если еще не подключились к KotlinConf 2023 - то уже пора :)
Forwarded from Mobile Developer (Алексей Гладков)
А тем временем ребята из JetBrains зарелизили Compose Multiplatform 1.4.0
https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.4.0
Что внутри:
👉 Поддержка Kotlin 1.8.20
👉 Compose for iOS официально вышел в alpha!!!
👉 Fix internal composable error
👉 Поправили работу скроллбаров в десктопе
👉 и еще дохренища всякого другого
https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.4.0
Что внутри:
👉 Поддержка Kotlin 1.8.20
👉 Compose for iOS официально вышел в alpha!!!
👉 Fix internal composable error
👉 Поправили работу скроллбаров в десктопе
👉 и еще дохренища всякого другого
GitHub
Release 1.4.0 · JetBrains/compose-multiplatform
Common
Added support for Kotlin 1.8.20
Features
Support perspective projection and cameraDistance parameter in graphicsLayer
Support brush parameter in TextStyle for complex coloring
Support dra...
Added support for Kotlin 1.8.20
Features
Support perspective projection and cameraDistance parameter in graphicsLayer
Support brush parameter in TextStyle for complex coloring
Support dra...
👍3