Android | Михаил Белый
309 subscribers
272 photos
32 videos
127 links
Авторская песочница о карьере в IT в роли Mobile Dev (Android, Kotlin, Multiplatform) и разных вещах, которые мне интересны.

Посты каждый день в 5 вечера.

Автор: @michaelbel

Забустить: t.me/boost/foundout

Задонатить: boosty.to/michaelbel
Download Telegram
Имя артефакта

Приближается релиз Gradle 9.0, в котором удалят много устаревшего API. Одно из таких изменений – способ задания имени артефактов. Это нужно чтобы генерируемый APK назывался не app.apk, а более осмысленно. Например, содержал номер версии и сборки в названии.

Ранее имя артефакта задавалось в разделе android с помощью archivesBaseName. Теперь переехало в отдельный раздел base и называется archivesName.
842
🐗 Подтверждение навыка Java

Java – один из важнейших навыков для Android-разработчиков. От неё не сбежать: у Kotlin нет собственной виртуальной машины. Этот навык тоже можно подтвердить на hh.

Предлагается 3 уровня тестов. Каждый включает в себя теорию и практику. Если хочется, можно сдать только теорию.

• Базовый
Теория – 10 вопросов за 10 минут.
Практика – 3 задачи за 25 минут.

• Средний
Теория – 12 вопросов за 15 минут.
Практика – 4 задачи за 35 минут.

• Продвинутый
Теория – 13 вопросов за 20 минут.
Практика – 5 задач за 50 минут.

По теории все аналогично Git. Вопрос и 5 вариантов ответа. Они каждый раз идут в рандомном порядке. Нужно набрать большинство правильных ответов. То есть можно и ошибиться. Зеленый шильдик выдадут на год.

С практикой интереснее. Задачи содержат описание, формат ввода и вывода, примеры результатов. Решение нужно накатать на месте в редакторе кода с подсветкой синтаксиса и автодополнением. Запустить, проверить и отправить на аппрув. Не забудь про импорты и точку с запятой в конце строк. Перед тем как идти в бой, hh дает возможность потренироваться на полигоне. Там будет идентичная задача, можно заранее посмотреть формат. Также hh бдит и пугает, что гулять по другим вкладкам браузера нельзя. И что решение будет проверяться не только на тестовых кейсах, но и на скрытых – по ним будет рассчитан результат. Зеленый шильдик выдадут на 3 года.

Чтобы не поймали за жопу рекомендую потратить все время таймера. Будет подозрительно решить 5 задач за 5 минут, а не за 50. Если хочется пальчики размять – вручную перепиши код в редактор, тогда точно засчитают.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
282211
🐗 Верификация аккаунта Google Play

В 2017 году занес гуглу $25 и купил аккаунт разработчика Google Play. Выкладывал туда свои поделки, приложения, библиотеки. Почти всё гугл снес из-за своих постоянно меняющихся правил. Обучение идет веселее, когда творишь не в стол, а на всеобщее обозрение. Я освоил автоматическую публикацию, поэтапную раскатку, правила разных регионов, монетизацию с помощью рекламных баннеров. $100 (минимальная сумма вывода) накапать не успело и я забил.

В 2023 году владельцы аккаунтов начали получать письма счастья – подтверди аккаунт, чтобы он соответствовал обновленной политике требований Play Console или он будет удален вместе со всеми приложениями. Если зарабатываешь деньги – подтверди еще и платежные реквизиты. По интернету начали расходиться нехорошие новости, что подтверждение из РФ не работает, а смски не доходят. Было разрешено выбрать дедлайн проверки и я отложил проблему на далекий 2025 год.

В ноябре 2024 письма возобновились, а уже в январе, за неделю до дедлайна я решил начать шевелиться и узнать чего от меня хотят:
• адрес электронной почты, по которому пользователи Google Play смогут связаться с вами.
• контактный номер телефона и адрес электронной почты, по которым Google сможет связаться с вами.
• официальный документ, удостоверяющий вашу личность.

Подтвердить данные оказалось легко:
1. Выбрать персональный аккаунт (не организация).
2. Платежный профиль – это любая привязанная карта, даже мертвая. Важен адрес, который там указывался. В моем случае – адрес регистрации как в паспорте. Если профиля нет – можно создать новый.
3. В контактную инфу указал почту яндекса – ввел код из письма.
4. В контактный телефон – номер РФ с +7. Сразу получил код подтверждения.

После этих манипуляций на почту падает новое письмо – фейс к осмотру. Требуют любой документ, удостоверяющий личность. На этом этапе меня разворачивали 3 раза. Каждая новая проверка длилась полтора дня. Сначала я загрузил ч/б скан паспорта РФ – нельзя. Затем загрузил цветную фотку страницы с адресом – нельзя, нужна страница с фоткой. Потом загрузил страницу с фоткой – не совпадает адрес. Только когда указал номер дома, учетную запись верифицировали.

Надеюсь, больше никаких писем.
Please open Telegram to view this post
VIEW IN TELEGRAM
8431
🐗 Подтверждение навыка SQL

В Android-разработке приходится работать с базами данных (Room, SQLite), хранить данные приложения, пользовательские настройки, кэш или историю действий. SQL-запросы используются для создания таблиц, вставки, обновления, удаления и выборки данных. Поэтому этот навык тоже можно подтвердить.

Доступно 3 теста:
• Базовый – 10 вопросов за 15 минут.
• Средний – 12 вопросов за 20 минут.
• Продвинутый – 15 вопросов за 25 минут.

Вопросы по основным аспектам работы с SQL: синтаксис команд (создание, изменение и удаление таблиц), выполнение запросов на выборку данных с использованием операторов SELECT, WHERE, GROUP BY, HAVING, ORDER BY, а также основы соединения таблиц (JOIN). Извлечение нужных данных из базы, работа с агрегатными функциями (COUNT, SUM, AVG, MIN, MAX) и фильтрацией данных.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
8322
🐗 Подтверждение навыка ООП

ООП – набор принципов, упрощающих разработку и переиспользование кода. Обычно речь про инкапсуляцию, полиморфизм и наследование. Иногда рядом трется абстракция. В Android применяются для обеспечения модульности и гибкости.

Доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.
• Продвинутый – 15 вопросов за 20 минут.

Тесты проверяют знание SOLID, модификаторов доступа, классов и интерфейсов. Также оценивается понимание паттернов проектирования, статических методов, абстрактных классов и интерфейсов. Проверяется умение строить код с низкой связанностью, модульностью и соблюдением принципов единой ответственности.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
6111111
🐗 Подтверждение навыка OKR

OKR (Objectives and Key Results) — методология для постановки целей и измерения их достижения через ключевые результаты. Она фокусирует на приоритетах, повышает прозрачность и помогает отслеживать прогресс. В бизнесе OKR улучшает коммуникацию между отделами, согласует приоритеты и ускоряет адаптацию. Применяется в квартальных и годовых планах для устойчивого роста и реализации стратегий.

Доступно 2 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.

Тесты охватывают постановку целей, ключевые результаты, каскадирование, мониторинг прогресса и связь OKR с KPI и MBO. Проверяется умение формулировать измеримые цели, использовать опережающие показатели и адаптировать OKR под разные контексты.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
853
🐗 Подтверждение навыка Scrum

Scrum – гибкий фреймворк для управления проектами, основанный на итерациях и инкрементах. Он включает роли, события и артефакты, помогая адаптироваться к изменениям, улучшать прозрачность и доставлять ценность пользователю. Используется в IT, маркетинге и разработке продуктов.

Доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 13 вопросов за 15 минут.
• Продвинутый – 17 вопросов за 20 минут.

Тесты охватывают роли, принципы, события Scrum, инструменты и метрики, включая диаграммы, Velocity и Cycle Time. Проверяются навыки масштабирования (Nexus, LeSS) и адаптация Scrum к бизнес-средам.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
81111
🐗 Подтверждение навыка Agile

Agile – гибкий подход, помогающий быстро адаптироваться к изменениям и частым релизам. В Android используются Scrum и Kanban для управления задачами и эффективного взаимодействия команды.

Доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.
• Продвинутый – 14 вопросов за 20 минут.

Тесты охватывают темы Agile-манифеста, событий и ролей в Agile-команде, масштабирования и коучинга. Проверяются знания о Scrum, Kanban, метриках, фасилитации и управлении проектами.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
7111
🐗 Подтверждение навыка Английский

Последний навык, который можно подтвердить – английский язык.

Доступно 6 тестов:
• А1 Начальный – 15 вопросов за 20 минут.
• А2 Элементарный – 15 вопросов за 20 минут.
• B1 Средний – 15 вопросов за 20 минут.
• B2 Средне-продвинутый – 15 вопросов за 23 минуты.
• С1 Продвинутый – 15 вопросов за 23 минуты.
• С2 В совершенстве – 17 вопросов за 23 минуты.

Тесты начинаются с основ: единственное и множественное число, глагол to be. Затем усложняются: времена глаголов, пассивный залог, сложные синтаксические конструкции. Включают фразовые глаголы, речевые обороты, анализ текста. В каждом тесте — задания с аудированием.

ОТВЕТЫ В РОАДМАПЕ

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
1032
Список всех постов про подтверждение навыков на hh. Ниже – все что можно за уши притянуть к профессии Android-разработчика.

🐗Git
🐗Java
🐗SQL
🐗ООП
🐗OKR
🐗Scrum
🐗Agile Project Management
🐗Английский язык

#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
84321
BOM-зависимости в Android

Управление зависимостями влияет на стабильность проекта. Разные версии библиотек могут конфликтовать, вызывая ошибки сборки. BOM (Bill of Materials) решает эту проблему, автоматически подбирая совместимые зависимости.

Как работает
• Прописывается в version catalog.
• Артефакт -bom подключается в dependencies через platform(...).
• Зависимости подключаются без явного указания версии (весь список библиотек автоматически не добавится).
• Отдельные версии указываются вручную – BOM их не переопределит.
• Для тестов BOM подключается через testImplementation(platform(...)) и androidTestImplementation(platform(...)).

Спецификаии BOM
stable (-bom) включает последние стабильные версии каждой библиотеки.
beta (-bom-beta) включает бета-, релиз-кандидаты (RC) или стабильные версии каждой библиотеки.
alpha (-bom-alpha) включает альфа-, бета-, RC- или стабильные версии каждой библиотеки.

Версия определяются добавлением суффикса -alpha и -beta к имени артефакта. У стабильной версии его нет.

Какие библиотеки имеют BOM-версию
Посмотреть список можно на специальной странице в каталоге артефактов Maven. Среди них:
Compose
Firebase
Kotlin
Coroutines
Koin
Koin Annotations
Okhttp
JUnit 5
Mockito

Если нажать на номер версии и отмотать до вкладки Managed Dependencies, можно увидеть список всех зависимостей, входящих в BOM.
7311
Какую Activity использовать в Android

В Android четыре часто используемых класса активити:
• Activity
• ComponentActivity
• FragmentActivity
• AppCompatActivity

По иерархии идут последовательно. Activity – базовый класс. ComponentActivity наследует androidx.core.app.ComponentActivity, который нельзя использовать в коде. Добавлен гуглом как промежуточный слой между android.app.Activity и androidx.activity.ComponentActivity, чтобы менять код без поломок. Далее идут FragmentActivity и AppCompatActivity.

Activity
Базовый класс для создания активити в Android.
• Управляет жизненным циклом.
• Отображает UI (setContentView, findViewById).
• Обрабатывает действия пользователя (onBackPressed).
• Запускает другие компоненты через Intent, получает результаты.
• Сохраняет и восстанавливает состояние (onSaveInstanceState, onRestoreInstanceState).
• Настраивает окно и тему (getWindow, setTheme).
• Получает доступ к ресурсам и конфигурации (getResources, onConfigurationChanged).

ComponentActivity
Добавляет поддержку компонентов AndroidX.
• Поддерживает LifecycleOwner, подписывается на изменения (LifecycleObserver).
• Сохраняет и восстанавливает состояние (SavedStateRegistry).
• Управляет ViewModel (getViewModelStore).
• Регистрирует обработчик кнопки «Назад» (OnBackPressedDispatcher).
• Отображает контент под SystemBars (enableEdgeToEdge).
• Получает результаты активити и пермишенов (registerForActivityResult).
• Устанавливает UI для Compose (setContent).

FragmentActivity
Работает с фрагментами.
• Управляет фрагментами (getSupportFragmentManager).
• Вызывает onAttachFragment, когда фрагмент присоединяется к активити.
• Передаёт результаты пермишенов во фрагменты (onRequestPermissionsResult).
• Обрабатывает результаты активити внутри фрагментов (onActivityResult).
• Сохраняет состояние фрагментов при изменении конфигурации.
• Поддерживает BiometricPrompt для биометрической аутентификации.

AppCompatActivity
Добавляет поддержку обратной совместимости.
• Управляет ActionBar и Toolbar, обрабатывает кнопку «Назад» (onSupportNavigateUp).
• Поддерживает обратную совместимость (AppCompatDelegate), позволяя использовать ActionBar, темы и стили MaterialComponents на старых андроидах (до API 21).
• Автоматически переключает тему (DayNight), подстраиваясь под настройки устройства или время суток.
• Меняет локаль приложения без перезапуска (setApplicationLocales).

Что использовать
• ComponentActivity – если UI на Compose.
• FragmentActivity – если UI на фрагментах.
• AppCompatActivity – если UI на фрагментах, меняется тема и нужна обратная совместимость.
• Activity – если не используются MaterialComponents, UI самописный, код на плюсах.
1633
🐗 Решения 30 задач с CodeRun

Теперь в роадмапе будут складироваться решения алгоритмических задач в сервисе CodeRun от Яндекса. Это онлайн-тренажер с задачами по направлениям: фронтенд, бэкенд, аналитика данных, машинное обучение и мобильная разработка.

Как и на LeetCode, задачи делятся на три уровня сложности, содержат условие и ограничения по времени и памяти. Но сложность здесь значительно выше – ориентирована на олимпиадников.

Входные данные передаются не через параметры функции, а вводятся через консоль. Результат тоже нужно выводить в консоль. Проверить код перед отправкой нельзя.

Система ведёт две категории решений: отправленные и верные. Каждое решение проверяется на десятках тестов и может неожиданно провалиться, например, на 95-м. Ошибку при этом не указывают – догадайся сам. Поэтому важно учитывать любые возможные форматы входных данных.

Средний элемент
Самый дешевый путь
Вывести маршрут максимальной стоимости
Ход конём
Поиск в глубину
Компоненты связности
Списывание
Топологическая сортировка
Поиск цикла
Длина кратчайшего пути
Блохи
Значение логического выражения
Гистограмма и прямоугольник
Гоблины и шаманы
Тупики
Разложение в сумму кубов
Расстояние по Левенштейну
Космический мусорщик
Распил брусьев
Площадь комнаты
Откуда достижима первая вершина
Самое частое слово
Номер появления слова
Словарь синонимов
Злые свинки
Черепахи
Инопланетный геном
OpenCalculator
Количество слов в тексте
Кубики

#coderun@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
722111
Приложение с нуля

Иногда ты первый разработчик на проекте. Задача – накидать архитектуру будущего приложения. Что показать заказчику и какие подходы котируются?

Репозиторий
• Git как система контроля версий.
• GitFlow как стратегия ведения репозитория.
• GitHub как платформа для хостинга репозитория.
• GitHub Releases для публикации релизов.
• GitHub Issues для отслеживания задач и багов.

Сборка
• Gradle KTS для написания билд-скриптов.
• Gradle Version Catalog для управления зависимостями.
• R8 для оптимизации и минификации кода.
• Build Types – debug для разработки, с логами и отладочными инструментами и release для прода, с оптимизациями и отключёнными логами.
• minSdk – 24 (Android 7.0).
• targetSdk – 35 (Android 15).
• compileSdk – 35 (Android 15).
• Формат сборки – AAB для Google Play. APK для других сторов.
• JVM Toolchain для управления версией JDK.

Архитектура
• MVI как архитектурный паттерн.
• Слоистая архитектура для разделения ответственности (Domain – Data – UI).
• SSOT для обеспечения консистентности данных.
• UDF для управления состоянием данных.

Стек
• Kotlin как основной язык программирования.
• Kotlin Coroutines для работы с асинхронным кодом и параллельными задачами.
• Kotlin Flow для обработки потоков данных.
• Kotlin Serialization для преобразования объектов в форматы JSON и XML.
• Jetpack Compose как UI-фреймворк.
• ViewModel для хранения и управления UI-состоянием.
• Navigation Component для управления навигацией между экранам.
• Hilt для внедрения зависимостей.
• Retrofit для работы с REST API.
• OkHttp для работы с HTTP-запросами и WebSockets.
• Chucker для отслеживания HTTP-запросов и ответов.
• Foreground Service для выполнения длительных или важных задач (камера, локация, музыка, диктофон, звонок, фитнес).
• WorkManager для управления фоновыми задачами.
• DataStore для хранения данных.
• Room для работы с базами данных.
• CameraX для работы с камерой.
• Paging3 для загрузки больших списков с поддержкой пагинации.
• Coil для загрузки и отображения изображений.
• Media3 для работы с мультимедийным контентом (аудио и видео).
• Jetpack Glance для создания виджетов.

Дизайн
• Material3 как дизайн-система.
• Тема приложения – светлая, темная и системная.
• Splash Screen API для отображения заставки.
• Predictive Back Gesture для жеста назад и предварительного просмотра экранов.
• Edge-to-Edge для отображения UI без отступов, когда контент заполняет весь экран, включая области статус-бара и навигации.
• Ориентация экрана – определяется сенсором устройства.
• Display Cutouts – корректная обработка вырезов на экране (под камеру или датчики).
• Adaptive Layouts – макеты, которые автоматически подстраиваются под разные размеры экранов на телефонах, планшетах и десктопах.
• Локализация – en (английский) + язык пользовательской базы, например ru.

Тестирование
• Unit-тесты для бизнес-логики – JUnit, Mockito, Kotest.
• UI-тесты для пользовательского интерфейса – Espresso, Robolectric.
• Android Profiler для мониторинга производительности, памяти, сети и CPU.
• Benchmarking для измерения производительности приложения или его компонентов.
• LeakCanary для обнаружения утечек памяти.

Стиль кода
• Detekt как статический анализатор для нахождения ошибок и улучшения стиля кода.

Мониторинг и аналитика
• Huawei Mobile Services как набор облачных сервисов для устройств Huawei.
• Google Mobile Services как набор облачных сервисов для большинства устройств.
• Firebase Analytics для анализа поведения пользователей.
• Firebase Crashlytics для мониторинга и анализа сбоев в приложении.
• Firebase Cloud Messaging для отправки уведомлений.
• Firebase App Distribution для распространения предварительных версий приложения среди тестировщиков.

Непрерывная интеграция и доставка
• GitHub Actions для автоматизации сборки, деплоя и выпуска.
12311
This media is not supported in your browser
VIEW IN TELEGRAM
Какой же классный получился подгон у эппла на 14 февраля
3211
Как совмещать 2 дейли

Возможное пересечение созвонов – частая причина отказа от многоработничества. Я несколько лет отработал в двух конторах и в один год у меня наложились 250 звонков. Работодателей об этом не извещал. Расскажу как это выглядело на практике.

Дейли – это созвон команды. Проходит каждый день, что понятно из названия. Помогает синхронизироваться: кто чем занят, какие блокеры, нужна ли помощь. Обычно разработчики трудятся в Agile-командах пять дней в неделю с утра и до вечера. Даже в Новосибирске пляшут по московскому часовому поясу, поэтому дейли проходит утром в интервале 9:00-12:30. Распространенные слоты – 11:00, 11:30 и 12:00. Чем больше команда, тем дольше дейли. Четверо укладываются в пять минут, двадцати может не хватить и получаса. Сократить время дейли – распространённая цель команд.

Итак. Два дейлика проходят в 11:00 по будням. Созвон без камеры. Для звонков используют Zoom, Google Meet, Microsoft Teams, Slack или аналогичные сервисы. Доступно отключение микрофона и источника вывода звука.

Какие форматы встречались
• Классический. Поочередный опрос каждого: «что делал вчера, что будешь делать сегодня». Порядок иногда играет на руку. Если опрашивают по алфавиту, Яковлев отвечает последним. Или опрашивают по расположению имен в Jira. Либо сначала фронтендеров, потом бэкендеров. Постепенно проявляется закономерность – я размьючиваю микрофон в 11:15.
• Проектный. Опрашивают тех, кто участвует в проектах, которые в работе. Молчишь каждый второй созвон.
• Проблемный. Сначала обсуждаются блокеры, потом текущие задачи. В этом случае свои проблемы лучше порешать в течение рабочего дня, чтобы не отвлекаться на звонке.

Подключаться на звонки нужно с двух устройств – два компа, комп + телефон. Чтобы мозг не плавило, лучше не использовать две пары наушников. На первом устройстве выводим звук через динамики, на втором через один наушник. Мозг человека не поддерживает многозадачность, но может быстро переключаться между тасками. Так проще оставаться в контексте каждого дейли.

Когда очередь отвечать на первом дейли – размьючиваем микрофон и говорим. Когда отвечаем на втором дейли – убавляем динамик на первом. Это единственное слабое место процесса. Мы выпадаем из контекста приглушенного звонка. Но на практике значимые детали редко упускаются.

Дергают одновременно на двух дейли
И такое случается. Второй рот в этот момент не отрастет. Выбираем приоритетный звонок, а второй оставляем на мьюте. После спича (лучше краткого) появляемся на втором дейли, если встреча еще идет, и просим повторить вопрос. Жалуемся на медленный интернет, разрядившиеся наушники, клятого курьера.

Дальше проще
Первые пару недель сложно. Как известно, мозг нейропластичен и неизбежно адаптируется к новым обстоятельствам. Сначала следишь за микрофонами, потом скатываешься в полнейший рассос. У меня созвоны сопровождались приготовлением завтрака, просмотром ютуба и разговорами с сожителями.

Награда
В 2 раза больше опыта, денег и стресса. Нарабатывается скилл планирования и приоритизации задач.

Легче проблему предотвратить, чем решать. Пересекающиеся созвоны – не приговор, но как же проще, когда они разнесены по времени.
1129521
Как Android-разработчику использовать ChatGPT

ChatGPT предоставляет такую же абстракцию над высокоуровневыми языками программирования, как те над ассемблером. Формулировка запросов на естественном языке не только повышает уровень взаимодействия человека и компьютера, но и упрощает его.

Кормить ли ИИ кодовой базой проекта – вопрос дискуссионный, каждый решает сам. Но даже исключая бизнес-состовляющую, остаются задачи, которые можно делегировать нейросетям:

🐗Анализ ошибок билд-системы
Ошибки Gradle, минификации и процессоров аннотаций (Dagger, Retrofit) возникают постоянно и по миллиону причин. ChatGPT найдет решение: сходит в issues на гитхаб, проанализирует форумы, разберет логи, прочитает релизноуты и документацию. Достаточно скопировать ему логкат.

🐗Рисовать на канвасе, анимировать, делать виджеты
ChatGPT напишет код для отрисовки любой загогулины: от восьмиконечной звезды до лепестковой диаграммы. Добавит пульсацию, волны, скачки, пружины, морфинг и другие эффекты. Подберет цвета, которые сочетаются. Создаст виджет из ограниченного набора компонентов (Glance).

🐗Правила для линтеров
ChatGPT поможет настроить кастомные правила для Detekt и Lint. Пропишет инспекции для нейминга, сложности функций, глубины вложенности, устаревших API и утечек памяти.

🐗Документация и комментарии в коде
ChatGPT опишет сложный участок кода, функциональность класса или метода. Сгенерирует API-документацию. Предложит улучшения, чтобы текст стал понятнее.

🐗Решение алгоритмических задач
Методы решения алгоритмов давно известны: бинарный поиск, с возвратом, в ширину, в глубину, боком и с подскоком. ChatGPT в курсе и выдает оптимальный по памяти и времени код.

🐗Перевод строковых ресурсов
Плохие новости – у DeepL открылся денежный чакр. Хорошие – ChatGPT тоже отлично переводит. Без проблем локализует строки в strings.xml на другие языки.

🐗Автоматическое тестирование
ChatGPT силен в написании юнит и интеграционных тестов. Проверяет бизнес-логику и UI, предлагает шаблоны, использует JUnit, Espresso и Compose UI Test. Помогает протестировать большие участки кода.

🐗Написание SQL-запросов для Room
ChatGPT составляет сложные SQL-запросы, работает с таблицами и отношениями, умеет описывать миграции.

🐗Конвертация кода между Java, Kotlin и Swift
ChatGPT переводит код между языками, сохраняя логику и стиль. Полезно при смене стека или написании кроссплатформенных приложений.

🐗Написание GitHub Actions и GitLab-CI скриптов
ChatGPT напишет скрипты для автоматизации сборки, тестирования и деплоя Android-приложения. Сгенерирует .yml, настроит кэш Gradle, запустит тесты, опубликует сборку в Google Play. Сократит время на рутину и сбережет бесплатные минуты и гигабайты.

🐗Разбор кода, рефакторинг, оптимизация
ChatGPT объяснит, что делает конкретный кусок кода. Упростит его, улучшит читаемость и оптимизирует производительность. Сократит дублирование и адаптирует под бестпрактисы.

🐗Контент в заданном формате
ChatGPT напишет код для подключения артефактов в libs. Сгруппирует их в бандлы и добавит в модули.

Что делать людям

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

Чем больше у человека знаний, тем проще ему использовать нейросети. Опытный барсеточник с большей вероятностью увидит ошибки в сгенерированном коде. Это называется «проклятие эксперта»: ИИ полезен разбирающимся в теме, но запутает тех, кто только учится. Поэтому не прекращай расти над собой, какими бы умными не становились нейронки.
Please open Telegram to view this post
VIEW IN TELEGRAM
14922111
This media is not supported in the widget
VIEW IN TELEGRAM
28661