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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #android
🤔 Как работают методы bind и unbind y Android-сервисов?

bindService(Intent, ServiceConnection, flags) свЯЗЫВает клиент (Activity или другой компонент) с сервисом, вызывая в сервисе onBind (Intent) и вОЗВраЩая IBinder для взаимодействия. unbindService(ServiceConnection) разрывает связь, и если нет других клиентов и сервис не был запущен через startService, он завершается.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🤓 Kvaesitso — Android лаунчер на Kotlin, с упором на поисковые возможности

Kvaesitso — это open-source Android лаунчер с акцентом на возможности поиска
Можно взять Kvaesitso за основу и использовать в своих проектах, благо лицензия GPL-3.0

GitHub
Доки

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
😊 kobweb — современный фреймворк для full stack веб-приложений на Kotlin

Kobweb — это фреймворк Kotlin, построенный на основе Compose HTML.
Kobweb включает в себя все необходимое для создания динамичных веб-сайтов, а также веб-приложений, используя при этом всю экосистему Kotlin.

GitHub
Доки

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
#полезное
😇 KVision — ООП веб-фреймворк для Kotlin

KVision позволяет создавать современные веб-приложения на Kotlin без использования HTML, CSS и JavaScript. KVision предоставляет большую коллекцию готовых к использованию компонентов GUI, которые можно использовать в качестве блоков для построения пользовательского интерфейса приложения.

KVision полностью поддерживает как реактивные, так и императивные стили программирования. KVision содержит инновационный интерфейс для подключения фреймворков Ktor, Jooby, Spring Boot, Javalin, Vert.x и Micronaut на стороне сервера, что позволяет создавать fullstack-приложения с общим кодом для модели данных и бизнес-логики. KVision активно развивается.

GitHub
Доки

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2👍1🥰1
#Собес #android
🤔 При повороте экрана нужно сохранить и изменить определённые данные в Presenter без ViewModel. На каком этапе жизненного цикла и как это сделать?

При повороте экрана Activity уничтожается и создаётся заново. В MVP можно сохранить данные в onSaveInstanceState(Bundle) Presenter-a через Bundle (через интерфейс Activity → Presenter) и восстановить в onCreate нового View, передав сохранившийся Bundle . Либо хранить Presenter с данными в setRetainInstance(true) y Fragment.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😵‍💫 Развеиваем мифы о Stability в Compose: оптимизации Strong Skipping

Ещё про Compose. Интересная статья, в которой автор рассказывает, как лямбды и strong skipping режим влияют на работу компилятора и на рекомпозицию.

Выводы и рекомендации от автора

🟠Compose стал более агрессивно оптимизировать пропуск Composable функций, когда параметры не изменились.

🟠Акцент в отдладке Compose сдвигается от метрик и отчетов к отладке на основе LayoutInspector и других инструментов, потому что метрики и отчеты говорят слишком мало о реальной производительности компонентов.

🟠Чтобы обновить UI, используя нестабильные аргументы, нужно создать новый инстанс такого аргумента в памяти, и метод copy дата-классов для этого отлично подходит.

🟠При работе с коллекциями для оптимизации рекомпозиций больше не нужно использовать Immutable Collections, однако придется обновлять их с созданием нового инстанса. Альтернатива использовать - SnapshotStateList.

🟠При работе с лямбдами для максимальной производительности нужно захватывать только те объекты, которые действительно нужны: если нужно только одно поле класса, лучше прочитать поле в отдельную переменную и сослаться на нее.

Код экспериментов из статьи → ComposeStability
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⌨️ Middle Android разработчик в компанию ОТП Банк

Техническое собеседование. Лето 2024

Вопросы:
- Как бы вы реализовали чат в Android?
- Что произойдёт, если запрашивать атрибут PrimaryColor из ApplicationContext и из ActivityContext?
- За что отвечают колбэки onStart, onStop, onPause, onResume?
- Как обновить только один TextView в списке без полного ребинда всего элемента?

Все вопросы можно посмотреть на нашей платформе

#собес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
#Собес #android
🤔 Есть четыре ViewModel, и нужно каждые 5 секунд подписываться на запрос из сети. Как это лучше организовать?

Лучше запускать единственный Flow ИЛИ LiveData в ОДНОм ViewModel, который внутри viewModelScope С помощью flow {} и delay(5000) эмитит результат каждые пять секунд. Остальные три ViewModel могут делегировать подписку на общий источник данных (SharedFlow или отдельный синглтон-репозиторий), чтобы не создавать дубли НТ ТР-запросов и экономить ресурсы.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
#полезное
📞 Anvil — плагин для компилятора Kotlin, облегчающий внедрение зависимостей с помощью Dagger 2

Anvil упрощает внедрение зависимостей в Dagger за счет автоматического объединения модулей Dagger и интерфейсов компонентов. В общем, вместо того чтобы вручную добавлять модули в компонент Dagger и заставлять компонент Dagger расширять все интерфейсы компонента, эти модули и интерфейсы могут быть включены в компонент автоматически, типо того:

@Module
@ContributesTo(AppScope::class)
class DaggerModule { .. }

@ContributesTo(AppScope::class)
interface ComponentInterface {
fun getSomething(): Something
fun injectActivity(activity: MyActivity)
}

// The real Dagger component.
@MergeComponent(AppScope::class)
interface AppComponent

Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
❤️‍🔥 Vico — создание диаграмм и графиков на Kotlin

dependencies {
implementation(libs.vico.compose)
implementation(libs.vico.compose.m2)
implementation(libs.vico.compose.m3)
implementation(libs.vico.core)
implementation(libs.vico.views)
}


Vico — это легкая расширяемая библиотека Kotlin для создания диаграмм.
Библиотека совместима как с Jetpack Compose, так и с системой представлений, при этом 2 её основных модуля — compose и views, — являются независимыми.

GitHub
Wiki

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
👋 Apollo Kotlin — типизированный GraphQL-клиент, который генерирует Kotlin-модели на основе ваших GraphQL-запросов. Этот инструмент избавляет от ручного парсинга JSON и работы с сырыми мапами данных, превращая ответы сервера в удобные типизированные объекты.

Инструмент поддерживает мультиплатформенный Kotlin, что позволяет использовать его не только в Android-приложениях, но и в других Kotlin-проектах. Автоматическая генерация моделей гарантирует, что вы сможете обращаться только к тем полям, которые явно запросили в GraphQL-операции.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
#Собес #android
🤔 Расскажите об основных компонентах Android-приложения.

B Android-приложении есть четыре ключевых компонента: Activity (экран UI), Service (фоновая работа), BroadcastReceiver (приём широковещательных сообщений) и ContentProvider (доступ к данным). Каждый компонент обьявляется в манифесте и управляется системой. Они взаимодействуют через Intent, что даёт гибкость в навигации и общении внутри и между приложениями.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
#полезное
😘 Inspektify — написанная на Kotlin библиотека для Android и iOS. Она позволяет вам наблюдать за сетью вашего приложения в режиме реального времени прямо на вашем мобильном устройстве

Эту библиотеку можно использовать только в проектах, использующих Ktor для сетевой коммуникации
Github

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
😎 Kotlin Serialization — официальная библиотека JetBrains для сериализации без рефлексии. Поддерживает JSON, Protobuf, CBOR и другие форматы, работая на всех платформах Kotlin: JVM, JS и Native.

Проект использует аннотации @Serializable для генерации кода сериализации на этапе компиляции, что делает его быстрым и безопасным. Интеграция с Gradle, Maven и Bazel упрощает подключение в любом проекте.
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3