Что нового в 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 - с протоколами.
В этой главе мы познакомимся с последним способом создания типов в Swift - с протоколами.
This media is not supported in your browser
VIEW IN TELEGRAM
24 июня Яндекс и Яндекс Маркет проведут Yandex BDUI Conf — конференцию для iOS- и Android-разработчиков, которым интересен Backend-Driven UI.
Yandex BDUI Conf — это день докладов и отдыха в пространствах офиса Яндекса. А для онлайн-участников – трансляция всего происходящего и специальный доклад.
За день послушаем 7 докладов от Супераппа Яндекса и Яндекс Маркета, AliExpress Russia, Alfa и Авито. Спикеры расскажут о нашем опенсорс-фреймворке DivKit, архитектуре BDUI, раскатке приложений для Android с помощью Jetpack Compose.
Когда: 24 июня, 11:00
Формат: офлайн (будет премодерация) и онлайн в ВК и на YouTube
Программа и регистрация
Yandex BDUI Conf — это день докладов и отдыха в пространствах офиса Яндекса. А для онлайн-участников – трансляция всего происходящего и специальный доклад.
За день послушаем 7 докладов от Супераппа Яндекса и Яндекс Маркета, AliExpress Russia, Alfa и Авито. Спикеры расскажут о нашем опенсорс-фреймворке DivKit, архитектуре BDUI, раскатке приложений для Android с помощью Jetpack Compose.
Когда: 24 июня, 11:00
Формат: офлайн (будет премодерация) и онлайн в ВК и на YouTube
Программа и регистрация
💩2
Новый выпуск для подписчиков на Boosty
Завершим пока эксперименты с калькулятором, и вернемся к средствам обработки пользовательских жестов. Мы уже познакомились с кнопками, и в большинстве случаев их достаточно, но иногда нам нужны не кнопки, а другие жесты. С ними мы и будем сегодня знакомиться.
Завершим пока эксперименты с калькулятором, и вернемся к средствам обработки пользовательских жестов. Мы уже познакомились с кнопками, и в большинстве случаев их достаточно, но иногда нам нужны не кнопки, а другие жесты. С ними мы и будем сегодня знакомиться.
🔥6👍1
Новый выпуск для подписчиков на Boosty
В этой главе поговорим о последнем из основных способов взаимодействий с пользователем, получение текста через TextField.
В этой главе поговорим о последнем из основных способов взаимодействий с пользователем, получение текста через TextField.
🔥6
Новый выпуск вышел в открытый доступ
В прошлой главе мы познакомились с протоколами, которые имеют описательное назначение, то есть описывают, что должны иметь структуры или классы. В этой главе мы узнаем, как можно наделить протокол реализацией по умолчанию.
В прошлой главе мы познакомились с протоколами, которые имеют описательное назначение, то есть описывают, что должны иметь структуры или классы. В этой главе мы узнаем, как можно наделить протокол реализацией по умолчанию.
🔥4
Новый выпуск для подписчиков на Boosty
В этой главе поговорим о том как изменить внешний вид
В этой главе поговорим о том как изменить внешний вид
TextField
.🔥2
Новый выпуск для подписчиков на Boosty
В это главе мы разберемся как работать с экранной клавиатурой.
В это главе мы разберемся как работать с экранной клавиатурой.
🔥2
Новый выпуск вышел в открытый доступ
В этой главе мы разберемся с последним аспектом протоколов, а именно с протоколами с ассоциированными значениями (PAT) protocol with associated types.
В этой главе мы разберемся с последним аспектом протоколов, а именно с протоколами с ассоциированными значениями (PAT) protocol with associated types.
👍2
Новый выпуск для подписчиков на Boosty
Давайте немного отвлечемся от сложных тем и поговорим о том как можно стилизовать вью, а именно устанавливать фон, рамку и накладывать эффекты поверх вью.
Давайте немного отвлечемся от сложных тем и поговорим о том как можно стилизовать вью, а именно устанавливать фон, рамку и накладывать эффекты поверх вью.
👍2
Новый выпуск для подписчиков на Boosty
До этого мы задавали цвета однородно, то чисто зеленый цвет или чисто красный, но есть еще один способ установки цвета - градиент.
До этого мы задавали цвета однородно, то чисто зеленый цвет или чисто красный, но есть еще один способ установки цвета - градиент.
👍2
Новый выпуск вышел в открытый доступ
Мы уже давно говорим о протоколах, осталось разобрать еще одну вещь, связанную с ними, а именно непрозрачные типы (opaque). Это еще один способ представления значения общим типом протокола.
Мы уже давно говорим о протоколах, осталось разобрать еще одну вещь, связанную с ними, а именно непрозрачные типы (opaque). Это еще один способ представления значения общим типом протокола.
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Яндекс проводит вечеринку для сообщества мобильных разработчиков — Yandex Summer Mobile Party!
12 июля приглашаем мобильных разработчиков на вечеринку — обсудим последние новости индустрии и хорошо проведём вечер с едой, коктейлями и музыкой. Приходите общаться с ребятами из Яндекса и знакомиться с сообществом.
Что вас ждёт:
— Lightning Talks про разработку и жизнь от мобильных разработчиков;
— Лекция от популяризатора физики Дмитрия Побединского;
— Настольные игры от Яндекса, зоны отдыха и летние коктейли.
Место проведения:
Плюс Дача в Парке Горького
В этот раз формат только оффлайн. Количество мест ограничено – ждём ваши заявки, и 10 июля вышлем приглашения на почту.
До встречи!
Программа и регистрация
12 июля приглашаем мобильных разработчиков на вечеринку — обсудим последние новости индустрии и хорошо проведём вечер с едой, коктейлями и музыкой. Приходите общаться с ребятами из Яндекса и знакомиться с сообществом.
Что вас ждёт:
— Lightning Talks про разработку и жизнь от мобильных разработчиков;
— Лекция от популяризатора физики Дмитрия Побединского;
— Настольные игры от Яндекса, зоны отдыха и летние коктейли.
Место проведения:
Плюс Дача в Парке Горького
В этот раз формат только оффлайн. Количество мест ограничено – ждём ваши заявки, и 10 июля вышлем приглашения на почту.
До встречи!
Программа и регистрация
Новый выпуск для подписчиков на Boosty
Продолжаем разбираться с простыми UI эффектами и в этой главе мы поговорим о тенях.
Продолжаем разбираться с простыми UI эффектами и в этой главе мы поговорим о тенях.
👍5
Новый выпуск для подписчиков на Boosty
Перейдем к еще одной сложной теме - навигации. В этой главе мы поговорим о том что такое навигация, какая она бывает, а в следующих разберемся с тем как строить навигацию в приложениях.
Перейдем к еще одной сложной теме - навигации. В этой главе мы поговорим о том что такое навигация, какая она бывает, а в следующих разберемся с тем как строить навигацию в приложениях.
👍5
Новый выпуск вышел в открытый доступ
В этой главе мы разберемся, как наделять наши собственные типы поведением, свойственным типам из базового набора. Например, способностью выводить подробную информацию в консоль при вызове
В этой главе мы разберемся, как наделять наши собственные типы поведением, свойственным типам из базового набора. Например, способностью выводить подробную информацию в консоль при вызове
print
или создавать из строкового литерала.👍6
Новый выпуск для подписчиков на Boosty
Начнем с более простого варианта навигации - present. Посмотрим какие способы презентовать и новый экраны существуют.
Начнем с более простого варианта навигации - present. Посмотрим какие способы презентовать и новый экраны существуют.
👍6
Новый выпуск для подписчиков на Boosty
Перейдем к push навигации, которая больше похожа на навигацию между разными экранами.
Перейдем к push навигации, которая больше похожа на навигацию между разными экранами.
👍8
Новый выпуск вышел в открытый доступ
В этой главе мы сделаем наш калькулятор более универсальным, код программы более надежным и расширяемым, а заодно попрактикуемся с протоколами.
В этой главе мы сделаем наш калькулятор более универсальным, код программы более надежным и расширяемым, а заодно попрактикуемся с протоколами.
👍6