Как работать с FocusState: примеры для одного и нескольких полей ввода
Работа с текстовыми полями необходима при заполнении любого рода форм (от авторизации до инфы о пользователе).
И хотя есть ситуации, когда пользователь должен нажать на текстфилд вручную, есть множество кейсов, когда нужно переключаться между полями ввода автоматически.
Для этого пригодится
📖 В этом материале можно посмотреть на реальные примеры использования.
🛠 А здесь скачать пример проекта.
😃 iOS Dev
Работа с текстовыми полями необходима при заполнении любого рода форм (от авторизации до инфы о пользователе).
И хотя есть ситуации, когда пользователь должен нажать на текстфилд вручную, есть множество кейсов, когда нужно переключаться между полями ввода автоматически.
Для этого пригодится
@FocusState
, который появился в 15 оси.📖 В этом материале можно посмотреть на реальные примеры использования.
🛠 А здесь скачать пример проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
Универсальное руководство по Dependency Injection в модульном приложении
Pawel Kozielecki в своем блоге поднял важные вопросы. Например, как правильно управлять зависимостями и действительно ли DI обеспечит гибкость и масштабируемость в будущем.
И затронул непростую тему: как работать в многомодульном приложении и какие именно есть плюсы и минусы у различных паттернов DI.
Сам материал логически разбит на несколько блоков:
🔘 Почему вообще стоит рассматривать возможность использования DI в приложениях
🔘 Какие различные типы внедрения зависимостей существуют в Swift
🔘 Как мы можем внедрить DI в сложных многомодульных приложениях
😃 iOS Dev
Pawel Kozielecki в своем блоге поднял важные вопросы. Например, как правильно управлять зависимостями и действительно ли DI обеспечит гибкость и масштабируемость в будущем.
И затронул непростую тему: как работать в многомодульном приложении и какие именно есть плюсы и минусы у различных паттернов DI.
Сам материал логически разбит на несколько блоков:
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Комбинация жестов и анимаций в SwiftUI
Одним из типов взаимодействия пользователями с нашими приложениями являются жесты. И, конечно же, жесты можно использовать и для запуска анимаций.
В качестве примера можно привести ситуацию с перетаскиванием. Конечно, можно было использовать только две позиции для отображения, но обновление положения во время взаимодействия пользователя с экраном повысит контроль и отзывчивость.
Для обработки жестов в SwiftUI нам нужны соответствующие модификаторы.
📖 В этом материале разобрано несколько примеров (в том числе и с анимацией в виде волны).
😃 iOS Dev
Одним из типов взаимодействия пользователями с нашими приложениями являются жесты. И, конечно же, жесты можно использовать и для запуска анимаций.
В качестве примера можно привести ситуацию с перетаскиванием. Конечно, можно было использовать только две позиции для отображения, но обновление положения во время взаимодействия пользователя с экраном повысит контроль и отзывчивость.
Для обработки жестов в SwiftUI нам нужны соответствующие модификаторы.
📖 В этом материале разобрано несколько примеров (в том числе и с анимацией в виде волны).
Please open Telegram to view this post
VIEW IN TELEGRAM
Джонни Айв + OpenAI = ?
Вчера OpenAI анонсировали покупку «секретного» стартапа бывшего главного дизайнера Apple (придумал форм-фактор для iPod, iPhone, iPad) за 6.5 млрд долларов.
Абсолютно очевидно, что речь может идти о целом семействе новых устройств.
На ваш взгляд, что это может быть? Очки или что-то вроде разработки Humane Pin?
💬 Поделитесь, какое устройство они могут придумать (или уже придумали), что бы вы хотели увидеть?
😃 iOS Dev
Вчера OpenAI анонсировали покупку «секретного» стартапа бывшего главного дизайнера Apple (придумал форм-фактор для iPod, iPhone, iPad) за 6.5 млрд долларов.
Абсолютно очевидно, что речь может идти о целом семействе новых устройств.
На ваш взгляд, что это может быть? Очки или что-то вроде разработки Humane Pin?
💬 Поделитесь, какое устройство они могут придумать (или уже придумали), что бы вы хотели увидеть?
Please open Telegram to view this post
VIEW IN TELEGRAM
Как использовать MetricKit в iOS для поиска причин и отладки крашей
Краши только в продакшн-билдах не всегда просто отследить. Традиционные инструменты (например, юзать обработчики в приложении для сбора данных о крашах) могут быть не всегда корректны.
Для устранения подобных ограничений Apple предлагает использовать MetricKit, который работает вне процесса приложения, собирая диагностику на системном уровне.
Такой подход позволяет фиксировать сбои, которые могут быть не замечены (вызванные нехваткой памяти, завершением в фоне или сигналами ОС).
📖 В этой статье можно посмотреть на то, как в несколько шагов можно настроить MetricKit, примеры анализа репортов и создания собственной системы архивирования таких отчётов.
🔗 А в этом посте можно чекнуть, как инженеры в Uber используют MetricKit в своём приложении.
Напомню, что в закрытой базе (💰 в бусти и ⭐️ телеграм)я делюсь советами и шагами по повышению производительности в самых разных ситуациях.
😃 iOS Dev
Краши только в продакшн-билдах не всегда просто отследить. Традиционные инструменты (например, юзать обработчики в приложении для сбора данных о крашах) могут быть не всегда корректны.
Для устранения подобных ограничений Apple предлагает использовать MetricKit, который работает вне процесса приложения, собирая диагностику на системном уровне.
Такой подход позволяет фиксировать сбои, которые могут быть не замечены (вызванные нехваткой памяти, завершением в фоне или сигналами ОС).
📖 В этой статье можно посмотреть на то, как в несколько шагов можно настроить MetricKit, примеры анализа репортов и создания собственной системы архивирования таких отчётов.
Напомню, что в закрытой базе (
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 День Рождения
Хорошо, что сегодняшнее утро можно начать с чашки чертовски хорошего кофе и вишнёвого пирога ☕️.
А ещё в такой день можно задуматься о том, насколько полезно всё-таки в жизни не гнаться за иллюзией выбора и как важно на секунду остановиться и подумать, все ли вы делаете правильно (пусть в жизни редко возможно определить баланс черного и белого).
Непростое время, в которое для меня лично существует четкая грань между тем, что по-настоящему важно и что является лишь тенью происходящего в мире.
Существует множество путей для достижения целей и для этого необязательно быть мальчиком, который громко кричит «волки».
У всего есть причина. И часто у этих причин есть логическое объяснение.
Этот канал — мой способ поделиться тем, что я использую для решения практических задач. Многие из реализованных приложений нужны для облегчения рабочих процессов: Lines, ReviewBuddy, iOS IQ, тот же Starly (у которого за последний год появилось множество аналогов).
Конечно, из-за того, что на работе требуется полная концентрация, не всегда получается находить время на развитие/обновление пет-проектов.
Несмотря на это, в закрытой базе за год удалось сделать более 50 апдейтов, и развить дерево навыков до 10 крупных направлений.
Приятно осознавать, что есть читатели, которые пишут слова поддержки и подчеркивают, что понимание всегда видно.
Не помню автора цитаты, но она встречается в разных вариантах:
Помните, что любая мечта может стать реальной, только если начать трудиться над её реализацией.
❤️ Спасибо, что читаете этот канал.
😃 iOS Dev
Хорошо, что сегодняшнее утро можно начать с чашки чертовски хорошего кофе и вишнёвого пирога ☕️.
А ещё в такой день можно задуматься о том, насколько полезно всё-таки в жизни не гнаться за иллюзией выбора и как важно на секунду остановиться и подумать, все ли вы делаете правильно (пусть в жизни редко возможно определить баланс черного и белого).
Непростое время, в которое для меня лично существует четкая грань между тем, что по-настоящему важно и что является лишь тенью происходящего в мире.
Существует множество путей для достижения целей и для этого необязательно быть мальчиком, который громко кричит «волки».
У всего есть причина. И часто у этих причин есть логическое объяснение.
Этот канал — мой способ поделиться тем, что я использую для решения практических задач. Многие из реализованных приложений нужны для облегчения рабочих процессов: Lines, ReviewBuddy, iOS IQ, тот же Starly (у которого за последний год появилось множество аналогов).
Конечно, из-за того, что на работе требуется полная концентрация, не всегда получается находить время на развитие/обновление пет-проектов.
Несмотря на это, в закрытой базе за год удалось сделать более 50 апдейтов, и развить дерево навыков до 10 крупных направлений.
Приятно осознавать, что есть читатели, которые пишут слова поддержки и подчеркивают, что понимание всегда видно.
Не помню автора цитаты, но она встречается в разных вариантах:
Помните, что любая мечта может стать реальной, только если начать трудиться над её реализацией.
❤️ Спасибо, что читаете этот канал.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел в релиз xtool — кроссплатформенная альтернатива Xcode
Как пишет Томас Рикуар, больше не нужен Xcode, чтобы создать и запустить приложение для iOS на своем устройстве.
Xtool по факту представляет собой билдчейн с открытым исходным кодом.
С его помощью можно собрать, подписать и запустить минимальный Swift-package в приложение для iOS. Это возможно, даже если вы работаете под Linux или Windows.
🛠 Исходный код и описание xtool на github.
📖 Описание и пример работы.
😃 iOS Dev
Как пишет Томас Рикуар, больше не нужен Xcode, чтобы создать и запустить приложение для iOS на своем устройстве.
Xtool по факту представляет собой билдчейн с открытым исходным кодом.
С его помощью можно собрать, подписать и запустить минимальный Swift-package в приложение для iOS. Это возможно, даже если вы работаете под Linux или Windows.
🛠 Исходный код и описание xtool на github.
📖 Описание и пример работы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Регулярные выражения в Swift - фундаментальный разбор
Несмотря на то, что работа с регулярками очень похожа на то, что встречается в JavaScript и Python, есть и довольно важные отличия.
📖 Этот документ представляет собой результат кропотливой работы Гая Лапальме (профессора из Монреаля).
Автор использует три примера, чтобы подчеркнуть некоторые аспекты реализации регулярных выражений в Swift: разбор римских цифр, токенизатор и Eliza-подобный чатбот.
А ещё есть неплохая шпаргалка для запоминания (с методами и операторами).
🔗 Проверить свои знания можно с помощью этого инструмента.
😃 iOS Dev
Несмотря на то, что работа с регулярками очень похожа на то, что встречается в JavaScript и Python, есть и довольно важные отличия.
📖 Этот документ представляет собой результат кропотливой работы Гая Лапальме (профессора из Монреаля).
Автор использует три примера, чтобы подчеркнуть некоторые аспекты реализации регулярных выражений в Swift: разбор римских цифр, токенизатор и Eliza-подобный чатбот.
А ещё есть неплохая шпаргалка для запоминания (с методами и операторами).
🔗 Проверить свои знания можно с помощью этого инструмента.
Please open Telegram to view this post
VIEW IN TELEGRAM
Изучение креативного программирования с помощью Swift и SwiftUI
Нашёл интересную статью, в которой с помощью математики и не только объясняются разные подходы к реализации необычных анимаций.
В ней можно прочитать о том, как именно наличие шума, движения и добавления рандома помогает создавать интересные эксперименты (и в физическом искусстве в том числе).
🎆 Творческий подход к кодингу — это не просто владение инструментами, это сочетание идей, логики и иногда игровой составляющей.
С помощью Swift и SwiftUI у нас появилась целая экосистема для изучения творческого пространства.
Речь не только про геометрические последовательности, но и про использование физики (и добавление интерактивности).
📖 Шикарное исследование можно посмотреть здесь, кто знает, может оно станет отправной точкой и добавит вдохновения на реализацию ваших проектов.
😃 iOS Dev
Нашёл интересную статью, в которой с помощью математики и не только объясняются разные подходы к реализации необычных анимаций.
В ней можно прочитать о том, как именно наличие шума, движения и добавления рандома помогает создавать интересные эксперименты (и в физическом искусстве в том числе).
С помощью Swift и SwiftUI у нас появилась целая экосистема для изучения творческого пространства.
Речь не только про геометрические последовательности, но и про использование физики (и добавление интерактивности).
📖 Шикарное исследование можно посмотреть здесь, кто знает, может оно станет отправной точкой и добавит вдохновения на реализацию ваших проектов.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
146 000 аккаунтов разработчиков были удалены в 2024 году
Из других данных отчёта Apple, вышедшего вчера видно:
🛑 1.9 млн отправленных билдов на проверку получили реджект (из 7.7 млн)
📝 140 миллионов отзывов на приложения были удалены (из 1.2 млрд)
👨💻 7 500 приложений удалили из чартов (и 9 500 приложений из результатов поиска)
🔗 Статья целиком доступна по этой ссылке
🔗 А тут есть данные за позапрошлый год
😃 iOS Dev
Из других данных отчёта Apple, вышедшего вчера видно:
🛑 1.9 млн отправленных билдов на проверку получили реджект (из 7.7 млн)
📝 140 миллионов отзывов на приложения были удалены (из 1.2 млрд)
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну что, готовы, что ваш код в телеграм-чатах будет использован для обучения Grok?
📖 Ссылка на новость
👍 готов, ⚡️ не готов
😃 iOS Dev
📖 Ссылка на новость
👍 готов, ⚡️ не готов
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift enum или structs — что выбрать для гибкости кода
При проектировании состояния в Swift выбор между
📖 Дэниел Сайди попытался разобрать преимущества разных подходов.
Основываясь на это материале Дэниел рекомендует выбирать
- Есть конечный набор состояний.
- Нужна исчерпывающая проверка во время компиляции.
- Состояния взаимоисключающие.
- Необходимо сопоставление паттерна со связанными значениями.
А структуры стоит выбирать в следующих случаях:
- Нужна расширяемость для кейсов в будущем.
- При реализации системы конфигурации или стилизации.
- Нужно реализовать нестандартные опции.
- Необходимо хранить сложное состояние с несколькими свойствами.
Кстати, в канале есть отличный разбор примера с enum:
📖 Swift Enums 🤝 Дизайн-системы
😃 iOS Dev
При проектировании состояния в Swift выбор между
enum
и struct
(или их сочетанием) может существенно повлиять на структуру кода и его гибкость.📖 Дэниел Сайди попытался разобрать преимущества разных подходов.
Основываясь на это материале Дэниел рекомендует выбирать
enums
, если:- Есть конечный набор состояний.
- Нужна исчерпывающая проверка во время компиляции.
- Состояния взаимоисключающие.
- Необходимо сопоставление паттерна со связанными значениями.
А структуры стоит выбирать в следующих случаях:
- Нужна расширяемость для кейсов в будущем.
- При реализации системы конфигурации или стилизации.
- Нужно реализовать нестандартные опции.
- Необходимо хранить сложное состояние с несколькими свойствами.
Кстати, в канале есть отличный разбор примера с enum:
📖 Swift Enums 🤝 Дизайн-системы
Please open Telegram to view this post
VIEW IN TELEGRAM
Как вы относитесь к дейликам (ежедневные планёрки или созвоны)?
Anonymous Poll
53%
Положительно
36%
Негативно
12%
Не проводятся
This media is not supported in your browser
VIEW IN TELEGRAM
Ферромагнетизм с помощью SwiftUI+Metal
📖 Делюсь кайфовым материалом, полезным всем, кто любит необычные и сложные эффекты.
Можно познакомиться с техниками SDF (или если проще самоподобных геометрий). С их помощью можно реализовать бесконечный уровень визуальной рекурсии (и потестить в реальном времени).
На их основе и была реализована анимация-наследник эмуляции ферромагнетизма.
🎆 Исходный код + реализация на Metal уже доступна 💰 в бусти и ⭐️ телеграм.
😃 iOS Dev
📖 Делюсь кайфовым материалом, полезным всем, кто любит необычные и сложные эффекты.
Можно познакомиться с техниками SDF (или если проще самоподобных геометрий). С их помощью можно реализовать бесконечный уровень визуальной рекурсии (и потестить в реальном времени).
На их основе и была реализована анимация-наследник эмуляции ферромагнетизма.
Please open Telegram to view this post
VIEW IN TELEGRAM
Изучение изменений concurrency в Swift 6.2
Многие концепции, которые реализованы сейчас, отличаются от того, к чему разработчики привыкли, используя GCD.
Донни Уолш попробовал разобраться в изменениях (и приводит референс на официальный док Apple).
В этом материале Донни сосредоточился на двух аспектах:
1️⃣ Новый флаг
2️⃣ Запуск кода в main actor по дефолту с использованием настройки
📖 С разбором можно ознакомиться здесь.
😃 iOS Dev
Многие концепции, которые реализованы сейчас, отличаются от того, к чему разработчики привыкли, используя GCD.
Донни Уолш попробовал разобраться в изменениях (и приводит референс на официальный док Apple).
В этом материале Донни сосредоточился на двух аспектах:
1️⃣ Новый флаг
nonisolated(nonsending)
.2️⃣ Запуск кода в main actor по дефолту с использованием настройки
defaultIsolation
.📖 С разбором можно ознакомиться здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift в Apple: перенос службы мониторинга паролей с Java
Пожалуй, не секрет, что Swift активно используется в продакшене для создания облачных сервисов в Apple.
Например, недавно на Swift был переписан сервис Password Monitoring, который обрабатывает несколько миллиардов запросов в день с устройств по всему миру.
📖 В этом материале можно почитать, как именно повысилась производительность и как кодовая база сократилась на 85% (хоть и верится в это с трудом).
😃 iOS Dev
Пожалуй, не секрет, что Swift активно используется в продакшене для создания облачных сервисов в Apple.
Например, недавно на Swift был переписан сервис Password Monitoring, который обрабатывает несколько миллиардов запросов в день с устройств по всему миру.
📖 В этом материале можно почитать, как именно повысилась производительность и как кодовая база сократилась на 85% (хоть и верится в это с трудом).
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Обновился сайт Swift
В рамках предстоящего WWDC уже появляются изменения вокруг экосистемы. Например, сегодня обновили основной сайт (и добавили анимаций).
📖 Кстати, пока можно ознакомиться с лучшими докладами с прошлой конфы (от анализа heap memory до swift perfomance).
Поделитесь, есть ли у вас какие-то ожидания, ждёте ли amazing-фич в этом году🤩 ?
😃 iOS Dev
В рамках предстоящего WWDC уже появляются изменения вокруг экосистемы. Например, сегодня обновили основной сайт (и добавили анимаций).
📖 Кстати, пока можно ознакомиться с лучшими докладами с прошлой конфы (от анализа heap memory до swift perfomance).
Поделитесь, есть ли у вас какие-то ожидания, ждёте ли amazing-фич в этом году
Please open Telegram to view this post
VIEW IN TELEGRAM
Управление релизами мобильных приложений: отчёт, хотфиксы и парадокс автоматизации
Изучил отчёт (приложен в комментариях к посту) от Runway, которые опросили несколько сотен команд разработки. И вот краткие выводы:
🔽 Снижение производительности:
Инженеры тратят в среднем 5 часов за релиз на выполнение повторяющихся задач, а не на кодирование. А треть респондентов тратит до 10 часов на непродуктивные задачи.
⏳Неоднократные задержки:
76 % команд регулярно сталкиваются с инцидентами, которые приводят к задержкам, авралам и ухудшению пользовательского опыта.
✋ Парадокс автоматизации:
50 % команд по-прежнему тратят 6-10 часов на каждый релиз даже при автоматизации.
🚒 Нормализация хотфиксов:
77 % команд регулярно нуждаются в хотфиксах каждые 3-5 релизов.
Отсюда также можно извлечь вывод, что большая частота релизов совсем не означает повышение эффективности самого релизного процесса.
⬇️ Не забудьте скачать отчёт и поделиться со своей релиз-командой.
😃 iOS Dev
Изучил отчёт (приложен в комментариях к посту) от Runway, которые опросили несколько сотен команд разработки. И вот краткие выводы:
Инженеры тратят в среднем 5 часов за релиз на выполнение повторяющихся задач, а не на кодирование. А треть респондентов тратит до 10 часов на непродуктивные задачи.
⏳Неоднократные задержки:
76 % команд регулярно сталкиваются с инцидентами, которые приводят к задержкам, авралам и ухудшению пользовательского опыта.
50 % команд по-прежнему тратят 6-10 часов на каждый релиз даже при автоматизации.
🚒 Нормализация хотфиксов:
77 % команд регулярно нуждаются в хотфиксах каждые 3-5 релизов.
Отсюда также можно извлечь вывод, что большая частота релизов совсем не означает повышение эффективности самого релизного процесса.
⬇️ Не забудьте скачать отчёт и поделиться со своей релиз-командой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Иллюзия мышления: почему OpenAI, DeepSeek и Claude не могут заменить разработчиков по мнению Apple
Сегодня ночью вышел шокирующий (не в пользу подписок по 200 баксов в месяц) отчёт, в котором исследователи Apple уничтожают маркетинговые трюки и уловки создателей якобы «думающих моделей».
В отличие от большинства исследований, инженеры Apple придумали свои математические загадки и задачи, а не воспользовались тем, что есть в открытом доступе.
😎 DeepSeek, Claude, Gemini и OpenAI o1/o3 буквально рассыпаются в пыль на более-менее интересных тасках. И даже на существующих алгоритмах вроде загадки с Ханойскими башнями при повышении сложности правильность решений резко падает вниз.
Абсолютно все reasoning-модели имеют свой предел сложности, где точность падает до нуля.
И хотя проблемы становились сложнее, модели использовали меньше токенов (по факту, сдавались в решении проблем) даже при неограниченном бюджете. Хотя решение выдавалось быстрее, но оно было неправильным.
Более того, инженеры Apple буквально дали готовый алгоритм, расписали все этапы (как будто по рецепту) и всё равно все модели не могли превысить определённый порог сложности.
Это противоречит самой сути таких моделей, ведь если мы даём инструкции - рез должен быть ожидаем. Вместо этого все они рассыпались как бумажный (или карточный) домик.
Например: хотя модели могли справиться с 100+ ходами в Ханойских башнях, всего после 4 ходов в задачке про пересечению рек они уже выдавали невалидные результаты.
⏳ А ведь WWDC уже завтра - интересно, почему отчёт вышел сейчас.
⬇️ Сохраните его и попробуйте сами сделать выводы. До суперинтеллекта пока далеко.
😃 iOS Dev
Сегодня ночью вышел шокирующий (не в пользу подписок по 200 баксов в месяц) отчёт, в котором исследователи Apple уничтожают маркетинговые трюки и уловки создателей якобы «думающих моделей».
В отличие от большинства исследований, инженеры Apple придумали свои математические загадки и задачи, а не воспользовались тем, что есть в открытом доступе.
Абсолютно все reasoning-модели имеют свой предел сложности, где точность падает до нуля.
И хотя проблемы становились сложнее, модели использовали меньше токенов (по факту, сдавались в решении проблем) даже при неограниченном бюджете. Хотя решение выдавалось быстрее, но оно было неправильным.
Более того, инженеры Apple буквально дали готовый алгоритм, расписали все этапы (как будто по рецепту) и всё равно все модели не могли превысить определённый порог сложности.
Это противоречит самой сути таких моделей, ведь если мы даём инструкции - рез должен быть ожидаем. Вместо этого все они рассыпались как бумажный (или карточный) домик.
Например: хотя модели могли справиться с 100+ ходами в Ханойских башнях, всего после 4 ходов в задачке про пересечению рек они уже выдавали невалидные результаты.
⏳ А ведь WWDC уже завтра - интересно, почему отчёт вышел сейчас.
⬇️ Сохраните его и попробуйте сами сделать выводы. До суперинтеллекта пока далеко.
Please open Telegram to view this post
VIEW IN TELEGRAM