Что нового в Xcode 15
Ссылка на wwdc
▶️ Улучшенное автодополнение
⭐️ методы с опциональными параметрами предлагаются со всевозможными комбинациями. Открыть список комбинаций можно выбрав базовый метод в списке автодополнения и нажав стрелку в право на клавиатуре.
⭐️ в SwiftUI автодополнение предлагает модификаторы, основываясь на статистке, самого частого порядка модификаторов
⭐️ предлагает имена классов на основе имен файлов
▶️ Константы для ассетов
⭐️ автоматически генерирует константы в коде для изображений
⭐️ новый реактор для строк локализации, вся локализация в одном файле (по аналогии с Assets.xcassets), редактор в виде таблицы, с подсветкой аргументов строк и прочего
▶️ Улучшенная документация
⭐️ документация теперь обновляется в реал тайме, в процессе написания
⭐️ вроде как лучше поддерживает старые md теги + добавлено куча новых тегов
▶️ поддержка макросов, а точнее возможность видеть в редакторе код, который генерируют макросы
▶️ SwiftUI превью, больше не только SwiftUI, новые макросы позволяют показывать и UIViewController на превью
▶️ панель закладок
⭐️ можно создавать закладки на полях
⭐️ закладки отображаются в навигаторе кода
⭐️ закладки можно группировать в папочки, что бы не потерять
⭐️ закладки можно использовать как to do листы
⭐️ к закладке можно переместиться
⭐️ можно увидеть список // TODO в коде
⭐️ можно закрепить результаты поиска
▶️ улучшены инструменты для работы с GIT
⭐️ можно видеть все незакомиченные изменения в одном месте
⭐️ можно вносить в них правки
⭐️ можно сделать комит, пуш и это не сломает Xcode (так обещают)
▶️ Новый отчет о выполнении тестов, графики, статистика, подсветка провалившихся тестов, таймлайн просмотр выполнения UI тестов
-> консоль теперь поддерживает расширенные фильтры логов (os_log), да и выглядит это приятнее
#lazywwdc
Ссылка на wwdc
▶️ Улучшенное автодополнение
⭐️ методы с опциональными параметрами предлагаются со всевозможными комбинациями. Открыть список комбинаций можно выбрав базовый метод в списке автодополнения и нажав стрелку в право на клавиатуре.
⭐️ в SwiftUI автодополнение предлагает модификаторы, основываясь на статистке, самого частого порядка модификаторов
⭐️ предлагает имена классов на основе имен файлов
▶️ Константы для ассетов
⭐️ автоматически генерирует константы в коде для изображений
⭐️ новый реактор для строк локализации, вся локализация в одном файле (по аналогии с Assets.xcassets), редактор в виде таблицы, с подсветкой аргументов строк и прочего
▶️ Улучшенная документация
⭐️ документация теперь обновляется в реал тайме, в процессе написания
⭐️ вроде как лучше поддерживает старые md теги + добавлено куча новых тегов
▶️ поддержка макросов, а точнее возможность видеть в редакторе код, который генерируют макросы
▶️ SwiftUI превью, больше не только SwiftUI, новые макросы позволяют показывать и UIViewController на превью
▶️ панель закладок
⭐️ можно создавать закладки на полях
⭐️ закладки отображаются в навигаторе кода
⭐️ закладки можно группировать в папочки, что бы не потерять
⭐️ закладки можно использовать как to do листы
⭐️ к закладке можно переместиться
⭐️ можно увидеть список // TODO в коде
⭐️ можно закрепить результаты поиска
▶️ улучшены инструменты для работы с GIT
⭐️ можно видеть все незакомиченные изменения в одном месте
⭐️ можно вносить в них правки
⭐️ можно сделать комит, пуш и это не сломает Xcode (так обещают)
▶️ Новый отчет о выполнении тестов, графики, статистика, подсветка провалившихся тестов, таймлайн просмотр выполнения UI тестов
-> консоль теперь поддерживает расширенные фильтры логов (os_log), да и выглядит это приятнее
#lazywwdc
Apple Developer
What’s new in Xcode 15 - WWDC23 - Videos - Apple Developer
Discover the latest productivity and performance improvements in Xcode 15. Explore enhancements to code completion and Xcode Previews,...
🔥7
Что нового в UIKit
▶️ Макрос для запуска превью
▶️ Поддержка анимированных Symbols.
▶️ Контроллеры теперь имеют стандартные элементы на случай отсутствия данных.
▶️ Новый метод
▶️ Текст теперь поддерживает динамическую высоту строки, которая может отличаться для разных слов и возможно букв.
▶️ Добавлена поддержка локализаций в
▶️ На iPad можно перетаскивать окна, как в MacOS, по дефолту перетаскивание работает с навбаром, но можно выбрать любую вью.
▶️ Сайд бар на iPad может скрываться автоматически при изменении размеров окна.
▶️
▶️ У
▶️
▶️ Системный статус бар, теперь автоматически меняет цвет в зависимости от контента который находится под ним.
#lazywwdc
▶️ Макрос для запуска превью
UIViewController и UIView
▶️ Новый метод UIViewController.viewIsAppearing, вызывается между willAppear и didAppear, вызывается когда уже есть актуальные размеры view, но до того как контроллер будет отображен, доступен с iOS 13.▶️ Поддержка анимированных Symbols.
▶️ Контроллеры теперь имеют стандартные элементы на случай отсутствия данных.
UIContentUnavailableConfiguration умеет показывать лоадер или информацию о том как получить данные. Можно задать кастомные элементы в виде SwiftUI блока.▶️ Новый метод
updateContentUnavailableConfiguration, вызывается для обновления UIContentUnavailableConfiguration, можно в нем что-нибудь подхачить.▶️ Текст теперь поддерживает динамическую высоту строки, которая может отличаться для разных слов и возможно букв.
▶️ Добавлена поддержка локализаций в
UIImage.▶️ На iPad можно перетаскивать окна, как в MacOS, по дефолту перетаскивание работает с навбаром, но можно выбрать любую вью.
▶️ Сайд бар на iPad может скрываться автоматически при изменении размеров окна.
▶️
UIScollView теперь можно скролить с клавиш клавиатуры если она подключена.▶️ У
UICollectionView улучшили перформанс (что бы это не значило) как минимум в два раза, например при сортировке или удалении ячеек.▶️
UICollectionViewCompositionalLayout поддерживает новый параметр расчета размера ячеек unformAccrossSiblings, с ним все ячейки будут получать размер самой большой ячейки в группе.▶️ Системный статус бар, теперь автоматически меняет цвет в зависимости от контента который находится под ним.
#lazywwdc
👍16❤1
Что нового в SwiftUI
▶️ С помощью SwiftUI можно создавать интерфейсы для apple vision
▶️ Новые компоненты для watchOS
⭐️
⭐️ Крутой
▶️ Добавлена поддержка интерактивных виджетов, в превью можно добавлять таймлайн, раскадровку виджетов по времени
▶️ Новые фреймворки поддерживают SwitUI
⭐️
⭐️ Скролящиеся диаграммы
⭐️ Выбор (select) данных
⭐️ Круговые диаграммы с
⭐️ Макрос
⭐️
▶️
⭐️ Макрос
▶️
▶️ Улучшены анимации в SwitUI
⭐️
⭐️ Модификатор
⭐️ Модификатор
⭐️ Модификатор
▶️ Улучшенная поддержка локализаций для
⭐️ Модификатор
▶️ Улучшен скрол в SwiftUI
⭐️ Модификатор
⭐️ Модификатор
⭐️ Модификатор
⭐️ Модификатор
▶️ Улучшена поддержка accessibility
#lazywwdc
▶️ С помощью SwiftUI можно создавать интерфейсы для apple vision
▶️ Новые компоненты для watchOS
⭐️
NavigationSplitView
⭐️ TabView
⭐️ NavigationStack
⭐️ DatePicker
⭐️ ContainerBackground для крутых фонов⭐️ Крутой
ToolBar для элементов управления▶️ Добавлена поддержка интерактивных виджетов, в превью можно добавлять таймлайн, раскадровку виджетов по времени
▶️ Новые фреймворки поддерживают SwitUI
⭐️
MapKit
⭐️ StoreKit
▶️ Улучшения`SwiftChart`⭐️ Скролящиеся диаграммы
⭐️ Выбор (select) данных
⭐️ Круговые диаграммы с
SectorMark
▶️ Упрощенный синтаксис для хранения стейта и передачи данных⭐️ Макрос
@Observable вместо ObservableObject, не требует помечать свойства как Published и использовать @StateObject, @ObservedObject и EnvironmentObject
⭐️ Кастомные объекты можно внедрять через Environment без кастомных ключей, просто используя тип объекта (привет flutter)⭐️
@State можно доставать из Environment по типы объекта (привет flutter №2)▶️
SwiftData вместо CoreData, разумеется получила поддержку SwiftUI
⭐️ Макрос @Model делает класс пригодным для хранения в SwiftData
⭐️ Макрос @Model так же включает в себя функционал макроса @Observable (2 в 1)⭐️ Макрос
@Query автомагически связывает свойство View и данные в БД SwiftData и поддерживает сортировки и прочее @Query(sort: \.dateSpotted) private var dogs: [Dog]
⭐️ При обновлении данных в БД, автомагически обновляется UI (SwiftData можно легко использовать как стор в небольших приложениях и это шикарно)▶️
Table на macOS поддерживает настройку таблиц (изменение порядка столбцов, сортировку данных и тд) и раскрывающиеся строки из коробки▶️ Улучшены анимации в SwitUI
⭐️
KeyframeAnimator наконец то добавляет key frame (пошаговые) анимации, без этого анимации делать было практически нельзя ⭐️ Модификатор
phaseAnimator позволяет запускать серию анимаций, одну за другой⭐️ Модификатор
visualEffect, позволяет добавлять эффекты основываясь на позиции и размере элемента внутри другого элемента без GeometryReader
⭐️ ShaderLibrary позволяет использовать шейдры для стилизации UI элементов⭐️ Модификатор
symbolEffect добавляет эффекты для анимированных symbols▶️ Улучшенная поддержка локализаций для
Text
⭐️ Модификатор textScale позволяет изменять размер текста основываясь на семантике информации, например текст помеченный как "единицы измерения" будет масштабироваться в зависимости от локализации⭐️ Модификатор
typesettingLanguage, поможет SwiftUI избежать проблем отрисовки нестандартных символов, например из тайского алфавита▶️ Улучшен скрол в SwiftUI
⭐️ Модификатор
scrollTransition позволит добавлять эффекты при скроле (масштабирование, прозрачность и др.) на элементы⭐️ Модификатор
continerRelativeFrame определяет размер элементов LazyStack на основе видимого пространства, другими словами это постраничный просмотр элементов, позволяет выбирать количество страниц и количество элементов на странице ⭐️ Модификатор
scrollTargetLayout добавляет детерминированную прокрутку к LazyStack, совместно с scrollTargetBehavior позволяет выбирать тип прокрутки, по границам элементов, по границам страницы или кастомный вариант⭐️ Модификатор
scrollPosition позволит отслеживать id элемента вверху видимой области скрола▶️ Улучшена поддержка accessibility
#lazywwdc
🔥11👍3
Что нового в Swift
Ссылка на wwdc
▶️ Условные операторы (if, switch) теперь выражения
Это значит, что они могут возвращать значения, как то так:
⭐️ улучшено автодополнение
⭐️ более понятные сообщения об ошибках
▶️ Вариадик (packed) дженерики
позволит описывать переменное число аргументов, разного типа
было:
лаконичное определение того, что в языке теперь возможно вообще все
⭐️ генерировать классы, структуры, перечисления
⭐️ методы, конструкторы, функции
⭐️ выполнять код во время компиляции
впереди нас ждут и автоматические DI контейнеры, и ORM, и генерация сетевого слоя по структурам, и другие замечательные вещи
▶️ Foundation написанная на Swift
утверждают что стало быстрее, но главное даже не это, а то что swift теперь имеет свою утилити библиотеку, и теперь для работы с календарем, json, и кучей других вещей в проект не будет тащиться objc
▶️ Не копируемые value types
то есть, в swift, теперь, есть, структуры, которые, НЕ БУДУТ КОПИРОВАТЬСЯ при присвоении, вот такие дела
у них будет деструктор, проверка на владение, и наш язык стал еще сложнее
честно, лучше бы уже как в rust, чем вот так
▶️ Интероп с C++
в swift теперь можно напрямую вызывать код написанный на C++
в общем то довольно бесполезная штука для рядовых разработчиков, но кто-то определенно обрадуется, хотя я бы предпочел интероп с растом)
#lazywwdc
Ссылка на wwdc
▶️ Условные операторы (if, switch) теперь выражения
Это значит, что они могут возвращать значения, как то так:
let result = if b < a { 2 } else { 3 }
Особенно это интересно вместе с if case
enum Error {
case network(Int)
case unlnown
}
let error = Error.network(1)
let code = if case .network(let code) = error { code } else { nil }
▶️ Улучшения в ResultBuilder
⭐️ ускорен вывод типов⭐️ улучшено автодополнение
⭐️ более понятные сообщения об ошибках
▶️ Вариадик (packed) дженерики
позволит описывать переменное число аргументов, разного типа
было:
func evaluate<R1, R2>(_:_:) -> (R1, R2)стало:
func evaluate<R1, R2, R3>(_:_:_:) -> (R1, R2, R3)
func evaluate<each Result>(_: repeat Request<each Result>) -> (repeat each Result)▶️ Макросы
лаконичное определение того, что в языке теперь возможно вообще все
⭐️ генерировать классы, структуры, перечисления
⭐️ методы, конструкторы, функции
⭐️ выполнять код во время компиляции
впереди нас ждут и автоматические DI контейнеры, и ORM, и генерация сетевого слоя по структурам, и другие замечательные вещи
▶️ Foundation написанная на Swift
утверждают что стало быстрее, но главное даже не это, а то что swift теперь имеет свою утилити библиотеку, и теперь для работы с календарем, json, и кучей других вещей в проект не будет тащиться objc
▶️ Не копируемые value types
то есть, в swift, теперь, есть, структуры, которые, НЕ БУДУТ КОПИРОВАТЬСЯ при присвоении, вот такие дела
у них будет деструктор, проверка на владение, и наш язык стал еще сложнее
честно, лучше бы уже как в rust, чем вот так
▶️ Интероп с C++
в swift теперь можно напрямую вызывать код написанный на C++
в общем то довольно бесполезная штука для рядовых разработчиков, но кто-то определенно обрадуется, хотя я бы предпочел интероп с растом)
#lazywwdc
Apple Developer
What’s new in Swift - WWDC23 - Videos - Apple Developer
Join us for an update on Swift. We'll show you how APIs are becoming more extensible and expressive with features like parameter packs...
👍11❤3