В целом, в Swift 5.10 были реализованы следующие фичи:
SE-0327: On Actors and Initialization
SE-0383: Deprecate @UIApplicationMain and @NSApplicationMain - меняем теперь на @main
SE-0404: Allow Protocols to be Nested in Non-Generic Contexts - поддержка вложенных протоколов в необобщенном контексте
SE-0411: Isolated default value expressions
SE-0412: Strict concurrency for global variables
SE-0327: On Actors and Initialization
SE-0383: Deprecate @UIApplicationMain and @NSApplicationMain - меняем теперь на @main
SE-0404: Allow Protocols to be Nested in Non-Generic Contexts - поддержка вложенных протоколов в необобщенном контексте
SE-0411: Isolated default value expressions
SE-0412: Strict concurrency for global variables
15 марта анонсирована срезка версии 6.0. https://forums.swift.org/t/swift-6-0-release-process/70220
В Swift 6.0 уже реализованые следующие фичи:
1 SE-0422Expression macro as caller-side default argument
Использование макросов как аргументов по умолчанию в функциях
2 SE-0421Generalize effect polymorphism for AsyncSequence and AsyncIteratorProtocol
Обобщение полиморфизма AsyncSequence и AsyncIteratorProtocol. Добавляется новый ассоциированный тип Failure, поддержка параметров Element и Failure добавляется к методам, например, next()
3. SE-0420Inheritance of actor isolation
Наследование изоляции акторов
#isolated аргументы могут поддерживать опциональный тип
Аргумент по умолчанию #isolated:
4. SE-0418Inferring Sendable for methods and key path literals
Применение Sendable к методам (включая частичные и неимплементированные) и key-path литералам
5. SE-0416Subtyping for keypath literals as functions
Преобразование key-path литералов как функций
Например
В Swift 6.0 уже реализованые следующие фичи:
1 SE-0422Expression macro as caller-side default argument
Использование макросов как аргументов по умолчанию в функциях
// in MyLibrary.swift =======
@freestanding(expression)
macro MyFileID<T: ExpressibleByStringLiteral>() -> T = ...
public func callSiteFile(_ file: String = #MyFileID) { file }
public func declarationSiteFile(_ file: String = (#MyFileID)) { file }
public func alsoDeclarationSiteFile(
file: String = callSiteFile(#MyFileID)
) { file }
// in main.swift ============
print(callSiteFile()) // print main.swift, the current file
print(declarationSiteFile()) // always prints MyLibrary.swift
print(alsoDeclarationSiteFile()) // always prints MyLibrary.swift
2 SE-0421Generalize effect polymorphism for AsyncSequence and AsyncIteratorProtocol
Обобщение полиморфизма AsyncSequence и AsyncIteratorProtocol. Добавляется новый ассоциированный тип Failure, поддержка параметров Element и Failure добавляется к методам, например, next()
@available(SwiftStdlib 5.1, *)
protocol AsyncIteratorProtocol<Element, Failure> {
associatedtype Element
mutating func next() async throws -> Element?
@available(SwiftStdlib 6.0, *)
associatedtype Failure: Error = any Error
@available(SwiftStdlib 6.0, *)
mutating func next(isolation actor: isolated (any Actor)?) async throws(Failure) -> Element?
}
@available(SwiftStdlib 5.1, *)
public protocol AsyncSequence<Element, Failure> {
associatedtype AsyncIterator: AsyncIteratorProtocol
associatedtype Element where AsyncIterator.Element == Element
@available(SwiftStdlib 6.0, *)
associatedtype Failure = AsyncIterator.Failure where AsyncIterator.Failure == Failure
func makeAsyncIterator() -> AsyncIterator
}
3. SE-0420Inheritance of actor isolation
Наследование изоляции акторов
#isolated аргументы могут поддерживать опциональный тип
Аргумент по умолчанию #isolated:
extension AsyncIteratorProtocol {
func next(isolation: isolated (any Actor)? = #isolation) async -> Element {
...
}
}
4. SE-0418Inferring Sendable for methods and key path literals
Применение Sendable к методам (включая частичные и неимплементированные) и key-path литералам
5. SE-0416Subtyping for keypath literals as functions
Преобразование key-path литералов как функций
Например
// You write this:
let f: (User) -> String? = \User.email
// The compiler generates something like this:
let f: (User) -> String? = { kp in { root in root[keyPath: kp] } }(\User.email)
GitHub
swift-evolution/proposals/0422-caller-side-default-argument-macro-expression.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
6 SE-0410Low-Level Atomic Operations ⚛︎
Низкоуровневые атомарные операции
7 SE-0408Pack Iteration
Пакетные итерации.
8 SE-0405String Initializers with Encoding Validation
Инициализация строк с проверкой кодировки.
9 SE-0270Add Collection Operations on Noncontiguous Elements
Добавление операций коллекций для несмежных элементов.
Низкоуровневые атомарные операции
7 SE-0408Pack Iteration
Пакетные итерации.
func iterate<each Element>(over element: repeat each Element) {
for element in repeat each element {
}
}
8 SE-0405String Initializers with Encoding Validation
Инициализация строк с проверкой кодировки.
extension String {
public init?<Encoding: Unicode.Encoding>(
validating codeUnits: some Sequence<Encoding.CodeUnit>,
as: Encoding.Type
)
}
9 SE-0270Add Collection Operations on Noncontiguous Elements
Добавление операций коллекций для несмежных элементов.
var numbers = Array(1...15)
// Find the indices of all the even numbers
let indicesOfEvens = numbers.indices(where: { $0.isMultiple(of: 2) })
// Perform an operation with just the even numbers
let sumOfEvens = numbers[indicesOfEvens].reduce(0, +)
// sumOfEvens == 56
// You can gather the even numbers at the beginning
let rangeOfEvens = numbers.moveSubranges(indicesOfEvens, to: numbers.startIndex)
// numbers == [2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15]
// numbers[rangeOfEvens] == [2, 4, 6, 8, 10, 12, 14]
GitHub
swift-evolution/proposals/0410-atomics.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
Forwarded from iOS Такой 🍏
Please open Telegram to view this post
VIEW IN TELEGRAM
Gemini и AI - это ново, модерново и актуально. Подключаемся к эфиру и смотрим МК Саумуи Сингх : https://www.youtube.com/watch?v=nw2-YDS6KLQ
YouTube
How to Build an AI Android App Using Gemini? | AI App Tutorial | Artificial Intelligence@SCALER
AI is everywhere. And now Android has collaborated with AI to build and Gemini AI Android App. Saumya Singh (SWE at Red Hat) will help you learn how to build an AI Android App using Gemini.
Check out our free masterclasses by industry-leading experts here:…
Check out our free masterclasses by industry-leading experts here:…
👍1
Ходят слухи, что все-таки ViewModel из Jetpack будет поддерживать KMP:
https://android-review.googlesource.com/c/platform/frameworks/support/+/2965063
https://android-review.googlesource.com/c/platform/frameworks/support/+/2965063
🔥18👀2
Forwarded from Воробей
Apple удалила учётку разработчика Epic Games
🍎 Официальную причину не говорят. Эпики предполагают что из-за твита, где критиковали Apple
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Код Воробья для iOS разработчиков
1. Разработчики могут вернутся на оригинальные условия один раз
2. Больше не обязательно иметь миллион долларов на счету. Хватит приложения с 1 млн установок в 🇪🇺 за прошлый год
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Mobius — канал конференции
#анонсы
🟢 Даты конференции Mobius изменились! 🟢
Конференция пройдет немного позже. И онлайн, и офлайн.
Новые даты:
Онлайн: 23 мая
Офлайн: 31 мая — 1 июня
Офлайн-часть — пройдет так же в Москве, но переедет на площадку побольше. Про новое место расскажем отдельно, когда все окончательно утрясем.
В остальном ничего не меняется!
Ничего не отменилось. Формат не изменился. Все билеты актуальны. Спикеры те же, программа та же. (Разве что, еще лучше подготовиться успеем).
_____________
Мы переносим конференцию, потому что прежняя площадка не вмещает столько участников в офлайне. Так что вторая мини-новость: в офлайне и на вечеринке будет оживленно.
🟢 Даты конференции Mobius изменились! 🟢
Конференция пройдет немного позже. И онлайн, и офлайн.
Новые даты:
Онлайн: 23 мая
Офлайн: 31 мая — 1 июня
Офлайн-часть — пройдет так же в Москве, но переедет на площадку побольше. Про новое место расскажем отдельно, когда все окончательно утрясем.
В остальном ничего не меняется!
Ничего не отменилось. Формат не изменился. Все билеты актуальны. Спикеры те же, программа та же. (Разве что, еще лучше подготовиться успеем).
_____________
Мы переносим конференцию, потому что прежняя площадка не вмещает столько участников в офлайне. Так что вторая мини-новость: в офлайне и на вечеринке будет оживленно.
❤2
Виджеты iOS могут быть реальной болью. В том числе и интерактивные. Не раз они мне подкладывали свинью при лайвкодингах. Решила рассказать о возможном решении в своей статье:
https://habr.com/ru/articles/798925/
https://habr.com/ru/articles/798925/
Хабр
По граблям, по граблям. Пишем отзывчивый интерактивный виджет IOS 17
Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. В 2023 году на WWDC Apple представили много нового и интересного API, среди которого были долгожданные...
👍9
Записки разработчицы
Виджеты iOS могут быть реальной болью. В том числе и интерактивные. Не раз они мне подкладывали свинью при лайвкодингах. Решила рассказать о возможном решении в своей статье: https://habr.com/ru/articles/798925/
Оказалось, что я забыла приложить код к статье:
https://github.com/anioutkazharkova/todo_widget_sample
🤷♀️
И какой-то страждающий меня за это даже минусанул
https://github.com/anioutkazharkova/todo_widget_sample
🤷♀️
И какой-то страждающий меня за это даже минусанул
GitHub
GitHub - anioutkazharkova/todo_widget_sample
Contribute to anioutkazharkova/todo_widget_sample development by creating an account on GitHub.
🔥9
Forwarded from Стачка [официальный канал]
Сегодня пятница и Международный день сна — самое время отложить все рабочие задачи и хорошенько отдохнуть... самое главное не проспать IT-конференцию «Стачка» в Ульяновске.
Встречаемся 12-13 апреля в УлГПУ, чтобы послушать более 200 докладов по шести основным направлениям — разработка, управление, digital-маркетинг, дизайн и контент, IT в индустриях и стартапы.
Также готовим мастер-классы, мастермайнды, выставку инди-игр и громкое афтепати. Программа почти готова — на сайте анонсировано более 140 спикеров из крупных IT-компаний.
Посмотреть, кто выступит можно по ссылке
Билеты: https://nastachku.ru/buynow
Stop working — все на «Стачку»!
Встречаемся 12-13 апреля в УлГПУ, чтобы послушать более 200 докладов по шести основным направлениям — разработка, управление, digital-маркетинг, дизайн и контент, IT в индустриях и стартапы.
Также готовим мастер-классы, мастермайнды, выставку инди-игр и громкое афтепати. Программа почти готова — на сайте анонсировано более 140 спикеров из крупных IT-компаний.
Посмотреть, кто выступит можно по ссылке
Билеты: https://nastachku.ru/buynow
Stop working — все на «Стачку»!
❤1
Forwarded from Android Broadcast (Кирилл Розов)
Вышел Retrofit 2.10.0 (предыдущий релиз был практически 4 года назад ).
Что нового:
👉 Поддержка Unit в качестве типа ответа
👉 Официальный kotlinx.serialization конвертре (фактичес перенесли сущестующее решение от Jake Wharton). Новый артефакт -
👉 JAXB 3 конвертер -
👉
👉 Появился BOM - com.squareup.retrofit2:retrofit-bom
👉 Response Type Keeper - генератор keep правил ProGuard чтобы у вас все хорошо работало и не пришлось добавлять все подряд
👉 Поддержка Java 14 b Java 16 специфичных методов рефлексии для выполнения методов по умолчанию
Помимо этого произошли другие доработки и улучшения (список большой)
#network
Что нового:
👉 Поддержка Unit в качестве типа ответа
👉 Официальный kotlinx.serialization конвертре (фактичес перенесли сущестующее решение от Jake Wharton). Новый артефакт -
com.squareup.retrofit2:converter-kotlinx-serialization
👉 JAXB 3 конвертер -
com.squareup.retrofit2:converter-jaxb3
👉
@Header
, @Headers
и @HeaderMap
стали поддерживать не ASCII значения, но надо указать в true параметр allowUnsafeNonAsciiValues👉 Появился BOM - com.squareup.retrofit2:retrofit-bom
👉 Response Type Keeper - генератор keep правил ProGuard чтобы у вас все хорошо работало и не пришлось добавлять все подряд
👉 Поддержка Java 14 b Java 16 специфичных методов рефлексии для выполнения методов по умолчанию
Помимо этого произошли другие доработки и улучшения (список большой)
#network
❤11🤯1
Давайте поможем Омскому Девфесту выбрать трек и накидаем на мобилку)
Forwarded from ДевФест
Можно выбрать несколько вариантов ответа
Anonymous Poll
12%
Product/Project management
14%
DevOps
9%
Highload
8%
Golang
25%
iOS
70%
Android
41%
KMP
4%
Vue.JS
9%
Big Data
15%
Machine Learning
Google выпустили новую версию ViewModel Jetpack (lifecycle-viewmodel). Заявлено, что она поддерживает Kotlin Multiplatform:
https://developer.android.com/jetpack/androidx/releases/lifecycle?s=09#2.8.0-alpha03
И я написала статью, как это использовать:
https://habr.com/ru/articles/802111/
https://developer.android.com/jetpack/androidx/releases/lifecycle?s=09#2.8.0-alpha03
И я написала статью, как это использовать:
https://habr.com/ru/articles/802111/
Android Developers
Lifecycle | Jetpack | Android Developers
👍25🔥9❤🔥3🤔1
Добавляем рубрику #наука_и_техника.
Apple получили патент на датчик мозговых волн:
https://habr.com/ru/news/802503/
Apple получили патент на датчик мозговых волн:
https://habr.com/ru/news/802503/
Хабр
Apple получила патент на датчики мозговых волн для Vision Pro
Apple работает над технологией датчиков мозговых волн, чтобы внедрить в гарнитуру Vision Pro функции для улучшения психического здоровья, помощи в тренировках и повышения внимательности. Технология,...
#aurora #flutter 2 апреля в Москве пройдет бесплатная конференция по Aurora + Flutter. Модератором круглого стола будет Алексей Гладков .
https://auroraos.timepad.ru/event/2820781
Обещают выложить записи в открытом доступе
https://auroraos.timepad.ru/event/2820781
Обещают выложить записи в открытом доступе
Telegram
Mobile Developer
YouTube — https://youtube.com/c/MobileDeveloper
ВК — https://vk.com/mdeveloper
Чат канала — https://t.iss.one/mobiledeveloperchat
Boosty — https://boosty.to/mobiledev
Сайт — https://mobiledeveloper.tech/
По всем вопросам — @mobiledeveloper_bot
ВК — https://vk.com/mdeveloper
Чат канала — https://t.iss.one/mobiledeveloperchat
Boosty — https://boosty.to/mobiledev
Сайт — https://mobiledeveloper.tech/
По всем вопросам — @mobiledeveloper_bot
👍3
Forwarded from Хабр
ViewModel + Kotlin Multiplatform: пробуем нативное решение
Компания Google объявила о своём интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовала ожидаемую многими новинку, а именно — ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.
Компания Google объявила о своём интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовала ожидаемую многими новинку, а именно — ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.
🔥16👍7