Android Mobile | YeaHub
430 subscribers
331 photos
21 videos
593 links
Теория, подготовка к интервью и курсы для Android разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #adb #install #apk
🤔 Как происходит установка APK или AAB на устройство при запуске через Android Studio?

💬 Кратко:

APK передаётся на устройство напрямую через ADB и устанавливается одним файлом. AAB не устанавливается как есть — Android Studio генерирует набор split APK, которые затем отправляются на устройство. После проверки подписи система размещает файлы приложения и запускает его. Процесс включает оптимизацию и инкрементальные обновления.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👍1
#article #kotlin
📚 Чем занимается Android-разработчик, или Хватит уже спрашивать у них алгоритмы

Автор, опытный Android-разработчик, развенчивает мифы о том, что на собеседованиях и в реальной работе главное — знать алгоритмы, и подробно рассказывает, чем действительно занимается мобильный разработчик: работу в команде (ревью кода, коммуникация), планирование и дизайн фич, верстку UI, написание логики приложения, управление многопоточностью, взаимодействие с инструментами сборки и публикацию в магазины приложений. Он подчеркивает, что ключевые навыки — это практический опыт, знание инструментов (например Git, Gradle, Kotlin/Java) и умение решать реальные инженерные задачи, а не только теорию алгоритмов

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #generic #type_erasure #inline
🤔 Как работают дженерики в Kotlin «под капотом»?

💬 Кратко:

Kotlin-дженерики реализованы через стирание типов (type erasure) на JVM, аналогично Java: информация о конкретном параметре типа недоступна в рантайме. Компилятор проверяет типы во время компиляции, а затем генерирует код без параметризации. Для сохранения информации о типе используют реифицированные (reified) параметры в inline-функциях.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #kotlin #nullability
🤔 Когда использовать Int vs Int??

💬 Кратко:

- Int — когда значение всегда есть (например, возраст).
- Int? — если значение может отсутствовать (например, ID несуществующего элемента).

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #group #count
🤔 Как посчитать количество записей для каждого значения поля в таблице?

💬 Кратко:

Для подсчета количества записей используется GROUP BY вместе с COUNT(). Записи группируются по значению поля, и для каждой группы считается количество строк. Это стандартный способ агрегации в SQL. Такой запрос часто используется для статистики и отчетов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#podcast #всё
📚 TeachMeSkills IT-школа

Это серия выпусков от "TeachMeSkills Школа программирования"
Речь пойдет об актуальные направления и технологии в IT; перспективы роста начинающих специалистов; холиварные топики из жизни разработчиков.


Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👎1
#Собес #lazycolumn #recomposition #profiling
🤔 Как исследовать причину фризов при скролле LazyColumn в Jetpack Compose?

💬 Кратко:

Используйте Layout Inspector, CPU Profiler и Composition Tracing для анализа. Причины часто в тяжёлых recomposition и modifiers.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #zygote #activity #thread
🤔 Как создаётся и запускается новый процесс приложения при старте Activity?

💬 Кратко:

При запуске Activity система сначала проверяет, существует ли процесс приложения. Если он отсутствует, Android создаёт новый процесс через Zygote — базовый процесс, содержащий заранее загруженные классы. Затем запускается главный поток приложения, инициализируется ActivityThread и создаётся Application. После этого через AMS запускается нужная Activity, вызывая её методы жизненного цикла.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #PostgreSQL #CAST #type_conversion
🤔 Как работает CAST в PostgreSQL?

💬 Кратко:
CAST в PostgreSQL используется для явного преобразования значения из одного типа данных в другой. Синтаксис: CAST(expression AS target_type) или expression::target_type. Это необходимо, когда нужно привести данные к нужному формату, например, при сравнении или вычислениях. Без CAST PostgreSQL может неявно преобразовывать типы, но это не всегда безопасно.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#article #jetpackcompose
📚 Создание кастомного Toolbar с Jetpack Compose. Подробный разбор всех попыток и решений

В статье Android-разработчик из ПСБ подробно показывает, как он создавал кастомный Toolbar на Jetpack Compose, решая ключевую проблему — корректное центрирование заголовка и подзаголовка при динамическом содержимом слева и справа. Через примеры реализации с Row и весами (weight) автор объясняет ограничения простых подходов и приходит к использованию компонента Layout, который даёт полный контроль над измерениями и позиционированием элементов, снижает ненужные рекомпозиции и делает интерфейс более стабильным и предсказуемым.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #kotlin #null_safety #coroutine
🤔 Чем Kotlin выигрывает у Java в контексте Android-разработки?

💬 Кратко:

Kotlin лаконичнее (уменьшает boilerplate), безопаснее (null-safety), поддерживает расширения, корутины и современные концепции (коллекции, DSL), что делает код чище и меньше ошибок. Он полностью совместим с Java, позволяет плавно мигрировать существующие проекты и улучшает опыт разработки через встроенные инструменты в Android Studio.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #flow #state_flow #shared_flow
🤔 StateFlow vs SharedFlow

💬 Кратко:

StateFlow хранит последнее значение и всегда возвращает его новым подписчикам. Он похож на "живое состояние". SharedFlow не хранит состояние по умолчанию, а работает как "событийный поток", где данные могут быть потеряны, если никто не слушает. В целом: StateFlow используют для состояния экрана, SharedFlow — для одноразовых событий.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #idempotency #api #design
🤔 Что такое idempotency key и как он применяется?

💬 Кратко:

Idempotency Key — это уникальный идентификатор, который клиентская система генерирует для каждой логической операции (например, создания платежа) и отправляет вместе с запросом к API. Сервер использует этот ключ, чтобы отслеживать, был ли такой запрос уже обработан. Если ключ новый — операция выполняется, а её результат сохраняется вместе с ключом. Если ключ повторяется — сервер не выполняет операцию заново, а возвращает сохранённый ранее результат. Это предотвращает дублирование действий из-за повторных отправок запроса.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👍1
#podcast #все
📚 Kolesa Podcast

Podcast by IT-компания Kolesa Group. В целом он обо всём и вся. Интересно для прослушивания на досуге

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #solid #oop #principles
🤔 SOLID, рассказать что это и привести примеры нарушения из Android SDK.

💬 Кратко:

SOLID - 5 принципов ООП: Single responsibility, Open-closed, Liskov substitution, Interface segregation, Dependency inversion. В Android SDK есть нарушения, например в Activity.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #inline #корутина #функция

🤔 Middle/Senior Android в компанию Альфа-Банк

Скриннинг. ЗП: 250-400k. Опыт: 3 года. Июнь 2024. Собеседование в себя включало постоянное рассуждение, проектирование и построение гипотез для теории и практические вопросы для лайвкодинга.

💬 Вопросы:

- Что такое inline функции в Kotlin?

- В чём разница между inline, noinline и crossinline?

- Как работает return в лямбде внутри inline-функции?

- Как suspendCancellableCoroutine помогает работать с колбэками?

- Чем отличается StateFlow от SharedFlow?

👉 Все вопросы из этого собеседования (6)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #GUID #UUID #idempotency_key
🤔 Почему GUID часто используют как idempotency key?

💬 Кратко:
GUID (UUID) часто используют как ключ идемпотентности из-за его высокой вероятности уникальности без централизованного координатора. Это позволяет клиентам генерировать ключи локально и повторять запросы без риска дублирования операций на сервере. Такой подход упрощает обработку сетевых сбоев и гарантирует, что один и тот же запрос не будет выполнен дважды.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#channel #лекции
📚 ComputerScienceCenter

Русскоязычный канал, на котором вы найдете видеозаписи лекций и короткие тематические ролики на интересные темы о компьютерных науках и программировании. Материал публикуется для ИТ-специалистов, студентов и школьников, интересующихся программированием и математикой.

Помимо роликов о программировании на Rust канал публикует уроки по Python, алгоритмизации, анализу изображений, C/C++, Java, Kotlin и прочему. Лекторы разные: в основном нескучные и отвечающие на вопросы аудитории.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #mvvm #mvi #clean_architecture
🤔 Какие архитектурные паттерны применяются в Android-приложениях на Kotlin?

💬 Кратко:

На Android часто используют MVVM (Model-View-ViewModel) с LiveData/StateFlow, MVI (Model-View-Intent) для unidirectional data flow и Clean Architecture с разделением на слои (Domain, Data, Presentation). Реже применяют MVP, но MVVM и MVI лучше интегрируются с корутинами и Jetpack-библиотеками.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👎1
#Собес #mitm #udp #tcp

🤔 Senior Android разработчик в компанию Юрент.

Техническое собеседование. Лето 2025. Юрент - проект для обеспечения работы самокатов (тех. обслуживание). Вилка: 250-400к + 20% премии. Были вопросы про опыт. В конце был лайвкодинг.

💬 Вопросы:

- Как устроено клиент-серверное взаимодействие в протоколе OAuth 2.0?

- Какие есть способы защиты приложения от MITM?

- Чем отличается TCP от UDP протоколы? Для чего каждый используется?

- Чем отличается функционально GET от POST? Можем ли писать запрос в body GET?

- Что такое WebSocket? Как использовал на проекте?

👉 Все вопросы из этого собеседования (12)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#trainer #курсы #тренажеры
📚 CodeChef

Онлайн-платформа программирования, которая позволяет учащимся осваивать программирование с помощью структурированных курсов, тысяч практических задач и регулярных конкурсов

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа