Записки разработчицы
1.89K subscribers
370 photos
22 videos
4 files
1.08K links
Разговоры об IT, о разработке. О мобилках нативных и кроссплатформенных.
Личный аккаунт @azharkova
Download Telegram
В целом, в 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
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

Использование макросов как аргументов по умолчанию в функциях

// 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)
6 SE-0410Low-Level Atomic Operations
Низкоуровневые атомарные операции

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]
Forwarded from iOS Такой 🍏
🍏Вышла iOS 17.4 с поддержкой сторонних магазинов приложений для ЕС.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ходят слухи, что все-таки ViewModel из Jetpack будет поддерживать KMP:
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 разработчиков
👨‍💻 Послабление условий для разработчиков из EC

1. Разработчики могут вернутся на оригинальные условия один раз

2. Больше не обязательно иметь миллион долларов на счету. Хватит приложения с 1 млн установок в 🇪🇺 за прошлый год
Please open Telegram to view this post
VIEW IN TELEGRAM
#анонсы

🟢 Даты конференции Mobius изменились! 🟢

Конференция пройдет немного позже. И онлайн, и офлайн.

Новые даты:
Онлайн: 23 мая
Офлайн: 31 мая — 1 июня

Офлайн-часть — пройдет так же в Москве, но переедет на площадку побольше. Про новое место расскажем отдельно, когда все окончательно утрясем.

В остальном ничего не меняется!
Ничего не отменилось. Формат не изменился. Все билеты актуальны. Спикеры те же, программа та же. (Разве что, еще лучше подготовиться успеем).

_____________
Мы переносим конференцию, потому что прежняя площадка не вмещает столько участников в офлайне. Так что вторая мини-новость: в офлайне и на вечеринке будет оживленно.
2
Сегодня пятница и Международный день сна — самое время отложить все рабочие задачи и хорошенько отдохнуть... самое главное не проспать IT-конференцию «Стачка» в Ульяновске.

Встречаемся 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). Новый артефакт - 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/
👍25🔥9❤‍🔥3🤔1
#aurora #flutter 2 апреля в Москве пройдет бесплатная конференция по Aurora + Flutter. Модератором круглого стола будет Алексей Гладков .
https://auroraos.timepad.ru/event/2820781

Обещают выложить записи в открытом доступе
👍3
Статья попала в паблик Хабра, приятно)
Forwarded from Хабр
ViewModel + Kotlin Multiplatform: пробуем нативное решение

Компания Google объявила о своём интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовала ожидаемую многими новинку, а именно — ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.
🔥16👍7