iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.2K subscribers
755 photos
68 videos
4.24K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Регистрация в РКН: https://gosuslugi.ru/snet/67b464d698a28c4e866d827a

Размещение рекламы: @tanyasanovna
Download Telegram
Каталог Swift Playgrounds

Swift Playgrounds скорее мертвы, чем живы – но если вы хотите немного поиграть с ними, то вот каталог примеров от сообщества разной степени сложности.
12👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Шесть лет эволюции приложения карт на watchOS

David Smith – возможно, самый опытный разработчик под watchOS, написал классную ретроспективу про то, как он в течение шесть лет постепенно эволюционировал дизайн своего приложения с картами, и как он постепенно пришел к своей идеальной форме.
👍17🔥82
Про сложности заработка на пет-проекте

Наверное каждый мобильный разработчик когда-то задумывался про то, чтобы вырваться из корпоративного рабства, и начать красить кнопки уже чисто для души, делая классные приложения, и зарабатывая на этом $5-10-15k MRR или даже больше.

Но в реальности все не так классно – 80% сил уходит не на приятное написание кода, а на маркетинг, самые интересные вам идеи на самом деле никому не нужны, а менталочка находится на эмоциональных качелях.
👎19💅11👍32
Закрываем луп в iOS

Чем больше всего ваш агент может проверять самостоятельно, тем меньше вам придется вмешиваться в его работу. Вот несколько идей:

👉Чтобы агент мог быстрее итерировать вокруг отдельных SwiftUI компонентов, используйте библиотеку Playbook, аналог известного в веб разработке Storybook.
👉Для тестирования полной логики приложения, включая навигацию, поддержите возможность запускать его с любого экрана через кастомные схемы запуска с моками.
👉Обязательно дайте агенту доступ к логам и аутпуту xcodebuild.
👍15👎9
App Explorer – генератор карты экранов

App Explorer – CLI тул вокруг Claude Code, который делает следующее:

👉Открывает на клаудном устройстве ваше приложение и протыкивает там все интерактивные элементы.
👉Каждый экран скриншотится.
👉Генерируется отчет с картой всех переходов.
👍27💅3👎1
DebugSwift – набор хелперов для дебага

DebugSwift – пакет с кучей разных фичей, облегчающих разные аспекты дебага. Из интересного – инспектор HTTP и WebSocket запросов с возможностью их модификации, оверлей с перфомансными метриками, трекинг ре-рендеринга SwiftUI.
👍24🔥4💅31
Вышла стабильная версия Cupertino

В январе я уже делился с вами ссылкой на Cupertino – MCP сервер, который отдает всю информацию из доков Apple как контекст вашему агенту. Вышла его стабильная версия. Главное изменение – поиск стал выдавать гораздо более точные результаты. В статье довольно много деталей про то, как перерабатывали алгоритмы поиска и ранжирования, советую почитать!
💅32
Делаем спиннер в Claude Code более айосерским

Если вы пользовались Claude Code, то видели его спиннер – набор фраз, которые отображаются, пока он выполняет работу. Так вот, их можно кастомизировать и заменять на свои! Держите подборку айосных фраз, чтобы чувствовать себя как дома.
1👎37👍6💅41
Как написать Epub читалку

Статья про то, почему WKWebView может быть недостаточно для того, чтобы рендерить epub-файлы, и в каких случаях кастомный рендеринг движок будет работать лучше.
🔥8👍1💅1
RocketSim CLI для автоматизации симулятора

Для RocketSim, оболочки над iOS симулятором с кучей дополнительных фичей, сделали CLI, который можно дать в руки агентам. В результате тратится заметно меньше токенов, а тапы становятся более точными.

Примеры промптов:

Use /rocketsim to open Settings and navigate to General.
Use /rocketsim to launch my app and complete the onboarding flow.
Use /rocketsim to test the login flow with user@example.com and verify that the home screen appears.
Use /rocketsim to open this deep link and confirm the correct screen is shown.
👍29🔥107👎4
Новые фичи accessibility

Как водится, первыми обновлениями новой версии iOS, про которые мы узнаем, становятся новые фичи accessibility:

👉VoiceOver и Magnifier теперь используют Apple Intelligence, чтобы генерировать детальное описание того, что они видят.
👉Voice Control теперь понимает естественный язык, и можно описывать все действия примерно, без указания конкретных названий элементов.
👉К любым видео автоматически генерируются субтитры.

Приз за самую бесполезную фичу уходит поддержке Vehicle Motion Cues на visionOS – представили себе толпы людей, которые носят Vision Pro в автомобиле? Вот и я нет.
8👍3💅2
This media is not supported in your browser
VIEW IN TELEGRAM
Лучший сетап для камеры на симуляторе

На фронтальную камеру стримится поток с камеры ноутбука, а задняя камера показывает все окна, находящиеся за симулятором. В таком режиме можно тестировать и распознавание лиц, и QR кодов, и что угодно еще.

Настроить такой сетап можно с помощью приложения SimCam.
🔥78👍7💅1
AgentKitten – агентский фреймворк на Swift

Если вам надо писать нативных агентов для Apple платформ – посмотрите на AgentKitten. В целом все агентские фреймворки очень похожи, примитивы все вроде на месте, так что может стать хорошей альтернативой условному LangChain.
👍12👎2
Прячем вьюшки со скриншота

Если вы хотите отображать какой-то SwiftUI элемент в приложении, но прятать его на скриншотах, при записи видео или стриминге, задача становится не очень тривиальной. В статье разбирается, какой приватный API может с этим помочь.
👍25
DebugSnapshots – новая библиотека от Pointfree

Pointfree выпустили новую библиотеку, которая позволяет легко трекать любые изменения в данных, содержащихся в классе, ставить брейкпойнты на их изменения и в целом дебажить. Все, что нужно сделать – добавить макрос.
👍19👎3
AdaEngine – новый игровой движок на Swift

AdaEngine – 2D игровой движок, построенный вокруг паттерна Entity Component System. Есть поддержка физики, кастомных шейдеров и описания интерфейса на SwiftUI.

Только-только вышел первый публичный релиз, если есть вопросы, пишите автору – @SpectralDragon.
🔥35👍75💅2👎1
Работаем с TimelineView

TimelineView позволяет свертстать вьюшку, которая будет реагировать не только на изменения данных, но и на изменение времени. В статье разбирается, как с ней правильно работать, в том числе как организовывать анимации и настраивать частоту обновлений.
👍16💅2
Goodnotes в браузере на Swift

Команда Goodnotes решила портировать приложение в браузер, сохранив все возможные фичи и оптимизации. В итоге они решили не переписывать его на JS, а использовать SwiftWasm. В посте они детально разбирают получившуюся архитектуру, проблемы, и результаты по реюзу еода и перфомансу.
1🔥20👍5💅3