This media is not supported in your browser
VIEW IN TELEGRAM
Глубокое погружение в Observation (13 мин)
На WWDC представили новый фреймворк призванный оптимизировать работу SwiftUI. Советую ознакомиться со статьей перед началом использования нового фреймворка
👉 Зачем нужен
👉 Как объявить
👉 Как работает макрос
👉 Как использовать
#Observation #SwiftUI #swift
На WWDC представили новый фреймворк призванный оптимизировать работу SwiftUI. Советую ознакомиться со статьей перед началом использования нового фреймворка
👉 Зачем нужен
Observation
👉 Как объявить
Observable Object
👉 Как работает макрос
@Observable
👉 Как использовать
Observable Object
совместно с SwiftUI View#Observation #SwiftUI #swift
👍1👎1
SSWG 2023 итоги полугодия
Каждый год группа по развитию Swift для сервера (SSWG) подводит итоги работы сообщества и определяет направление деятельности на следующий год.
В 2022 году в экосистеме Swift появились следующие библиотеки:
👉 MongoKitten
👉 Kafka client library
👉 Cassandra client library
👉 GraphQL
👉 RabbitMQ library
В контексте туллинга:
👉 Swift Extension for Visual Studio Code достиг мажорного релиза 1.0.0
👉 Swiftly повился для простой установки Swift на Linux и позволяет легко переключаться между версиями
Цели на 2023 год:
👉 Рост экосистемы библиотек
👉 Адаптировать структурированный параллелизм глубже
👉 Расширять документацию и туториалы
👉 Улучшать туллинг
#swift #server #sswg
Каждый год группа по развитию Swift для сервера (SSWG) подводит итоги работы сообщества и определяет направление деятельности на следующий год.
В 2022 году в экосистеме Swift появились следующие библиотеки:
👉 MongoKitten
👉 Kafka client library
👉 Cassandra client library
👉 GraphQL
👉 RabbitMQ library
В контексте туллинга:
👉 Swift Extension for Visual Studio Code достиг мажорного релиза 1.0.0
👉 Swiftly повился для простой установки Swift на Linux и позволяет легко переключаться между версиями
Цели на 2023 год:
👉 Рост экосистемы библиотек
👉 Адаптировать структурированный параллелизм глубже
👉 Расширять документацию и туториалы
👉 Улучшать туллинг
#swift #server #sswg
👍6👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Переворачиваем вечный SwiftUI календарь при помощи UIKit
Специально для вас сделал демо проект с которым можно переворачивать календарь прямо на своем телефоне
👉 70 строк кода
👉 UIPageViewController
👉 Всего 2 инстанса и полный реюз 3 сентября
#swift #swiftUI #UIKit #humor
Специально для вас сделал демо проект с которым можно переворачивать календарь прямо на своем телефоне
👉 70 строк кода
👉 UIPageViewController
👉 Всего 2 инстанса и полный реюз 3 сентября
#swift #swiftUI #UIKit #humor
👍31👎10
Потокобезопасность swift через - lock
Многие считают что Swift Concurrency это наше все и чтобы достичь потокобезопасности нужно использовать акторы. Это правильный ход мышления, но не всегда применимый. Для кейсов где Structured concurrency не подходит Apple добавили в iOS 16 OSAllocatedUnfairLock.
В приведенной статье автор приводить пример использования OSAllocatedUnfairLock и NSRecursiveLock в разрезе классической задачи хранилища в UDF
#swift #concurrency
Многие считают что Swift Concurrency это наше все и чтобы достичь потокобезопасности нужно использовать акторы. Это правильный ход мышления, но не всегда применимый. Для кейсов где Structured concurrency не подходит Apple добавили в iOS 16 OSAllocatedUnfairLock.
В приведенной статье автор приводить пример использования OSAllocatedUnfairLock и NSRecursiveLock в разрезе классической задачи хранилища в UDF
#swift #concurrency
👍7👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Теперь можно использовать if в качестве выражения, например для динамического задания значения константы
#swift #evolution
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎1
В этом году многие планируют поднять таргет до iOS 16 а это значит что можно мигрировать на нативный фреймворк Swift Charts.
Главное и безоговорочное преимущество - отсутствие сторонней зависимости, что позволяет уменьшить размер приложения.
Даже если ваш таргет iOS 15, уже можно планировать работу по миграции на нативные графики и включать их для пользователей на актуальных iOS, чтобы иметь обратную связь и возможность переключаться на старые графики по-небходимости
#swift #charts #migration
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
Внезапный инсайт с WWDC23, Apple доработала Swift-DocC так, что это теперь полноценный code-first редактор сайтов для инженеров, гораздо удобнее папок с .md файлами
Вот теперь думаю, переводить всю документацию на новые релльсы или начать с новой
#Swift #DocC #wwdc23
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👎1
package
в Swift 5.9В нововой версии Swift 5.9, которая идет с Xcode 15 появился новый модификотор доступа -
package
.Этот модификатор будет полезен для выстраивания корректных доступов в подключаемых модулях, для случая когда вы не хотите, чтобы доступ к определенной функции осуществлялся из другого модуля, а только внутри того же модуля. В целом, этот модификатор доступа похож на
internal
, за исключением того, что он создан для модулей.Актуальное ранжирование модификаторов доступа:
🔘 private
🔘 fileprivate
🔘 internal
🔘 package ✔️
🔘 public
🔘 open
#swift #proposal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
В своем посте на хабре "Насколько Swift удобен для DSL?", я вскользь упоминал про свои снипеты assignOnWeak и методе weakify. В представленной либе, автор пошел дальше и сделал простую библиотеку для всех возможных случаев с Readme и примерами
publisher
.sink(weak(ThisClass.handle))
.store(in: &cancellables)
var userNameBinding: Binding<String> = .init(
set: unowned(\.userName),
get: unowned(\.userName)
)
networkManager.performTask(weak(
capture: (userId, chatId), ThisClass.process)
)
#weak #swift
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Переворачиваем вечный SwiftUI календарь при помощи UIKit
У этого канала своя традиция на 3 сентября😅. Специально для вас сделал демо проект с которым можно переворачивать календарь прямо на своем телефоне
👉 70 строк кода
👉 UIPageViewController
👉 Всего 2 инстанса и полный реюз 3 сентября
#swift #swiftUI #UIKit #humor
У этого канала своя традиция на 3 сентября😅. Специально для вас сделал демо проект с которым можно переворачивать календарь прямо на своем телефоне
👉 70 строк кода
👉 UIPageViewController
👉 Всего 2 инстанса и полный реюз 3 сентября
#swift #swiftUI #UIKit #humor
Хабр
Переворачиваем вечный SwiftUI календарь при помощи UIKit
Данная статья написана в развлекательных целях. Если вам интересно следить за самыми последними новостями iOS разработки и получать подборку интересных статей по этой тематике, тогда вам стоит...
👍6
Наткнулся на годный глоссарий по Swift Concurrency. Cодержит термины, ключевые слова и аннотации, связанные с параллелизмом. Содержит тип (ключевое слово, протокол, flow control), описание, ссылку на пропоузал и пример использования. Когда это может быть полезно? Пройтись и проверить что вы знакомы со всем что нужно, объяснить коллеге понятными словами, разобраться в MR, подготовиться к собесу.
Точно достойно
#swift #concurrency #glossary
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Каждый раз, когда я вижу в MR очередную реализацию "более эффективной" коллекции, хочется бить по рукам. Даже если есть практическая необходимость, уже есть официальный пакет с открытым исходным кодом для расширения набора коллекций Swift. Цель проекта - служить испытательным полигоном для новых структур данных, улучшить дизайн и исправить ошибки до официального включения в библиотеку. Например, есть реализации для двусторонней очереди (
Deque
), упорядоченного набора (OrderedSet
), упорядоченного словаря (OrderedDictionary
), BitSet
, BitArray
, Heap
, TreeSet
и TreeDictionary
. Особенности коллекций:
Deque:
• Упорядоченная коллекция с произвольным доступом и изменяемостью
• Поддерживает эффективные вставки и удаления с обоих концов
• Обеспечивает удобные операции по вставке и выталкиванию элементов
OrderedSet:
• Гибрид массива и набора
• Поддерживает уникальные элементы и эффективные тесты на принадлежность
• Использует массив для хранения элементов и хэш-таблицу для индексов
OrderedDictionary:
• Альтернатива словарю для эффективного доступа к элементам в различных позициях
• Вставляет новые пары ключ-значение за постоянное время
• Обеспечивает произвольный доступ к парам ключ-значение
#swift #collections
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6