Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> text = '''
>>> Alex:8999123456
>>> Mike:+799987654
>>> Oleg:+344456789
>>> '''
Соответственно, для выделения нужных элементов будем использовать группы. Получится такой паттерн:
(\w+):([\d+]+)
Как мы будем формировать словарь из найденных групп?
>>> import re
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append({
>>> "name": match.group(1),
>>> "phone": match.group(2)
>>> })
>>> print(results)
[{'name': 'Alex', 'phone': '8999123456'}, ...]
Можно немного сократить запись используя zip
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append(dict(zip(['name', 'phone'], match.groups())))
Но есть способ лучше! Это именованные группы в regex. Можно в паттерне указать имя группы и результат сразу забрать в виде словаря.
>>> for match in re.finditer(r"(?P<name>\w+):(?P<phone>[\d+]+)", text):
>>> results.append(match.groupdict())
То есть всё что я сделал, это добавил в начале группы (внутри сбокочек) такую запись:
(?P<group-name>...)
Теперь найденная группа имеет имя и можно обратиться к ней как к элементу списка
>>> name = match['name']
Либо забрать сразу весь словарь методом groupdict()
>>> match.groupdict()
#tricks#regex
🔨Вышла Android Studio Panda 3
В новом стабильном релизе Android Studio два изменения, которые напрямую влияют на работу с Agent Mode.
Первое — собственные Agent Skills. Создаёшь папку .skills/ в корне проекта, кладёшь туда SKILL.md с описанием нужного воркфлоу, и агент начинает использовать его автоматически. Можно вызвать вручную через @имя. Скилл может содержать инструкции по код-ревью под ваши стандарты, информацию о внутренних библиотеках, любые кастомные практики команды. Концепция ровно та же, что в Claude Code с CLAUDE.md, только встроена прямо в Studio.
Второе — гранулярные разрешения для AI. Агент явно запрашивает разрешение перед чтением файлов, запуском shell-команд и веб-запросами. Можно настроить постоянные исключения для доверенных операций, SSH-ключи всегда требуют явного OK. Плюс опциональный sandbox для полной изоляции.
#AndroidStudio#AgentMode#AIdev
🤖Google выложила официальный репозиторий Android Skills — набор инструкций для ИИ-агентов, заточенных под Android-разработку.
Идея простая: вместо того чтобы объяснять агенту контекст каждый раз руками, ты даёшь ему готовый SKILL.md — файл со структурированными инструкциями, шагами и справочными материалами по конкретной задаче. Агент читает его как спецификацию и работает точнее.
Это следует открытому стандарту agentskills.io, то есть формат не завязан на один инструмент — подходит для Claude Code, Cursor и любого другого агента, который умеет читать файлы из контекста.
Что уже есть в репозитории:
👉Миграция с XML-вёрстки на Jetpack Compose
👉Установка и миграция на Navigation 3 (deep links, multiple backstacks)
👉Анализ R8-правил и оптимизация размера APK
👉Обновление до последней версии Play Billing Library
Как использовать: скачиваешь нужный SKILL.md из репозитория, добавляешь в контекст агента (в Claude Code — через команду /add-file или как часть промпта), говоришь что нужно сделать. Агент уже знает, как это делается по правилам Google.
Набор пока небольшой, но сама идея правильная: вместо того чтобы учить агента с нуля на каждом проекте, ты даёшь ему готовую базу знаний от самой команды Android.
🐱GitHub Android Skills
#AndroidDev#AIDev#ClaudeCode