Создание многоступенчатой анимации в SwiftUI
Анимации в приложении служат визуальными индикаторами, информирующими пользователей о совершенных действиях.
Они особенно полезны при изменении интерфейса, например, при загрузке нового контента или демонстрации новых действий.
📖 В этой статье разбирается пример работы с PhaseAnimator (его особенно удобно применять, когда нам нужна анимация, которая непрерывно повторяется и реагирует на события).
📖 Кстати, в канале есть ещё один полезный материал про
😃 iOS Dev
Анимации в приложении служат визуальными индикаторами, информирующими пользователей о совершенных действиях.
Они особенно полезны при изменении интерфейса, например, при загрузке нового контента или демонстрации новых действий.
📖 В этой статье разбирается пример работы с PhaseAnimator (его особенно удобно применять, когда нам нужна анимация, которая непрерывно повторяется и реагирует на события).
📖 Кстати, в канале есть ещё один полезный материал про
PhaseAnimator
и KeyframeAnimator
.Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Создание интерфейса поиска в стиле Photos из iOS 18
Если вы следили за трасляцией в канале (или в других источниках), то в курсе, что в новой оси поменяется в том числе и приложение Photos.
Новый раздел выглядит как кастомная View в SwiftUI, которую Seb Vidal попытался повторить с помощью публичного API (но без реверс-инжиниринга не обошлось). Затрагивается и самый сложный момент — плавный переход фона в стиль клавиатуры.
📖 Здесь можно прочитать про основные этапы для создания такого экрана.
🛠 А здесь посмотреть на реализацию в коде.
😃 iOS Dev
Если вы следили за трасляцией в канале (или в других источниках), то в курсе, что в новой оси поменяется в том числе и приложение Photos.
Новый раздел выглядит как кастомная View в SwiftUI, которую Seb Vidal попытался повторить с помощью публичного API (но без реверс-инжиниринга не обошлось). Затрагивается и самый сложный момент — плавный переход фона в стиль клавиатуры.
📖 Здесь можно прочитать про основные этапы для создания такого экрана.
🛠 А здесь посмотреть на реализацию в коде.
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбор режимов наложения в Swift: примеры и возможные варианты
Режимы наложения (blend modes) играют важнейшую роль в дизайне. Они необходимы при работе с фото, создании эффектов освещения, и, например, используются для достижения эффекта глубины в изображениях.
💬 Как следуют из названия, при использовании такого режима происходит смешивание цвета нескольких слоев пикселей с помощью математических формул для определения степени влияния каждого пикселя на конечное изображение.
Можно комбинировать любое количество слоев, но минимально необходимо только два — базовый и сам слой наложения.
📖 В этой статье подробно рассматриваются различные режимы наложения (и математические формулы), способы реализации и примеры использования.
😃 iOS Dev
Режимы наложения (blend modes) играют важнейшую роль в дизайне. Они необходимы при работе с фото, создании эффектов освещения, и, например, используются для достижения эффекта глубины в изображениях.
Можно комбинировать любое количество слоев, но минимально необходимо только два — базовый и сам слой наложения.
📖 В этой статье подробно рассматриваются различные режимы наложения (и математические формулы), способы реализации и примеры использования.
Please open Telegram to view this post
VIEW IN TELEGRAM
По компаниям: самой щедрой компанией считается Авито — медиана 351 000 ₽. Также в пятерке лидеров — Райффайзенбанк, Холдинг Т1, Иннотех и VK.
🔗 Вся статистика доступна на хабре.
💰 Сравнить динамику можно с этим постом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышло мощнейшее интервью с Крисом Латтнером
Такие видео появляются крайне редко. Поэтому если у вас найдется время, обязательно постарайтесь взглянуть на диалог с создателем Swift, LLVM, Clang и других продуктов.
Интересно, что Крис отвечает не только на очевидные вопросы, но и делится инсайдами, а также рассказывает, как проект из потенциально интересного лишь паре сотен человек с 2010 до 2016 года прошел огромный путь и стал опенсорсным. Кстати, затрагиваются и интересные моменты, когда приходилось рассказывать профессионалам с годами опыта на Objective-C о преимуществах нового языка и какие сложности были на этом пути.
📺 Сохраняйте видео, чтобы посмотреть на ответы и комментарии одного из самых знаковых программистов нашего поколения.
😃 iOS Dev
Такие видео появляются крайне редко. Поэтому если у вас найдется время, обязательно постарайтесь взглянуть на диалог с создателем Swift, LLVM, Clang и других продуктов.
Интересно, что Крис отвечает не только на очевидные вопросы, но и делится инсайдами, а также рассказывает, как проект из потенциально интересного лишь паре сотен человек с 2010 до 2016 года прошел огромный путь и стал опенсорсным. Кстати, затрагиваются и интересные моменты, когда приходилось рассказывать профессионалам с годами опыта на Objective-C о преимуществах нового языка и какие сложности были на этом пути.
📺 Сохраняйте видео, чтобы посмотреть на ответы и комментарии одного из самых знаковых программистов нашего поколения.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
I Interviewed The Creator Of LLVM, Clang, Swift, and Mojo
Recorded live on twitch, GET IN
### Guests
Chris Lattner
https://x.com/clattner_llvm?s=21&t=-sv4MdpmLrRuMIhARbLk-g
https://www.modular.com
TJ DeVries
https://youtube.com/@teej_dv?si=AIrpF3SWJYZqlboU
### My Stream
https://twitch.tv/ThePrimeagen
###…
### Guests
Chris Lattner
https://x.com/clattner_llvm?s=21&t=-sv4MdpmLrRuMIhARbLk-g
https://www.modular.com
TJ DeVries
https://youtube.com/@teej_dv?si=AIrpF3SWJYZqlboU
### My Stream
https://twitch.tv/ThePrimeagen
###…
Как решить проблему missing package product
🔨 Один из самых неприятных багов в Xcode возникает, когда случайно удаляется файл
Это возможно, например, при изменении веток в гите, а в зависимости от размера проекта — таких ошибок могут быть десятки (иногда даже сотни).
Большинство возможных решений на форумах сводятся к магической комбинации очистки проекта (
📖 Все это занимает время, но Джесси Сквайрс советует проверить настройки git, или даже автоматизировать это с помощью Makefile.
📖 Напомню, что в канале есть разбор того, почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени.
А про основы Git для iOS-разработчиков можно почитать вот тут.
✅ И, конечно, подписывайтесь на iOS IQ — там ещё больше полезного контента.
😃 iOS Dev
Package.resolved
, что и приводит к ошибке missing package product
.Это возможно, например, при изменении веток в гите, а в зависимости от размера проекта — таких ошибок могут быть десятки (иногда даже сотни).
Большинство возможных решений на форумах сводятся к магической комбинации очистки проекта (
cmd-shift-K
), удаления DerivedData/
, или использования File > Packages > Reset Package Caches
(или закрытия и повторного открытия Xcode). 📖 Все это занимает время, но Джесси Сквайрс советует проверить настройки git, или даже автоматизировать это с помощью Makefile.
📖 Напомню, что в канале есть разбор того, почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени.
А про основы Git для iOS-разработчиков можно почитать вот тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
Миграция проекта на Swift 6: неполное руководство
Наверняка, многие проходили несколько итераций апгрейда кодовой базы (кто-то даже с Objective-C, и до сих пор какой-то процент кода может быть написан на нём и в ваших текущих проектах).
Задача миграции всегда стоит особняком, это кропотливая, тяжёлая и совсем не быстрая работа, а одна из сложностей при оптимизации — показать ценность для бизнеса. Бывает непросто объяснить, почему нам нужно что-то менять, если и так всё работает. Но иногда это просто необходимо.
Конечно, при переходе на Swift 6 могут быть проблемы, да и что говорить, часто мы не всё можем контролить напрямую (те же зависимости CocoaPods или SPM), поэтому приходится искать варианты.
📖 В этом материале есть ответы на вопросы, возникающие при миграции, разбор ошибок и даже описание багов в самом Swift.
📖 А шаги, которые можно предпринять уже сейчас — описаны в этом посте.
😃 iOS Dev
Наверняка, многие проходили несколько итераций апгрейда кодовой базы (кто-то даже с Objective-C, и до сих пор какой-то процент кода может быть написан на нём и в ваших текущих проектах).
Задача миграции всегда стоит особняком, это кропотливая, тяжёлая и совсем не быстрая работа, а одна из сложностей при оптимизации — показать ценность для бизнеса. Бывает непросто объяснить, почему нам нужно что-то менять, если и так всё работает. Но иногда это просто необходимо.
Конечно, при переходе на Swift 6 могут быть проблемы, да и что говорить, часто мы не всё можем контролить напрямую (те же зависимости CocoaPods или SPM), поэтому приходится искать варианты.
📖 В этом материале есть ответы на вопросы, возникающие при миграции, разбор ошибок и даже описание багов в самом Swift.
📖 А шаги, которые можно предпринять уже сейчас — описаны в этом посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбор Grid View в SwiftUI: LazyVGrid, LazyHGrid, Grid, GridRow
Для создания нужного лэйаута в SwiftUI можно использовать
Начиная с iOS 16, нам также доступен вариант создания Grid с использованием
📖 В этой статье разбираются не только виды лэйаутов, но и опции кастомизации, включая интервалы, выравнивание и многое другое.
😃 iOS Dev
Для создания нужного лэйаута в SwiftUI можно использовать
LazyVGrid
, если нужно вертикальное отображение, и LazyHGrid
(если горизонтальное). Тем самым мы сможем добиться нужного эффекта, при этом адаптируемого к различным ориентациям и размерам экрана.Начиная с iOS 16, нам также доступен вариант создания Grid с использованием
GridRow
.📖 В этой статье разбираются не только виды лэйаутов, но и опции кастомизации, включая интервалы, выравнивание и многое другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
Развёрнутый гайд по работе с App Store Connect API
Выполнение действий вручную на сайте App Store Connect, вероятно, наиболее распространенный способ для разработчиков управлять и отслеживать состояние приложений в App Store.
Но некоторые задачи могут занимать неоправданно много времени, поскольку для их выполнения нужно постоянно повторять одни и те же действия. Да и не всегда сайт показывает корректное описание ошибок (при заливке скриншотов, например).
Вот библиотеки, которые могут помочь при работе с App Store Connect API:
🔗 appstoreconnect-swift-sdk (c её помощью я написал собственное решение для управления отзывами и частичной автоматизации обновлений в аппсторе)
🔗 Bagbutik
🔗 asc-swift
Ниже перечислил статьи, демонстрирующие способы создания собственных средств автоматизации с помощью App Store Connect API
1️⃣ Как отправлять запросы к App Store Connect API.
2️⃣ Расчет среднего рейтинга отзывов.
3️⃣ Работа с provisioning profiles.
4️⃣ Создание и удаление сертификатов.
Кстати, если вы хотите узнать, что скрывается за сертификатами для Code Signing, в канале есть общий пост, а здесь большой разбор.
✅ Например, вы можете узнать подробнее про понятия .der и .pem, цепочку доверия, Certificate signing request, что происходит при переподписывании кода в App Store и многое другое.
😃 iOS Dev
Выполнение действий вручную на сайте App Store Connect, вероятно, наиболее распространенный способ для разработчиков управлять и отслеживать состояние приложений в App Store.
Но некоторые задачи могут занимать неоправданно много времени, поскольку для их выполнения нужно постоянно повторять одни и те же действия. Да и не всегда сайт показывает корректное описание ошибок (при заливке скриншотов, например).
Вот библиотеки, которые могут помочь при работе с App Store Connect API:
Ниже перечислил статьи, демонстрирующие способы создания собственных средств автоматизации с помощью App Store Connect API
1️⃣ Как отправлять запросы к App Store Connect API.
2️⃣ Расчет среднего рейтинга отзывов.
3️⃣ Работа с provisioning profiles.
4️⃣ Создание и удаление сертификатов.
Кстати, если вы хотите узнать, что скрывается за сертификатами для Code Signing, в канале есть общий пост, а здесь большой разбор.
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Swift Translation API: примеры реализации
Для перевода до анонса этого фреймворка в пет-проектах я использовал или Google Translate API, или DeepL (знаю, что многие юзают решение от OpenAI).
📶 Но для них нужно интернет-соединение (что логично), и деньги (DeepL, например, имеет премиум-акк, на котором нужно платить за объём знаков).
Поэтому анонс решения Apple выглядит криптонитом для многих проектов, и одновременно возможностью реализации своих решений.
Посмотрим, что будет после выхода в прод, будет ли перевод на платную модель, как с Weather API или оставят все фичи, как есть.
📖 А уже сейчас можно посмотреть на пример создания приложений с новым фреймворком и почитать прекрасный разбор API здесь.
😃 iOS Dev
Для перевода до анонса этого фреймворка в пет-проектах я использовал или Google Translate API, или DeepL (знаю, что многие юзают решение от OpenAI).
📶 Но для них нужно интернет-соединение (что логично), и деньги (DeepL, например, имеет премиум-акк, на котором нужно платить за объём знаков).
Поэтому анонс решения Apple выглядит криптонитом для многих проектов, и одновременно возможностью реализации своих решений.
Посмотрим, что будет после выхода в прод, будет ли перевод на платную модель, как с Weather API или оставят все фичи, как есть.
📖 А уже сейчас можно посмотреть на пример создания приложений с новым фреймворком и почитать прекрасный разбор API здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Анимации в SwiftUI — подборка репозиториев на Github
Реализация эффектов в приложениях может быть и интересной, и сложной задачей одновременно.
В этой подборке добавил несколько популярных репозиториев на Github, где можно посмотреть на анимации и поискать вдохновение:
🔗 Open SwiftUI Animations — 4 000⭐
🔗 SwiftUI-Animations — 1 800⭐
🔗 kavsoft-swiftui-animations — 460⭐
😃 iOS Dev
Реализация эффектов в приложениях может быть и интересной, и сложной задачей одновременно.
В этой подборке добавил несколько популярных репозиториев на Github, где можно посмотреть на анимации и поискать вдохновение:
🔗 Open SwiftUI Animations — 4 000
🔗 SwiftUI-Animations — 1 800
🔗 kavsoft-swiftui-animations — 460
Please open Telegram to view this post
VIEW IN TELEGRAM