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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
😎 Генерация сетевых моделей

Сейчас AI используют везде, где только можно и довольно часто можно встретить в опросах, что AI применяют для преобразования JSON в сетевые модели для взаимодействия с API бэкенда. Однако эту задачу довольно легко решает OpenAPI Generator, при условии, что бэкендеры сделали нормальную документацию, конечно

Использование автогенерации моделей по спеке OpenAPI даёт сразу несколько преимуществ:
🟠 Вы не тратите время на написание бойлерплейт кода
🟠 Исключаете человеческий фактор, например, можно случайно забыть сделать поле nullable или наоборот
🟠 Всегда поддерживаете API-сущности в актуальном состоянии, так как спецификация OpenAPI напрямую связана с кодом бэкенда (ну, почти )

При этом благодаря Mustache шаблонам можно реализовать очень гибкое решение:
🔴 Использовать любую библиотеку для сериализации
🔴 Сразу маппить данные в нужные типы, например, в Instant из kotlinx-datetime
🔴 Поддерживать полиморфную сериализацию, когда ответы от API могут сильно различаться
🔴 И даже генерировать не только модели, но и код для взаимодействия с HTTP-клиентом, например, с Ktor

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Первые примеры для Live Notification Bar в Samsung One UI 7

С примерами вида Код - Визуал
Анимации, работают из коробки. Live Notification и Now Bar уже доступны для кастомизации

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #docker
🤔 Как удалить все остановленные контейнеры и неиспользуемые сети в Docker?

Для удаления всех остановленных контейнеров и неиспользуемых сетей используется команда docker system prune . Она также удаляет неиспользуемые образы и кэш.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Шпаргалка по flow операторам

Внутри примеры кода с пояснением для:
🟠 map, filter, take(n)
🟠 reduce, fold, runningReduce/scan,
🟠 transform
🟠 FlatMapConcat, FlatMapMerge, FlatMapLatest
🟠 flowOn, buffer, conflate, collectLatest
🟠 zip, combine, merge
🟠 catch, onCompletion, retryWhen
🟠 onEach, debounce(timeoutMillis), distinctUntilChanged

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️‍🔥 strikt — библиотека Kotlin для работы с assertion

dependencies {
testImplementation("io.strikt:strikt-core:<version>")
}


Strikt — это библиотека Kotlin для работы с assertion в тестах;
предназначена для использования с такими компонентами как JUnit, Minutest, Spek или KotlinTest.

Strikt опирается на свободный стиль утверждений, похожий на AssertJ, но не использует сложную иерархию классов для построения утверждений.

GitHub
Доки

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
👋 Landscapist — высокооптимизированная библиотека Kotlin для загрузки изображений

Landscapist обеспечивает загрузку и отрисовку изображений с помощью 3 компонентов: Glide, Coil и Fresco.
Landscapist поддерживает отслеживание состояний загрузки изображений.
Библиотека также предоставляет разные удобные анимации, включая кроссфейды, трансформации размытия и многие другие.

А ещё Landscapist позволяет гибко управлять загрузкой изображений с помощью массы плагинов

GitHub
Доки

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #docker
🤔 Как удалить Docker-контейнер?

Чтобы удалить Docker-контейнер, используйте команду docker rm c указанием ID или имени контейнера. Пример: docker rm mycontainer удаляет контейнер с именем mycontainer .

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 Mordant — библиотека для стилизации текста в терминале. Этот мультиплатформенный Kotlin-проект превращает скучный терминальный вывод в визуально приятные интерфейсы. С ним можно не просто раскрашивать текст, но и создавать таблицы, анимированные прогресс-бары и даже рендерить Markdown прямо в консоли.

Инструмент умеет автоматически определять возможности терминала и поддерживает корутины для анимаций. Под капотом: умная система виджетов для компоновки элементов и кросс-платформенная работа на JVM, JS и Native.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#статьи
😎 Хроника изменений API фоновой работы в Android

Начнём пожалуй со свежого.

Довольно подробная статья про то, как менялись инструменты для фоновой работы в Android: Service, AlarmManager, Doze Mode, JobScheduler и т.д.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
🤓 Эффекты в Jetpack Compose, лежащие на поверхности

Полезная статья про то, как реализовать универсальное решение, которое умеет накладывать различные эффекты(blur, magnifier) поверх готового контента в Jetpack Compose.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #android
🤔 В чём различие между явным (explicit) и неявным (implicit) Intent?

Явный Intent указывает точный компонент (имя пакета и класса) для запуска, а неявный содержит только действие ( action ), категорию и/или данные, система сама выбирает подходящий компонент через intent-filter. Явные используют для внутренних переходов в своём приложении, неявные - для взаимодействия с другими приложениями (открыть браузер, поделиться текстом).

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😱 Inure — необычный файловый менеджер для Android с открытым исходным кодом. Этот проект выделяется полностью кастомным интерфейсом, поддержкой Material You и встроенным терминалом.

Приложение разрабатывается одним человеком, но уже попало в подборки лучших open-source решений для Android. Оно работает как на рутированных устройствах, так и через Shizuku, предлагая продвинутый анализ установленных приложений.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
🛞 Ныряем в холодные потоки Kotlin Flow

Базовая статья по основам Kotlin Flow для начинающих.

🟠 Термины
🟠 Холодные и горячие потоки
🟠 Холодные потоки, горячие каналы
🟠 Создание Flow
🟠 Структура Flow
🟠 Пример использования
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🛞 Ktlint — линтер Kotlin в духе feross/standard (JS) и gofmt (Go)

brew install ktlint

Вообще, это довольно известный линтер, но если вдруг кто не знал — обязательно попробуйте

Особенности ktlint:
🟠 не требует настройки; уже из коробки ktlint позволяет отслеживать соблюдение соглашений по стилю — Android Kotlin Style Guide

🟠 ktlint позволяет легко создать собственные наборы правил; при необходимости эти правила можно легко отключить

🟠 в ktlint встроен форматтер, который исправляет неправильное написание кода, когда это возможно

🟠 настраиваемый вывод; из коробки доступны несколько отчетов форматов вывода plain, plain-summary, json, html и checkstyle; также без проблем можно создать собственный формат вывода

GitHub
Использование

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #android
🤔 Какие проблемы могут возникнуть при перехвате Intent через BroadcastReceiver?

При перехвате могут быть уязвимости: подставить злонамеренный Intent (Intent-spoofing), вызвать переполнение очереди при многих Broadcast, получить лишние System-Broadcast после Android 8.0. Также возможны утечки ресурсов при незакрытых регистрации и таймауты, если приёмник обрабатывает тяжёлую работу в main-потоке.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😘 Простой виджет движения для разблокировки на Kotlin

dependencies {
implementation "com.ncorti:slidetoact:0.11.0"
}


🟠 полностью векторный, никаких .png
🟠 поддерживаются разные анимации
🟠 легко интегрируется (просто строка компиляции gradle)
🟠 подстраивается под тему приложения
🟠 можно использовать из коробки, всё будет работать
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
👋 Советы по сканированию DataMatrix

🟠 Google ML Kit оказался производительнее ZXing по нашим замерам. Осталась проблема с тем, что ML Kit не распознаёт белые DM на чёрном фоне.
🟠 Самое простое решение оказалось самым эффективным: для сканирования инвертированных DataMatrix нужно инвертировать Bitmap. Однако всё не так просто.
🟠 Самый эффективный способ инвертировать Bitmap — использовать ColorMatrix и нарисовать Bitmap на Canvas. Пример оставлю в комментариях.
🟠 Другая проблема заключалась в том, что CameraX отдаёт изображение в формате YUV, и стандартный метод конвертации ImageProxy в Bitmap может упасть с ошибкой UnsupportedOperationException. Тут два пути решения: написать свой конвертер или выставить в настройках камеры OutputImageFormat в формат RGBA.
🟠 А чтобы одновременно работать с обычными и инвертированными DM, лучше не использовать один ImageProxy, а сделать разные анализаторы и раскидывать кадры между ними по очереди, объединив их с помощью паттерна «Компоновщик».

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