TGViewer
Channel Public Channel
Андроидѣ | Михаил Белый

Андроидѣ | Михаил Белый

@foundout

Авторская песочница о карьере в IT в роли Mobile Dev (Android, Kotlin, Multiplatform, AI) и разных вещах, которые мне интересны.

Автор: @michaelbel

Материалы: android-career.com

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

Задонатить: boosty.to/michaelbel
Subscribers
328
Photos
308
Videos
36
Links
143

Showing posts older than #130 · Back to latest

Older Posts 15 shown
Post #129 367
🐗 Решения 30 задач с CodeRun

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

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

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

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

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

#coderun@foundout
Post #128 386
Какую 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 самописный, код на плюсах.
Post #126 397
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.
Post #125 448
Post #123 449
🐗 Подтверждение навыка Английский

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

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

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

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

#hhskills@foundout
Post #122 412
🐗 Подтверждение навыка Agile

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

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

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

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

#hhskills@foundout
Post #121 363
🐗 Подтверждение навыка Scrum

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

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

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

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

#hhskills@foundout
Post #120 366
🐗 Подтверждение навыка OKR

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

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

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

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

#hhskills@foundout
Post #119 406
🐗 Подтверждение навыка ООП

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

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

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

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

#hhskills@foundout
Post #118 389
🐗 Подтверждение навыка 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
Post #117 376
🐗 Верификация аккаунта Google Play

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

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

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

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

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

Надеюсь, больше никаких писем.
Post #116 508
🐗 Подтверждение навыка 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
Post #114 372
Имя артефакта

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

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

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

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

На каждый вопрос – 5 вариантов ответа, из которых 1 правильный. Копирование запрещено. Если завалить – результат никто не увидит, а следующая попытка будет через месяц. Если сдать – на год выдадут зеленый шильдик. Это сделает резюме более привлекательным для работодателей. Задумано, что нужно тестироваться на тот уровень, который указан у навыка. И снижать его, если не прошел.

Нет смысла учиться-разбираться, в самих тестах отборная дичь, особенно в третьем. Быстрее будет проставить у всех навыков «Продвинутый» уровень и протыкать правильные ответы. Я собрал их все вместе с вопросами в роадмапе.

#hhskills@foundout
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →