#Собес #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
Доки
👉 Новости 👉 База вопросов
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
Доки
👉 Новости 👉 База вопросов
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
Доки
👉 Новости 👉 База вопросов
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 можно сохранить данные в
👉 Новости 👉 База вопросов
При повороте экрана 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
Читать
👉 Новости 👉 База вопросов
Ещё про Compose. Интересная статья, в которой автор рассказывает, как лямбды и strong skipping режим влияют на работу компилятора и на рекомпозицию.
Выводы и рекомендации от автора
Код экспериментов из статьи → ComposeStability
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Техническое собеседование. Лето 2024
Вопросы:
- Как бы вы реализовали чат в Android?
- Что произойдёт, если запрашивать атрибут PrimaryColor из ApplicationContext и из ActivityContext?
- За что отвечают колбэки onStart, onStop, onPause, onResume?
- Как обновить только один TextView в списке без полного ребинда всего элемента?
Все вопросы можно посмотреть на нашей платформе
#собес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
#Собес #android
🤔 Есть четыре ViewModel, и нужно каждые 5 секунд подписываться на запрос из сети. Как это лучше организовать?
Лучше запускать единственный
👉 Новости 👉 База вопросов
Лучше запускать единственный
Flow ИЛИ LiveData в ОДНОм ViewModel, который внутри viewModelScope С помощью flow {} и delay(5000) эмитит результат каждые пять секунд. Остальные три ViewModel могут делегировать подписку на общий источник данных (SharedFlow или отдельный синглтон-репозиторий), чтобы не создавать дубли НТ ТР-запросов и экономить ресурсы.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
#полезное
📞 Anvil — плагин для компилятора Kotlin, облегчающий внедрение зависимостей с помощью Dagger 2
Anvil упрощает внедрение зависимостей в Dagger за счет автоматического объединения модулей Dagger и интерфейсов компонентов. В общем, вместо того чтобы вручную добавлять модули в компонент Dagger и заставлять компонент Dagger расширять все интерфейсы компонента, эти модули и интерфейсы могут быть включены в компонент автоматически, типо того:
Гитхаб
👉 Новости 👉 База вопросов
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
Vico — это легкая расширяемая библиотека Kotlin для создания диаграмм.
Библиотека совместима как с Jetpack Compose, так и с системой представлений, при этом 2 её основных модуля — compose и views, — являются независимыми.
GitHub
Wiki
👉 Новости 👉 База вопросов
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-операции.
Гитхаб
👉 Новости 👉 База вопросов
Инструмент поддерживает мультиплатформенный 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, что даёт гибкость в навигации и общении внутри и между приложениями.
👉 Новости 👉 База вопросов
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
👉 Новости 👉 База вопросов
Эту библиотеку можно использовать только в проектах, использующих Ktor для сетевой коммуникации
Github
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
😎 Kotlin Serialization — официальная библиотека JetBrains для сериализации без рефлексии. Поддерживает JSON, Protobuf, CBOR и другие форматы, работая на всех платформах Kotlin: JVM, JS и Native.
Проект использует аннотации
GitHub
👉 Новости 👉 База вопросов
Проект использует аннотации
@Serializable для генерации кода сериализации на этапе компиляции, что делает его быстрым и безопасным. Интеграция с Gradle, Maven и Bazel упрощает подключение в любом проекте. GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3