Все такие противоречивые Apple вроде как передумали на предмет PWA
Forwarded from Воробей
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤣1
Продолжение эпопеи с PWA:
1. Ранее Apple объяснила, что ей придется создать «совершенно новую интеграционную архитектуру, которой сейчас нет в iOS», чтобы решить «сложные проблемы безопасности и конфиденциальности, связанные с PWA-приложениями, использующими альтернативные браузерные движки».
2. Сегодняшним заявлением Apple изменила свой курс и сообщила, что веб-приложения продолжат существовать в Европейском союзе в том виде, в котором они существовали до версии iOS 17.4.
3. Независимо от того, добавлено ли веб-приложение с помощью Safari или нет, PWA будут работать только на WebKit.
https://apptractor.ru/develop/apple-podtverdila-prekraschenie-raboty-pwa-v-evrope.html
Нас, конечно, больше интересует история про альтернативный стор и коллаборация с нашим МЦ. Но прецедент с PWA в ЕС мог распространиться и на другие регионы
1. Ранее Apple объяснила, что ей придется создать «совершенно новую интеграционную архитектуру, которой сейчас нет в iOS», чтобы решить «сложные проблемы безопасности и конфиденциальности, связанные с PWA-приложениями, использующими альтернативные браузерные движки».
2. Сегодняшним заявлением Apple изменила свой курс и сообщила, что веб-приложения продолжат существовать в Европейском союзе в том виде, в котором они существовали до версии iOS 17.4.
3. Независимо от того, добавлено ли веб-приложение с помощью Safari или нет, PWA будут работать только на WebKit.
https://apptractor.ru/develop/apple-podtverdila-prekraschenie-raboty-pwa-v-evrope.html
Нас, конечно, больше интересует история про альтернативный стор и коллаборация с нашим МЦ. Но прецедент с PWA в ЕС мог распространиться и на другие регионы
AppTractor
Apple подтвердила прекращение работы PWA в Европе
В обновлении компания объясняет, как ей пришлось внести столько изменений в iOS, чтобы соответствовать требованиям ЕС, что дальнейшая поддержка PWA оказалась просто невозможной.
🤔1
В прошлом октябре побывала на DevFest. Первый день - трек "Авроры", второй день - вела трек iOS, третий - выступала на треке андроид. Отличное мероприятие, атмосферный город (исторический центр Омска - must для посещения)
В этом году организаторы решили сменить формат и организовать общий трек. Пишите в комментариях направления, который вам интересны
В этом году организаторы решили сменить формат и организовать общий трек. Пишите в комментариях направления, который вам интересны
🔥3👍1
Forwarded from ДевФест
Участники сами выбирают, какой трек пройдёт на DevFest Omsk 2024 🔥
В этом году мы решили собрать community track. Что это значит?
В комментариях вы можете написать те треки, которые вы бы точно посетили на конференции. Через какое-то время мы отберём популярные варианты и сделаем опрос — тема, которая наберёт больше всего голосов, будет представлена на DevFest Omsk 2024!
Вы можете распространять этот пост по вашим чатам и призывать указать интересный трек. Важно — лучше указывать конкретное направление разработки, например, вместо «мобильной разработки» нужно выбрать iOS, Android и так далее.
P. s. Мы обновили сайт! Переходите по ссылке :) Там уже можно увидеть список других утверждённых треков.
В этом году мы решили собрать community track. Что это значит?
В комментариях вы можете написать те треки, которые вы бы точно посетили на конференции. Через какое-то время мы отберём популярные варианты и сделаем опрос — тема, которая наберёт больше всего голосов, будет представлена на DevFest Omsk 2024!
Вы можете распространять этот пост по вашим чатам и призывать указать интересный трек. Важно — лучше указывать конкретное направление разработки, например, вместо «мобильной разработки» нужно выбрать iOS, Android и так далее.
P. s. Мы обновили сайт! Переходите по ссылке :) Там уже можно увидеть список других утверждённых треков.
#swift Вышел Swift 5.10 https://www.swift.org/blog/swift-5.10-released/. Очень большое внимание уделено доработкам по многопоточности:
1. Поддержка полной диагностики корректности реализации работы с concurrency через сборку с флагом -strict-concurrency=complete
Например, этот фрагмент кода в Swift 5.9 будет считаться корректным, хотя и содержит нарушения доступа к ресурсу (data races)
Для Swift 5.10 проблема будет обозначена:
Конкретную ситуацию можно исправить разными способами:
- сделать обращение к MyModel.shared через await
- сделать MyModel.init и MyModel.shared неизолированными, весь код, которому нужен актор, перенести в изолированный метод
- изолировать useShared в @MainActor
2 Новая nonisolated(unsafe) команда для отключения проверки изоляции хранимых свойств и переменных акторов, включая статики
1. Поддержка полной диагностики корректности реализации работы с concurrency через сборку с флагом -strict-concurrency=complete
Например, этот фрагмент кода в Swift 5.9 будет считаться корректным, хотя и содержит нарушения доступа к ресурсу (data races)
@MainActor
class MyModel {
private init() {
MainActor.assertIsolated()
}
static let shared = MyModel()
}
func useShared() async {
let model = MyModel.shared
}
await useShared()
Для Swift 5.10 проблема будет обозначена:
warning: expression is 'async' but is not marked with 'await'
let model = MyModel.shared
^~~~~~~~~~~~~~
await
Конкретную ситуацию можно исправить разными способами:
- сделать обращение к MyModel.shared через await
- сделать MyModel.init и MyModel.shared неизолированными, весь код, которому нужен актор, перенести в изолированный метод
- изолировать useShared в @MainActor
2 Новая nonisolated(unsafe) команда для отключения проверки изоляции хранимых свойств и переменных акторов, включая статики
Swift.org
Swift 5.10 Released
Swift was designed to be safe by default, preventing entire categories of programming mistakes at compile time. Sources of undefined behavior in C-based languages, such as using variables before they’re initialized or a use-after-free, are defined away in…
👍2
В целом, в 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
Давайте поможем Омскому Девфесту выбрать трек и накидаем на мобилку)