NavigationSplitView в SwiftUI
- NavigationSplitView позволяет реализовывать приложения с лэйаутом в несколько колонок.
- Его можно настроить для работы либо с двумя, либо с тремя колонками.
- Одна из вьюх автоматически заворачивается в сайдбар, две другие – в NavigationStack.
- Видимостью колонок можно управлять программно с помощью типа NavigationSplitViewVisibility.
- Также можно настраивать ширину колонок и их визуальный стиль.
- NavigationSplitView позволяет реализовывать приложения с лэйаутом в несколько колонок.
- Его можно настроить для работы либо с двумя, либо с тремя колонками.
- Одна из вьюх автоматически заворачивается в сайдбар, две другие – в NavigationStack.
- Видимостью колонок можно управлять программно с помощью типа NavigationSplitViewVisibility.
- Также можно настраивать ширину колонок и их визуальный стиль.
👍7🤡3
Flux на SwiftUI
Самая частая архитектура, использующаяся в связке со SwiftUI – MVVM. Но ее реализация часто доставляет много проблем и сложностей. 3 ноября пройдет вебинар Николая Балакланова, на котором он расскажет про архитектуру Flux и проведет воркшоп по реализации с ее помощью небольшого приложения. А сам вебинар является частью еще большего курса, на который вы тоже сможете записаться при желании – "iOS Developer. Professional" от OTUS.
Дата: 3 ноября, 20:00
Регистрация
Самая частая архитектура, использующаяся в связке со SwiftUI – MVVM. Но ее реализация часто доставляет много проблем и сложностей. 3 ноября пройдет вебинар Николая Балакланова, на котором он расскажет про архитектуру Flux и проведет воркшоп по реализации с ее помощью небольшого приложения. А сам вебинар является частью еще большего курса, на который вы тоже сможете записаться при желании – "iOS Developer. Professional" от OTUS.
Дата: 3 ноября, 20:00
Регистрация
🤡35👎17🤔4👍1
Шаблоны для дизайна Live Activities от Apple
Apple добавили Sketch и XD шаблоны для макетов Live Activities.
Apple добавили Sketch и XD шаблоны для макетов Live Activities.
🔥17
Xcode 14 Single Size App Icon
- В Xcode 14 появилась невероятная возможность – вместо ручной нарезки иконок приложения под разные размеры загрузить одно изображение 1024х1024, которое Xcode будет ресайзить сам.
- Эта фича доступна только для iOS и watchOS.
- Если вам нужно подкрутить дизайн иконок в зависимости от их размера, все еще можно задать их по отдельности.
- В Xcode 14 появились новые размеры иконок со сторонами 114px, 128px, 136px и 192px.
- В Xcode 14 появилась невероятная возможность – вместо ручной нарезки иконок приложения под разные размеры загрузить одно изображение 1024х1024, которое Xcode будет ресайзить сам.
- Эта фича доступна только для iOS и watchOS.
- Если вам нужно подкрутить дизайн иконок в зависимости от их размера, все еще можно задать их по отдельности.
- В Xcode 14 появились новые размеры иконок со сторонами 114px, 128px, 136px и 192px.
👍72😱28😁7🔥6👏2❤🔥1🌚1
Как упростить Package.swift
Если вы подключаете одну и ту же зависимость сразу ко многим таргетам, вы можете вынести ее описание в отдельную переменную и переиспользовать ее. А вот тут можно посмотреть этот подход на максималках.
Если вы подключаете одну и ту же зависимость сразу ко многим таргетам, вы можете вынести ее описание в отдельную переменную и переиспользовать ее. А вот тут можно посмотреть этот подход на максималках.
👍32🤡25🤯6👎2
Как работает звук
Главный лонгрид недели – Bartosz Ciechanowski, которого вы знаете по крутейшим интерактивным статьям о принципах работы GPS и механических часов, выпустил новый материал. В нем он разбирает основные принципы того, как в атмосфере передаются звуки, и что влияет на то, что именно мы слышим.
Главный лонгрид недели – Bartosz Ciechanowski, которого вы знаете по крутейшим интерактивным статьям о принципах работы GPS и механических часов, выпустил новый материал. В нем он разбирает основные принципы того, как в атмосфере передаются звуки, и что влияет на то, что именно мы слышим.
👍45🔥9💯5
Periphery – инструмент для обнаружения неиспользуемого кода
- Periphery собирает ваш проект, анализирует его структуру, мутирует граф зависимостей и в итоге выявляет неиспользуемый код.
- Помимо неиспользуемых деклараций классов, протоколов и структур, Periphery умеет делать и более сложные проверки. Например, находить неиспользуемые параметры функций, enum cases, переменные, которые были инициализированы, но не использованы.
- Можно подключить к Xcode для локальной работы или настроить на CI.
- Periphery собирает ваш проект, анализирует его структуру, мутирует граф зависимостей и в итоге выявляет неиспользуемый код.
- Помимо неиспользуемых деклараций классов, протоколов и структур, Periphery умеет делать и более сложные проверки. Например, находить неиспользуемые параметры функций, enum cases, переменные, которые были инициализированы, но не использованы.
- Можно подключить к Xcode для локальной работы или настроить на CI.
❤🔥82👍14👎2
Разбор частых ошибок в работе со Swift Concurrency
В статье разбираются неочевидные особенности работы async-await, с которыми не помогает компилятор, и их влияние на ваш код. Например, поведение очередей различается на симуляторе и устройстве.
В статье разбираются неочевидные особенности работы async-await, с которыми не помогает компилятор, и их влияние на ваш код. Например, поведение очередей различается на симуляторе и устройстве.
Wojciech Kulik
Swift Concurrency - Things They Don't Tell You
Swift Concurrency encourages people to just jump in, add async-await to an existing code, and run some Tasks not really knowing what is going on under the hood. Unfortunately, there are many traps around concurrency and no... the compiler doesn't check everything.
👍41
Как писать CLI тулинг на Swift
- ArgumentParser – фреймворк от Apple, который дает возможность описывать интерфейс CLI программы с помощью структур.
- Благодаря этому можно очень просто создавать инструменты с большим количеством команд и подкоманд.
- В статье подробно разбирается пример разработки такого инструмента с ввводом и валидацией пользовательских данных и обработкой ошибок.
- ArgumentParser – фреймворк от Apple, который дает возможность описывать интерфейс CLI программы с помощью структур.
- Благодаря этому можно очень просто создавать инструменты с большим количеством команд и подкоманд.
- В статье подробно разбирается пример разработки такого инструмента с ввводом и валидацией пользовательских данных и обработкой ошибок.
👍22👎1
Градиент в Swift Charts
В статье разбирается, как можно сконфигурировать Bar Chart из Swift Charts таким образом, чтобы цвет градиента соответствовал значениям по оси Y. Получается очень классное решение всего в 15 строк кода.
В статье разбирается, как можно сконфигурировать Bar Chart из Swift Charts таким образом, чтобы цвет градиента соответствовал значениям по оси Y. Получается очень классное решение всего в 15 строк кода.
🔥9👍1
Обновление SFSymbols c 1000 новых символов
Вышло обновление приложения SFSymbols от Apple:
- 1000 новых символов
- Поддержка variable color
- Улучшения рендеринга
Вышло обновление приложения SFSymbols от Apple:
- 1000 новых символов
- Поддержка variable color
- Улучшения рендеринга
👍31🔥12
Swift-index-store – библиотека для работы с индексами компилятора
- Во время компиляции проекта swiftc и clang генерируют детальные индексы для исходного кода. Модель данных этих индексов публичная, но не задокументированная.
- Swift-index-store – набор инструментов для работы с этой моделью данных. Под капотом крутится сишная libIndexStore, являющаяся частью LLVM.
- Больше деталей про модель данных индекса можно почитать здесь.
- Во время компиляции проекта swiftc и clang генерируют детальные индексы для исходного кода. Модель данных этих индексов публичная, но не задокументированная.
- Swift-index-store – набор инструментов для работы с этой моделью данных. Под капотом крутится сишная libIndexStore, являющаяся частью LLVM.
- Больше деталей про модель данных индекса можно почитать здесь.
GitHub
GitHub - MobileNativeFoundation/swift-index-store: Library to read from Swift / clang source code indexes
Library to read from Swift / clang source code indexes - MobileNativeFoundation/swift-index-store
👍4🔥3❤1
Истории разработчиков Dynamic Island
- В статье разбираются примеры того, как в различных приложениях использовали Dynamic Island. Если вы еще не придумали, как именно использовать эти виджеты в вашем приложении, вас это может навести на новые идеи.
- В Citymapper виджет используется для отображения сводной информации о маршруте и следующем шаге.
- В клиенте для Reddit – для отображения последних изменений в ленте и уведомлений.
- В фитнес-помощнике SmartGym в виджете содержится гайд по текущему упражнению и секундомер.
- В Flighty – подробная информация о вашем рейсе.
- В статье разбираются примеры того, как в различных приложениях использовали Dynamic Island. Если вы еще не придумали, как именно использовать эти виджеты в вашем приложении, вас это может навести на новые идеи.
- В Citymapper виджет используется для отображения сводной информации о маршруте и следующем шаге.
- В клиенте для Reddit – для отображения последних изменений в ленте и уведомлений.
- В фитнес-помощнике SmartGym в виджете содержится гайд по текущему упражнению и секундомер.
- В Flighty – подробная информация о вашем рейсе.
🔥18👍3
Podlodka iOS Crew про архитектуру
63% участников исследования айос коммьюнити сказали, что Podlodka iOS Crew была лучшей конференцией, которую они посетили в 2022 году. Так вот, 14-18 ноября пройдет новый сезон iOS Crew с кучей сессий про архитектурные корнер кейсы. Вот несколько кайфовых тем:
🧱Как правильно проектировать SDK
🔃Сравнение TCA с MVVM
📝Публичное собеседование по System Design в iOS
🗺Архитектурные подходы к навигации
В этот раз конференцию мы проводим в Telegram. Помимо участия в сессиях, вы попадаете в ЗАКРЫТЫЙ ТОП СИКРЕТ ТЕЛЕГРАМ ЧАТ, в котором айосеры из разных компаний каждый день рассказывают, как они подходят к решению разных проблем. Например, на этой неделе говорили про организацию релизов и подходы к локализации.
👉Подключайтесь и вы!
63% участников исследования айос коммьюнити сказали, что Podlodka iOS Crew была лучшей конференцией, которую они посетили в 2022 году. Так вот, 14-18 ноября пройдет новый сезон iOS Crew с кучей сессий про архитектурные корнер кейсы. Вот несколько кайфовых тем:
🧱Как правильно проектировать SDK
🔃Сравнение TCA с MVVM
📝Публичное собеседование по System Design в iOS
🗺Архитектурные подходы к навигации
В этот раз конференцию мы проводим в Telegram. Помимо участия в сессиях, вы попадаете в ЗАКРЫТЫЙ ТОП СИКРЕТ ТЕЛЕГРАМ ЧАТ, в котором айосеры из разных компаний каждый день рассказывают, как они подходят к решению разных проблем. Например, на этой неделе говорили про организацию релизов и подходы к локализации.
👉Подключайтесь и вы!
🔥19👎12👍5👏1
SiriSpy – уязвимость в iOS, которая позволяет сторонним приложениям получить доступ к логу разговоров с Siri
- Любое приложение с доступом к Bluetooth может записывать ваш разговор с Siri или текст, надиктованный с помощью голосовых фичей клавиатуры. Уязвимость работает, когда вы используете AirPods. Доступ к данным происходит без запросов разрешений на использование микрофона и не оставляет никаких следов.
- В статье очень классно разбирается, как баг был обнаружена.
- Уязвимость уже закрыта в iOS 16.1, iOS разработчик, обнаруживший ее, получил 7000$.
- Любое приложение с доступом к Bluetooth может записывать ваш разговор с Siri или текст, надиктованный с помощью голосовых фичей клавиатуры. Уязвимость работает, когда вы используете AirPods. Доступ к данным происходит без запросов разрешений на использование микрофона и не оставляет никаких следов.
- В статье очень классно разбирается, как баг был обнаружена.
- Уязвимость уже закрыта в iOS 16.1, iOS разработчик, обнаруживший ее, получил 7000$.
😱35👍4🔥4
Ушла эпоха – Raywenderlich.com теперь Kodeco
- Raywenderlich.com – легендарный сайт, туториалы на котором обучили несколько поколений iOS разработчиков. Удивительно, но сайт ведет не один человек, а команда из 30 человек и нескольких сотен авторов материалов.
- Ребята решили, что переросли уровень личного блога одного Рэя, и решили переименоваться. Поэтому не удивляйтесь, когда встретите название Kodeco!
- Raywenderlich.com – легендарный сайт, туториалы на котором обучили несколько поколений iOS разработчиков. Удивительно, но сайт ведет не один человек, а команда из 30 человек и нескольких сотен авторов материалов.
- Ребята решили, что переросли уровень личного блога одного Рэя, и решили переименоваться. Поэтому не удивляйтесь, когда встретите название Kodeco!
❤93😢65👎11❤🔥7👍7🤔5🤡2🌭2🎉1
Window management в SwiftUI
- В последней версии SwiftUI появился новый API для управления окнами.
- Проверить, поддерживает ли возможность открытия нескольких окон платформа, на которой запущено приложение, можно с помощью переменной supportsMultipleWindows. Такая поддержка есть в macOS и iPadOS.
- С помощью этого API можно довольно легко поддерживать одну кодовую базу, которая работает как в режиме многооконности, так и в одном окне.
- В последней версии SwiftUI появился новый API для управления окнами.
- Проверить, поддерживает ли возможность открытия нескольких окон платформа, на которой запущено приложение, можно с помощью переменной supportsMultipleWindows. Такая поддержка есть в macOS и iPadOS.
- С помощью этого API можно довольно легко поддерживать одну кодовую базу, которая работает как в режиме многооконности, так и в одном окне.
👍17
FengNiao – инструмент для удаления неиспользуемых изображений из xcodeproj
- FengNiao – это CLI тула, которая сканирует все директории проекта в поисках неиспользуемых ресурсов.
- При запуске можно указать конкретные типы ресурсов, расширения файлов, или директории, которые надо пропустить.
- Можно настроить для запуска в билд фазах проекта.
- FengNiao – это CLI тула, которая сканирует все директории проекта в поисках неиспользуемых ресурсов.
- При запуске можно указать конкретные типы ресурсов, расширения файлов, или директории, которые надо пропустить.
- Можно настроить для запуска в билд фазах проекта.
👍28
Подробный гайд по работе с Passkeys в iOS и на бэкенде
Passkeys – beta-фича новой iOS, которая заменяет пароли на публичные крипто ключи. По сути, Passkeys – реализация стандарта Web Authentication API от Apple.
В статье разбирается разработка простого флоу авторизации – пользователь вводит свое имя, нажимает кнопку, сервер генерирует Passkey, который сохраняется на устройстве и дальше используется для подтверждения личности.
Passkeys – beta-фича новой iOS, которая заменяет пароли на публичные крипто ключи. По сути, Passkeys – реализация стандарта Web Authentication API от Apple.
В статье разбирается разработка простого флоу авторизации – пользователь вводит свое имя, нажимает кнопку, сервер генерирует Passkey, который сохраняется на устройстве и дальше используется для подтверждения личности.
👍16🔥5