Записки разработчицы
Відкрити в Telegram
Разговоры об IT, о разработке. О мобилках нативных и кроссплатформенных. Личный аккаунт @azharkova
Показати більше2 337
Підписники
+124 години
Немає даних7 днів
-930 днів
Завантажуємо дані
Схожі канали
Хмара тегів
Вхідні та вихідні згадування
---
---
---
---
---
---
Залучення підписників
листопад '26лист '26
листопад '26
+4
в 0 каналах
жовтень '26
+46
в 3 каналах
Get PRO
вересень '26
+28
в 1 каналах
Get PRO
серпень '26
+29
в 1 каналах
Get PRO
липень '26
+33
в 0 каналах
Get PRO
червень '26
+18
в 0 каналах
Get PRO
травень '26
+29
в 0 каналах
Get PRO
квітень '26
+30
в 0 каналах
Get PRO
березень '26
+28
в 1 каналах
Get PRO
лютий '26
+70
в 1 каналах
Get PRO
січень '26
+141
в 0 каналах
Get PRO
грудень '25
+78
в 1 каналах
Get PRO
листопад '25
+163
в 1 каналах
Get PRO
жовтень '25
+221
в 12 каналах
Get PRO
вересень '25
+89
в 3 каналах
Get PRO
серпень '25
+21
в 0 каналах
Get PRO
липень '25
+49
в 1 каналах
Get PRO
червень '25
+47
в 0 каналах
Get PRO
травень '25
+41
в 2 каналах
Get PRO
квітень '25
+48
в 1 каналах
Get PRO
березень '25
+26
в 0 каналах
Get PRO
лютий '25
+35
в 0 каналах
Get PRO
січень '25
+40
в 0 каналах
Get PRO
грудень '24
+40
в 0 каналах
Get PRO
листопад '24
+67
в 1 каналах
Get PRO
жовтень '24
+67
в 0 каналах
Get PRO
вересень '24
+93
в 0 каналах
Get PRO
серпень '24
+178
в 3 каналах
Get PRO
липень '24
+37
в 1 каналах
Get PRO
червень '24
+58
в 4 каналах
Get PRO
травень '24
+117
в 5 каналах
Get PRO
квітень '24
+22
в 0 каналах
Get PRO
березень '24
+83
в 2 каналах
Get PRO
лютий '24
+42
в 2 каналах
Get PRO
січень '24
+74
в 1 каналах
Get PRO
грудень '23
+76
в 0 каналах
Get PRO
листопад '23
+44
в 2 каналах
Get PRO
жовтень '23
+36
в 0 каналах
Get PRO
вересень '23
+15
в 0 каналах
Get PRO
серпень '23
+26
в 0 каналах
Get PRO
липень '23
+18
в 0 каналах
Get PRO
червень '23
+131
в 0 каналах
Get PRO
травень '23
+518
в 0 каналах
Get PRO
квітень '23
+22
в 0 каналах
Get PRO
березень '23
+41
в 0 каналах
Get PRO
лютий '23
+57
в 0 каналах
Get PRO
січень '23
+12
в 0 каналах
Get PRO
грудень '22
+18
в 0 каналах
Get PRO
листопад '22
+76
в 0 каналах
Get PRO
жовтень '22
+18
в 0 каналах
Get PRO
вересень '22
+47
в 0 каналах
Get PRO
серпень '22
+22
в 0 каналах
Get PRO
липень '22
+10
в 0 каналах
Get PRO
червень '22
+35
в 0 каналах
Get PRO
травень '22
+19
в 0 каналах
Get PRO
квітень '22
+109
в 0 каналах
Get PRO
березень '22
+62
в 0 каналах
Get PRO
лютий '22
+9
в 0 каналах
Get PRO
січень '22
+24
в 0 каналах
Get PRO
грудень '21
+11
в 0 каналах
Get PRO
листопад '21
+19
в 0 каналах
Get PRO
жовтень '21
+132
в 0 каналах
Get PRO
вересень '21
+271
в 0 каналах
| Дата | Залучення підписників | Згадування | Канали | |
| 08 листопада | 0 | |||
| 07 листопада | +1 | |||
| 06 листопада | +1 | |||
| 05 листопада | 0 | |||
| 04 листопада | +1 | |||
| 03 листопада | 0 | |||
| 02 листопада | +1 | |||
| 01 листопада | 0 |
Дописи каналу
Repost from Yandex for Mobile
🤔 T-Shape всё?
Актуальна ли ещё ситуация, при которой успешному мобильному разработчику достаточно иметь глубокую специализацию и широкий кругозор? Особенно во времена, когда конкурировать нужно не только с людьми, но и с видеокартами, а поверхностные знания обесценились до стоимости подписки.
На Mobile Runtime ответ на этот вопрос искали:
🟠 Эдуард Оболенский, руководитель платформы мобильной разработки в Яндексе
🟠 Артур Василов, руководитель мобильной разработки в Яндекс Браузере
🟠 Василий Усов, iOS Core Team Techlead в Райффайзен Банке
🟠 Вероника Макаровская, iOS-разработчик в Сбере
💻 Эксперты обсудили, какие навыки и знания становятся критичными и почему концепция T-Shape мутирует, а T в ней отращивает себе ещё пару ног. Посмотреть дискуссию целиком можно тут.
👷♀️ В карточки мы вынесли некоторые тезисы спикеров. Их объединяют две мысли: глубокие технические знания до сих пор ничем нельзя заменить и главные решения всё ещё принимают люди, а не AI-агенты.
Все выступления с Mobile Runtime можно найти в плейлистах:
🟰 Трек AI на ютубе и в VK Видео
🟰 Трек Not so AI на ютубе и в VK Видео
Подписывайтесь:
💬 @Yandex4Mobile
📹 @YandexforMobile
| 2 | Очень интересная дискуссия наших коллег из Яндекса и Райфа. Рекомендуется к просмотру | 527 |
| 3 | ⚙️ KMP-плагин прекращает поддержку редактирования Swift
После перехода на IntelliJ IDEA 2026.3 или Android Studio Rabbit 2 | 2026.2.2 в KMP-плагине исчезнут редактирование Swift, подсветка синтаксиса и навигация между Swift- и Kotlin-кодом.
JetBrains объяснила изменение низким использованием этих возможностей и затратами на поддержку. Запуск iOS-приложений и отладка Kotlin на iOS сохранятся. Swift Export и импорт Swift-пакетов также продолжат работать.
Если команда использует смешанный проект, перед обновлением проверьте рабочий процесс: Swift-часть удобнее открыть в Xcode, а Kotlin оставить в привычной IDE. Старые версии плагина сохранят прежние Swift-возможности, но обновлений для них больше не будет.
🐸 Библиотека мобильного разработчика | 591 |
| 4 | Очень интересные изменения происходят | 582 |
| 5 | 🔨 Xcode Preview MCP: проблемы и ограничения SwiftUI для агентов.
В Xcode 26.3 компания Apple открыла агентам доступ к своим инструментам через MCP. В Xcode 27 появился headless-сервер и рендеринг SwiftUI-ревью стало можно вызывать программно: агент меняет вью, получает скриншот и проверяет результат без ручного запуска Xcode.
Но на практике все сложнее. Нашел интересную статью, где автор разобрал основные ограничения, предлагаю обсудить самые важные моменты, перед тем как встраивать Preview MCP в свой рабочий процесс.
Нельзя выбрать устройство:
MCP-инструмент рендеринга не принимает параметр целевого устройства. Поле renderedDestination в ответе тоже бесполезно: оно показывает симулятор, на котором крутится рендер, а не модель, которую эмулирует превью.
#Preview не помогает: макрос игнорирует .previewDevice. Единственный способ получить рендер на конкретном iPhone - вернуться к устаревшему PreviewProvider, который все еще умеет это делать.
Обходной прием: переключить активный run destination через XcodeSwitchRunDestination перед рендером. Это работает для семейств устройств (iPhone vs iPad), но не гарантирует конкретную модель - выбрав iPhone 17 Pro, можно получить рендер на iPhone 18 Pro.
Код изменился, но скриншот старый:
Самое неприятное в автоматизации: вью-код обновился, а инструмент возвращает старую картинку без единой ошибки.
Причина в том, что превью и вью часто лежат в разных файлах. Если изменить только зависимый файл, Xcode иногда пропускает пересборку. При рендере из SPM-пакета это происходит в 20-40% случаев. С .xcodeproj - реже, но не исчезает совсем.
Решение - fingerprint. Инструмент вычисляет хеш исходников, встраивает его в код превью как имя типа (не строку - строковые литералы hot-swap не триггерят пересборку), рендерит, затем сверяет fingerprint из возвращенного JSON с вычисленным. Если не совпало - повторяет рендер, если снова не совпало - выбрасывает скриншот.
Еще несколько проблем:
🔹Краш хоста превью после изменений. Стек останавливается в DebugReplaceableViewChild.updateValue() при hot-replace. Частота сильно зависит от того, перезаписывался ли файл превью - в худшем случае почти половина запусков. Обычно помогает немедленный повтор.
🔹Однострочные #Preview ломают индекс. Если три #Preview в одном файле написаны каждая в одну строку, previewDefinitionIndexInFile: 2 рендерит первую (индекс 0), хотя sourceLineNumber возвращается правильный. Решение простое: писать #Preview в несколько строк.
🔹Файлы не находятся после добавления или удаления. Рендер сразу после записи нового файла дает FileNotFoundError. Рендер нетронутого файла сразу после удаления другого - ProviderError: noPreviewInfos. В headless-режиме структура проекта кешируется, и новые файлы часто не видны до перезапуска воркспейса.
🔗 Читать подробнее
💡 Вывод:
Preview MCP уже полезен, но пока сыроват. Если вы собираете скриншоты в CI или подключаете превью к агенту, готовьтесь к обходам. Fingerprint помогает убедиться, что скриншот свежий. Отдельный набор preview-файлов - что автоматизация не мешала обычной работе. С SPM и порядком операций надо быть аккуратнее. И помните: выбрать конкретное устройство для рендера пока нельзя - либо PreviewProvider, либо XcodeSwitchRunDestination с ограничениями.
Подписаться на канал:
➡️ Telegram | Max | 575 |
| 6 | Очень интересный разбор, как же работают инструменты на агентах. На демо для бизнеса, как всегда, все было красиво | 555 |
| 7 | Разработка харнесса тоже превращается в бесконечный процесс. Да, есть вещи и фичи, для которых достаточно общих скиллов и MCP. Но для кора вашего проекта вам надо будет подготовить ваши кор-скиллы и кор-MCP, чтобы все было по вашим правилам и под вашу специфику. А если что-то меняется (в проекте, в агенте в инструменте), то надо менять/адаптировать и харнесс.
В общем, думайте головой, не головой не думайте. Расширяйте кругозор, осваивайте инструменты и не забывайте о квалификации. | 709 |
| 8 | За последние пару лет часто слышала тезис, что неважно, как ИИ сделала задачу, написала код, не надо его смотреть, готово, работает, не трогай, языки/платформы/люди не нужны. Почему это не верно, и почему правила, языки и инструменты нужны по-прежнему, а то и больше.
Разберем пару ситуаций.
1 Приложение с кодом от ИИ (черный ящик) работает, но надо его расширить новым функционалом. Если мы игнорируем требования по архитектуре и код-стайлу и отпускаем генерацию ИИ в свободное плавание, то где гарантия, что текущее состояние позволит добавить новый функционал? Что не придется его переписывать/ перегенерировать той же ИИ? При этом нам надо не сломать то, что уже было сделано, и здесь вполне реален риск, что новая сессия ИИ решит действовать по-своему, а в предыдущей мы словим поток галлюцинаций из-за переполнения контекста.
Итог: бесконтрольно тратятся токены (они идут не только на прямое решение задачи), риск потери качества и работоспособности приложения увеличивается (можно сломать то, что уже было).
Код необходимо тестировать. Если вы не хотите огрести от бизнеса или пользователей, вам важно, чтобы то, что сгенерируется, работало. И надо будет проверить еще тщательнее предыдущие блоки кода. Потому что в отличие от людей ИИ их легко может затронуть.
Итог: мы меньше потратили на ревью, на архитектуру, но у нас доп.расходы на QA.
Мы можем, условно передать тестирование другой модели, но опять же это лишние расходы на бесконтрольные токены, а также нет гарантии, что отчеты будут настоящими, код действительно будет проверен. Тут нам могли бы пригодиться генерируемые тесты Unit и UI. Но вот незадача, для покрытия приложения тестами, оно должно это позволять. Ему нужна архитектура, нужен код-стайл, правила.
2 В приложении ИИ нашли баги. Кто это будет чинить и как. Кто поймет, что за проблема. Представим, что чинит ИИ. Она может действительно починить код, а может сымитировать работу, сжечь токены и не исправить проблему. Или опять переписать кусок кода и сделать ненужный рефакторинг просто так. И снова мы пожжем токены.
Представим теперь, что чинить отдают людям. И вот тут им надо будет понять, что в этом коде происходит. Для этого код должен быть читаемым, написанным по правилам языка, код-стайлу, приложение должно быть структурировано по правилам хорошей архитектуры, а не напоминать солянку из паттернов. Бесконтрольный код может быть сделан так, что проще будет переписать с нуля, чтобы починить его. И не только из-за возможных утечек памяти.
Та же история с расширением кода с помощью людей после ИИ.
Если вы скучали по временам, когда в аутсорсе/аутстаффе разбирали легаси и переписывали в путный код, с которым можно работать, это оно. Представьте, сколько людей потребуется для устранения проблем бесконтрольного кода после ИИ. Особенно если проект большой, носителей первичных знаний почти нет, а команду устранения надо нанимать. Либо нагружать дополнительной работой сотрудников, занятых на другом проекте. Сверхурочная работа оплачивается не 1-1, если вы помните.
К чему я все это. Я не против ИИ. Это инструмент и не более того, который в умелых руках и при умной голове опытного разработчика, позволяет выровняться по скоростям с разработкой 5-6летней давности и компенсировать потерю времени из-за особенностей IDE, сложного самописного стэка компании, входных требований для реализации простой задачи.
То, что напишет ИИ, не работает в вакууме. Вы можете отказаться от IDE и решать все вопросы на своей системе из ИИ-агента с харнессом под ваши задачи (написанным вами же) и тулзов для компиляции и сборки проекта. Последнее так и в докере работает, это не ново. И по сути, вы и из терминала можете запускать команды или скрипт с ними. Также при написании кода ИИ пользуется теми же технологиями и инструментами, что и человек. И обратится он либо к тому, что у вас уже установлено на машине, либо попросит установить то, чего не хватает, с официального сайта или гитхаба тулзы. | 678 |
| 9 | Если у вас также нет доступа к Gemini из-за вашей локации или по какой-то другой причине, то вы можете подключить ваш провайдер (локальный или api) к Android Studio. Более того, вам для этого не надо авторизовываться в гугл аккаунте и давать разрешения Google AI Studio или Gemini - у меня это и не получилось сделать даже со спец.средствами.
Также вы можете установить Android Cli без привязки к вашим провайдерам, а также подключить глобально его скиллы | 907 |
| 10 | 🤖 Android CLI стал официальным плагином для Claude Code и Codex: агент быстрее находит и чинит утечки памяти
Google выпустила плагин Android CLI для Claude Code и Codex. Он даёт агенту инструменты и инструкции для Android: создать проект, управлять эмуляторами, смотреть живую иерархию UI, запускать Journeys, ставить официальные Android skills и искать по базе знаний Android.
claude plugin marketplace add android/android-cli-plugin
claude plugin install android-cli@android-cli-plugin
👉 Превью Compose без эмулятора: новая команда рендерит превью, и агент сам проверяет UI. По тестам Google, UI-задачи так решались на 77% быстрее и с расходом токенов до 3 раз меньше
👉 LeakCanary в CLI: дампы памяти разбираются на компьютере, а не на устройстве. В A/B-тесте Claude Opus 5.5 на 45 сценариях справился за 46 минут вместо 88
На видео Claude Code гоняет сценарии на нескольких эмуляторах параллельно и чинит найденные утечки.
🔗 Android Developers Blog
#AI #ClaudeCode #Android | 686 |
| 11 | Да, это Claude и Codex | 802 |
| 12 | На Dev summit Android анонсировали MCP для разработки. Я сомневаюсь, что это позволит написать приложение в 1 тычок, и ожидаю, что это будет некоторым продвинутым автодополнением с функционалом простого генератора. Но попробовать стоит. Основной момент - будет ли оно работать с не-Gemini | 799 |
| 13 | 🛠 Cursor открыл Agent SDK: свои агенты как код и деплой одной командой
Cursor представил Agent SDK — фреймворк, на котором компания сама собирает Bugbot, Security Reviewer и Rollouts. Теперь так можно описать своего агента: ревьюера PR по правилам команды, автофиксер или триаж задач.
👉 Агент — это папка проекта: instructions.md с промптом, tools/ с типизированными действиями, skills/, mcp-connections/ и channels/
👉 Просыпается по событиям: PR, комментарии и CI в GitHub, GitLab и Bitbucket, сообщения в Slack, вебхуки и cron
👉 Есть evals: agent-sdk eval проверяет, какие инструменты вызвал агент, а agent-sdk github replay прогоняет через него реальный PR
Старт — npx @cursor/agent-sdk init ./my-bot, деплой — agent-sdk deploy в облако Cursor или на свою инфраструктуру.
🔗 Changelog · Блог Cursor
#AI #Cursor #Agents | 847 |
| 14 | 🤖 Google объяснил Android-разработчикам, как устроены ИИ-агенты и что писать в AGENTS.md
Агент обновляет библиотеку с ломающими изменениями, а нового API нет в его обучающих данных, и по сотням файлов сыплются ошибки компиляции. С разбора таких ситуаций начинается новый раздел AI tools на developer.android.com: агент — это LLM плюс обвязка с инструкциями, инструментами, навыками и циклом выполнения.
Главный практический совет: пишите в AGENTS.md конкретные команды и пути, а не пожелания. Не «убедись, что проект собирается», а ./gradlew assembleDebug; не «бери свежие версии», а «версии из gradle/libs.versions.toml, новые зависимости — только после вопроса». Навыки устаревают, поэтому свежие факты агенту лучше давать через поиск по документации в Android CLI.
В квикстарте инструменты подобраны под опыт: новичкам — Google AI Studio, своему агенту вроде Claude Code — Android CLI и skills, для продакшена — Android Studio.
🔗 Как работают агенты · Квикстарт
#Android #AndroidDev #AI #AIAgents | 901 |
| 15 | Я, конечно, люблю, когда ставят лайк на пост про статью, но еще больше мне нравится, когда статью читают и ставят лайк на Хабре 😉
https://habr.com/ru/companies/usetech/articles/1095920/
https://habr.com/ru/companies/usetech/articles/1096100/ | 1 086 |
| 16 | 🏝 Swift export вместо SKIE: главное — экспортировать меньше
John O'Reilly перевёл iOS-клиент KMP-примера PeopleInSpace с SKIE на Swift export, который генерирует Swift-обёртки напрямую, без Objective-C. Сборка — на dev-версии Kotlin 2.5.0-Beta2 с новым DSL export { swift { } }.
Первая версия выдала около 18 тысяч строк Swift: в экспорт попали Ktor, SQLDelight, Koin и другие библиотеки, а часть кода с дженериками не компилировалась. После чистки осталось около 2,6 тысячи. Помогли отдельный модуль ios-export, через который зависимости common экспортируются только в нужной части, HIDDEN для библиотек и explicitApi(), после которого часть деклараций стала internal.
Замены для SKIE нашлись: StateFlow приходит в Swift как KotlinTypedStateFlow с asAsyncSequence(), а sealed-классы получают sealedType() со Swift enum.
⚠️ Swift export пока в beta. Минимальную iOS пришлось поднять до 18.
🔗 Статья · PR
#Kotlin #KMP #Swift | 908 |
| 17 | Несмотря на то, что ИИ выдает вам SKIE как одно из популярных решений, на практике оно почти не используется никем, кроме создателей - это, кстати, компания Джона О'Рейли. Родных инструкций и сахара на их основе хватает с лихвой | 799 |
| 18 | 🏝 Почему Swift export не может быть идеальным: пример с замыканиями
Gleb Lukianets из команды Kotlin/Native на KotlinConf’26 разобрал, на какие компромиссы приходится идти Swift export из-за разной семантики Kotlin и Swift.
В Kotlin любой объект можно сравнить и захешировать. В Swift у Any нет ни Equatable, ни Hashable: они есть только у номинальных типов, явно объявивших соответствие, а замыкания к ним не относятся. Поэтому Kotlin-лямбду при передаче в Swift оборачивают в Swift-замыкание, а при возврате оборачивают снова: заглянуть внутрь замыкания Swift не даёт. Две такие обёртки одной лямбды никогда не равны.
На этом ломается обычный API регистрации колбэков со слайда: лямбда, пришедшая в unregister, на стороне Kotlin уже другой объект. Нужны и замыкания, и их идентичность, а получить и то и другое сразу нельзя — чем-то придётся пожертвовать.
🔗 Доклад · Kotlin в X
#Kotlin #KMP #Swift | 912 |
| 19 | Приходите/ смотрите мой доклад по Swift wasm в 12:15 мск. Расскажу, как айос обойти ограничения в публикации без bdui , регистрации и смс | 893 |
| 20 | Наша программа на Мобиус включает и технические хардовые доклады. Разработка меняется, языки развиваются, и нам полезно развиваться не только за счет широты знаний, но и глубины. Доклад Максима Сидорова - это как раз то, что нужно для всех Kotlin разработчиков. ИИ это еще не знает | 896 |
