android_its | Unsorted

Telegram-канал android_its - Android разработка

5076

все о Android разработке @itchannels_telegram - 🔥 лучшие it каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books

Subscribe to a channel

Android разработка

🔥 Дайджест полезных материалов из мира Android за неделю

Почитать:
Как продвигать приложения: советы от RuStore
Мобильная разработка за неделю #513 (30 октября — 6 ноября)
Как стилизовать текст на Compose через Spannable
Kotlin Multiplatform перешёл в stable. Что это значит?
Как сделать тесты на Espresso более читабельными и стабильными
Как реализовать приостановку трансляции и фоновый стриминг на Android с помощью опенсорс-библиотеки
Байт-код — это просто! Как сделать DI по-настоящему быстрым
В помощь тем, кто погружается в Smali
What the key parameter in LazyColumn is actually doing | A deep dive
Generate Resource Icon Android & iOS
Why an Android App Development Company Recommends Using Android Jetpack?
Design Tokens: Cool Philosophy, Cumbersome Experience
Multi-Modules Architecture: Dependency Management _ Build your own gradle plugin
Launch Modes in Android - with Examples
Essential Flutter Developer Skills to Assess while Hiring for Your Next Project
My First Cross-Platform Hello-World Flutter App
How to Check if Your Android Device Has a Widevine License
Advanced Typography: Using OTF Font Features in Android

Посмотреть:
🌐 Задача с реального Python собеседования middle разработчика. Рекурсивная сумма. (⏱ 13:00)
🌐 Определение диабета при помощи машинного обучения в 60 строк кода! (⏱ 12:54)
🌐 Что такое vector в c++ (⏱ 00:51)
🌐 STL C++ стандартная библиотека (⏱ 00:57)
🌐 deque разбор в С++ (⏱ 00:58)
🌐 Последовательные контейнеры c++ List (⏱ 00:47)
🌐 Совет Python разработчикам - реши задачу Chain sum с реального собеседования. (⏱ 14:23)
🌐 Нейросеть для превращения #YouTube видео в презентацию (⏱ 00:28)
🌐 🔥 NVIDIA только что сделала Pandas в 150 раз быстрее без изменений кода. #python (⏱ 00:20)
🌐 Функциональные языки — Как это работает #9 (⏱ 01:07:53)

Хорошего дня!

@android_its

Читать полностью…

Android разработка

🎉 Мы рады сообщить, что в Android добавлена поддержка RISC-V 👉 https://goo.gle/3QDaYfl

RISC-V - это открытый стандарт архитектуры наборов инструкций (ISA), обеспечивающий новую эру инноваций в области процессоров.

Читать полностью…

Android разработка

🔥 Дайджест полезных материалов из мира Android за неделю

Почитать:
Электронные книги? Аудиокниги? Смешать, но не взбалтывать
Оптимизируя sequences — или как мой код попал в kotlin
Построение графа покрытия UI-тестами бизнес-логики на основе VisualFSM
Обзор невизуальной доступности смартфонов под управлением операционной системы Android
Потерял месяц согласований, психанул. Теперь только платные брифы
Что будет с мобильными релизами, если улучшать и автоматизировать процессы
Stone: знакомство с API
Как зловредные приложения могут скрывать работу с буфером обмена в Android 14
Реализация экранов авторизации и регистрации с помощью Custom View и Firebase
Мобильная разработка за неделю #511 (16 — 22 октября)
AdMob Banner Ads Impacting Android Vitals: Seeking Solutions and Alternatives
How to verify OTP in Android without SMS read permission using Xamarin.Forms?
Innovating the Music Streaming Landscape: How to Make an App Like Spotify
Enable Wireless Debugging on Android Device
Finding the Right Balance in Gradle Dependency Strategy
Guia Passo-a-Passo: Corrigindo Problemas com o uiautomatorviewer
Retrieving Device Model Information with JavaScript from Browsers
Tips to Hire Dedicated Android App Developers for Your Business
The Best Resources to Learn Android Development
Desenvolvimento de Aplicativos com Kotlin, Room e Jetpack Compose: Uma Jornada para Interfaces de Usuário Modernas e Eficientes

Посмотреть:
🌐 Прогнозирование цены биткоина при помощи VAR, XGBoost, FB Prophet (⏱ 20:29)
🌐 Django настройка админки (⏱ 06:55)
🌐 Задача на палиндром строки на C++ (⏱ 00:59)
🌐 Django расширяем функционал! (⏱ 07:03)

Хорошего дня!

@android_its

Читать полностью…

Android разработка

🖥 ​Чистая архитектура на Android

Полезный репозиторий, в котором представлены все основные принципы чистой архитектуры: разделение ответственности, слоев, представления и данных.

Проект написан на Kotlin с применением Jetpack Compose и Coroutines. В нём есть юнит-тесты, интеграционные и анализ качества кода.

Github

@android_its

Читать полностью…

Android разработка

🔥 Дайджест полезных материалов из мира Android за неделю

Почитать:
Определение произвольной точки на полигоне. Jetpack Compose. Canvas. Algorithm
Как показать номер версии на экране загру…
4 сценария, когда нужно сделать ставку на Kotlin Multiplatform, а не Flutter
8 вещей, которые я усвоил за 6 лет карьеры разработчика
Как мониторить здоровье вашей Gradle-сборки
Как я осваивал Jetpack Compose
Android 14: что появилось нового и что изменилось? Возможности новой версии мобильной ОС
Компиляция Record для Android
Архитектура Android. Понятно и подробно
Как сделать приложение для мобильного стриминга на Android с помощью опенсорс-инструментов и EdgeStreaming
ImageEncoder: Your Ultimate Privacy Solution for Image Sharing
Gestures in Jetpack compose — All you need to know
Mobile Security Tools part 1: scrcpy
ListView
connected Bluetooth classic device battery information? in react-native
Flutter Platform Channels
ROOT DETECTION IN ANDROID SOLUTION ?
Using SFSymbols in Jetpack Compose
Annotations
Modifiers

Посмотреть:
🌐 Chatgpt, Bard , Claude, Theb - используй API лучших нейросетей бесплатно и без ВПН на Python. (⏱ 05:23)
🌐 Пишем слайдер на UIKit + Lottie + Animations + Custom PageControll (⏱ 01:43:45)
🌐 NLP практика. Определяем тональность текста при помощи NLTK и DL (⏱ 19:37)
🌐 Django шаблонизация и маршрутизация (⏱ 09:11)
🌐 Задача, которая очень часто встречается на собеседованиях #python (⏱ 00:59)
🌐 Решение непростой задачи с Leetcode, часто всплывает на собеседования #pythontutorial (⏱ 00:59)
🌐 Хитрая задача с собеседования #Python (⏱ 00:59)

Хорошего дня!

Читать полностью…

Android разработка

Чтобы узнать, что в голове у интервьюера во время собеседования в ИТ-компанию, не обязательно быть телепатом.

В шоу от команды мобильной разработки Тинькофф «Как это работает» приглашенный гость — гуру собеседований — рассказывает, на что обращают внимание во время интервью, и делится лайфхаками для успешного прохождения отбора.

Посмотреть этот и другие выпуски можно тут: Как устроены собеседования в IT - Как это работает #1

Реклама. АО "Тинькофф Банк"

Читать полностью…

Android разработка

Значительно ускоряем сборку проектов

В этой статье автор подробно разбирает, как устроена оптимизация компиляции в Gradle и почему она работает быстрее, чем в других системах сборки типа Bazel.

Автор раскроет, что такое интерфейс бинарных приложений (ABI), «заголовочные jar-файлы» и как они используются для избежания повторной компиляции.

📌 Читать

Читать полностью…

Android разработка

🔥 Дайджест полезных материалов из мира Android за неделю

Почитать:
Возможна ли жизнь после плеймаркета?
NoArchitecture Kotlin Compose
Как Google победила фрагментацию и возвращает контроль над Android
Мобильная разработка за неделю #507 (18 — 24 сентября)
Mobile MVP — minimum viable Features
Implementing Swipe-to-Refresh in Android Studio using Kotlin: Step-by-Step Tutorial
I'm trying to running the react-native application
Running a Node.js App (Angular/React) on Android using Termux
How to setup Burp Suite on Android
How to Create Time Picker Dialogue Android Tutorial | Best Android Developer Series #softwaretechit
Jetpack Compose
The Rise of Video Conferencing: How It's Transforming Communication in the Digital Age
Implement RecyclerView using Swift PM libraries
Leading Android App Developers - Transform Your Ideas into Apps with Experts in Android Mobile App Development
Android Plataforma - Parte 0: Introdução à Série

Посмотреть:
🌐 Django начало работы. (⏱ 08:18)
🌐 Популярная задача с собеседования в Яндекс #python #задача #программирование #собеседование (⏱ 01:00)
🌐 Новые функции в IOS 17 (⏱ 00:29)
🌐 TokenFlow редактирование видео с помощью текстового описания (⏱ 00:22)
🌐 Парсер телеграм каналов на Python. Гайд по написанию мощного бота. (⏱ 11:58)
🌐 Задача из Собеседования в Яндекс с зарплатой 85000 рублей #python #собеседование #задача #yandex (⏱ 00:59)
🌐 Асинхронный парсинг сайтов на Python (⏱ 22:06)
🌐 Как изменились подходы к автоматизированному тестированию в Тинькофф — Валерий Суковых, Тинькофф (⏱ 36:35)
🌐 Как Google победила фрагментацию и возвращает контроль над Android (30 мин)
🌐 Dependency Management in a Multi-Module Project (25 мин)
🌐 Как работает шифрование. С нуля за 1 час (1 час)
🌐 Советы к собеседованию от эксперта после 100 собесов (1 час)
Доклады
🌐 Сергей Боиштян — Здоровье вашей Gradle-сборки (45 мин)
🌐 Андрей Данилов — Gradle Kotlin DSL: о чем умолчали в документации (45 мин)

Хорошего дня!

@android_its

Читать полностью…

Android разработка

🐱 CatBox для Android

— это многофункциональный набор инструментов для прокси на Android, который является улучшенной версией NekoBoxForAndroid.

В новой версии был удален нежелательный контент и значительно улучшен пользовательский интерфейс.

🐾 Поддерживаемые протоколы:

✔SOCKS (4/4a/5)
✔HTTP(S)
✔SSH
✔Shadowsocks
✔VMess
✔VLESS
✔WireGuard
✔Trojan
✔Trojan-Go ( trojan-go-plugin )
✔NaïveProxy ( naive-plugin )
✔Hysteria ( hysteria-plugin )
✔TUIC

🐱 GitHub
🌐 F-droid

@android_its

Читать полностью…

Android разработка

🤖 Новое приложение для Android - android-luks!

Теперь можно безопасно разблокировать зашифрованный LUKS на GNU/Linux с помощью режима USB-аксессуара, без необходимости вводить пароль.

⬅️ С функцией Init создавайте новый шифрованный ключ, зашифрованный с помощью биометрических данных.
⬅️ Функция Unlock позволяет расшифровать ключ с помощью биометрических данных и отправить его через USB.

👀 GitHub

@android_its

Читать полностью…

Android разработка

🔥 Дайджест полезных материалов из мира : Android за неделю

Почитать:
Есть ли смысл начинать писать мобильное приложение не на Kotlin Multiplatform и Compose Multiplatform?
ForBlitz Statistics: Как я в 10 классе сделал приложение на 10K+ установок
Когда бизнесу нужна разработка мобильного приложения? Раскладываем по полочкам. Помогаем определиться с подходами
Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения
PWA vs Native: чек-лист, который поможет выбрать
Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?
Мобильная разработка за неделю #505 (4 — 10 сентября)
Simplify ViewModelProvider.Factory() Implementation with Kotlin Lambda and Object Expressions
Why Kotlin Multiplatform could change everything in the mobile dev world
ViewModel en Android
Best API For Android App Development
Curso de Programação Android, Angular e Outros 100% Gratuitos
РКН против приложения «Навальный»: борьба за доступность
Why Choose Saudi Arabia IT Agency for Mobile App Development?
if you are building mvp for a fintech company , what stack will you choose native or flutter? and why
Mastering Kotlin Coroutines: Boosting Android App Performance and Responsiveness
How To Free Up Your Internal Storage On Android Phone in 2022

Посмотреть:
🌐 Собеседование на Mobile Developer. Алексей Панов, Контур (⏱ 00:00)
🌐 Python анализ данных с Pandas. PandaSQL (⏱ 12:13)
🌐 Python анализ данных с Pandas. Join, merge, concat в Pandas (⏱ 19:25)
🌐 Python+SQL часть2 создание таблиц. (⏱ 05:15)
🌐 Управление жестами всегда было в ваших часах, просто его нужно было активировать. (⏱ 00:11)
🌐 Уроки Golang с нуля /#28 - Встраивание типов (⏱ 06:16)
🌐 Уроки Golang с нуля /#27 - Bufio. Чтение и запись (⏱ 10:35)
🌐 Python анализ данных с Pandas. (⏱ 17:04)
🌐 Как устроена логика навигации флоу в приложении Тинькофф — Тимур Валиев, Тинькофф (⏱ 25:21)
🌐 Почему Accelerate — это не страшно — Игорь Белов, Тинькофф (⏱ 26:53)

Хорошего дня!

Читать полностью…

Android разработка

Команда Тинькофф соберет мобильных разработчиков в Челябинске 📲

Ребята проведут Tinkoff Mobile Meetup 21 сентября. Расскажут, как реализовать дизайн-систему на Jetpack Compose и работу с хранилищем данных в Android, а после поговорят про создание платформенной команды.

После докладов спикеры останутся поболтать с участниками о разном и, конечно, познакомиться!

📆 Митап пройдет 21 сентября в пространстве Лекторий КЦ 11. Регистрируйтесь и зовите с собой коллег

Реклама.
АО "Тинькофф Банк",
ИНН 7710140679,
лицензия ЦБ РФ № 2673
ERID 2VtzquWoSGg

Читать полностью…

Android разработка

📱 Lottielab теперь многопоточный

Lottielab - редактор Lottie анимаций, что позволит вам работать с ними эффективнее. Проект пока в Beta

Хотели ускорить анимацию в приложениях на Android? Библиотека Lottie теперь поддерживает многопоточность!

В статье подробно объясняют, как новая настройка asyncUpdates переносит ресурсоёмкую фазу update в фоновый поток.

#android #tooling #animation

Github
Lottielab

@android_its

Читать полностью…

Android разработка

💡Jetpack Compose Canvas: 10 практических примеров

1. Рисование круга
Начнем с чего-нибудь простого — нарисуем круг.

@Composable
fun DrawCircle() {
Canvas(
modifier = Modifier
.size(200.dp)
.background(Color.White)
.border(2.dp, color = Color.Blue)
) {
drawCircle(color = Color.Red, radius = 100f)
}
}


2. Рисование прямоугольника
Нарисовать прямоугольник так же просто.

@Composable
fun DrawRectangle() {
Canvas(
modifier = Modifier
.size(200.dp)
.background(Color.White)
.border(2.dp, color = Color.Blue)
) {
drawRect(color = Color.Green, size = size)
}
}


3. Построение линии
Для построения линии требуется две точки: начальная и конечная.

@Composable
fun DrawLine() {
Canvas(
modifier = Modifier
.size(200.dp)
.background(Color.White)
.border(2.dp, color = Color.Red)
) {
drawLine(
color = Color.Blue,
start = Offset.Zero,
end = Offset(size.width, size.height),
strokeWidth = 4f
)
}


4. Создание текста
Можно также создать текст на холсте.

@Composable
fun DrawCanvasText() {
val paint = Paint().asFrameworkPaint().apply {
// paint configuration
this.textSize = 60f
}
Canvas(
modifier = Modifier
.size(200.dp)
.background(Color.White)
.border(2.dp, color = Color.Red)
) {
drawIntoCanvas {
it.nativeCanvas.drawText("Hello, Canvas!", 20f, 200f, paint)
}
}
}


5. Создание контура
Контур — это серия соединенных линий и кривых. Вот как нарисовать простой треугольник с помощью контура.

@Composable
fun DrawTriangle() {
Canvas(
modifier = Modifier
.size(200.dp)
) {
val path = Path().apply {
moveTo(size.width / 2, 0f)
lineTo(size.width, size.height)
lineTo(0f, size.height)
close()
}
drawPath(path = path, color = Color.Magenta)
}
}


6. Рисование дуги
Дуга — это сегмент окружности. Можно нарисовать дугу, указав начальный угол и угол поворота.

@Composable
fun DrawArc() {
Canvas(modifier = Modifier.size(200.dp)) {
drawArc(
color = Color.Cyan,
startAngle = 0f,
sweepAngle = 270f,
useCenter = true,
topLeft = Offset.Zero,
size = size
)
}
}

7. Применение техники отсекания
Можно применить технику отсекания, чтобы ограничить область рисования на холсте. Вот пример применения кругового отсекания.

@Composable
fun ApplyClip() {
Canvas(modifier = Modifier.size(200.dp)) {
clipPath(Path().apply { addOval(Rect(Offset.Zero, size)) }) {
drawRect(color = Color.Yellow)
}
}
}


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

@Composable
fun ApplyTransform() {
Canvas(modifier = Modifier.size(200.dp)) {
rotate(45f) {
drawRect(color = Color.Blue)
}
}


9. Рисование с использованием шейдера
Шейдер — это инструмент для определения цвета каждого пикселя при рисовании. Вот пример рисования с помощью линейного градиентного шейдера.

@Composable
fun DrawWithShader() {
Canvas(modifier = Modifier.size(200.dp)) {
val shader = Brush.linearGradient(
colors = listOf(Color.Red, Color.Blue),
start = Offset.Zero,
end = Offset(size.width, size.height)
)
drawRect(brush = shader)
}
}


10. Настройка индикатора выполнения

📌Статья

@android_its

Читать полностью…

Android разработка

Ускоряем сборку за счёт миграции с kapt на ksp

#android #build #kapt #ksp #performance

https://habr.com/ru/companies/hh/articles/755952/

Читать полностью…

Android разработка

Emudroid

- это бесплатный эмулятор Android, предназначенный для использования на macOS.

Он позволяет пользователям создавать и сохранять виртуальные экземпляры различных смартфонов Android, включая самые новые модели Google Pixel.

С помощью данной утилиты можно легко скачивать и устанавливать свои любимые приложения и игры из Google Play Store, а также проводить тестирование своих веб-сайтов и приложений прямо внутри эмулятора Android.

📌Пробовать

Читать полностью…

Android разработка

💻 Настройка Detekt с помощью каталога версий и convention-плагина

Настройка Detekt под различные модули может быть сложной при работе с многогранными Android-проектами.
Однако использование convention-плагина (решения Gradle, определяющего единый набор соглашений для подмодулей проекта) и AndroidDetektConventionPlugin может упростить этот процесс.

Шаг 1
Добавьте зависимость Detekt в libs.versions.toml.
[versions]
detekt="1.23.1"

[libereries]
detekt-gradlePlugin = { group = "io.gitlab.arturbosch.detekt", name = "detekt-gradle-plugin", version.ref = "detekt" }

Шаг 2
Добавьте зависимость в build.gradle.kts convention-модуля:
dependencies {
compileOnly(libs.detekt.gradlePlugin)
}


Шаг 3
Создайте файл с именем AndroidDetektConventionPlugin.
import io.gitlab.arturbosch.detekt.extensions.DetektExtension
import ir.composenews.configureDetekt
import ir.composenews.libs
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.getByType

class AndroidDetektConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
pluginManager.apply(
libs.findLibrary("detekt-gradlePlugin").get().get().group.toString()
)
val extension = extensions.getByType<DetektExtension>()
configureDetekt(extension)
}
}
}

Шаг 4
Создайте в convention-модуле файл Detekt.kt:
internal fun Project.configureDetekt(extension: DetektExtension) = extension.apply {
tasks.named<Detekt>("detekt") {
reports {
xml.required.set(true)
html.required.set(true)
txt.required.set(true)
sarif.required.set(true)
md.required.set(true)
}
}
dependencies {
"detektPlugins"(libs.findLibrary("detekt-formatting").get())
}
}

Шаг 5
Зарегистрируйте AndroidDetektConventionPlugin в build.gradle.kts convention-модуля:
gradlePlugin {
plugins {
// другие плагины
register("androidDetekt") {
id = "composenews.android.detekt"
implementationClass = "AndroidDetektConventionPlugin"
}
}
}

Шаг 6
Используйте его в проекте:
class AndroidLibraryConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.library")
apply("org.jetbrains.kotlin.android")
apply("composenews.android.detekt") // here
apply("composenews.android.ktlint")
}

extensions.configure<LibraryExtension> {
configureKotlinAndroid(this)
defaultConfig.targetSdk = Integer.parseInt(libs.findVersion("projectTargetSdkVersion").get().toString())
}
dependencies {
add("androidTestImplementation", kotlin("test"))
add("testImplementation", kotlin("test"))
}
}
}
}

Окончательный результат ⬇️

Смотреть

Читать полностью…

Android разработка

Что отличает архитектурные паттерны MVC, MVP, MVVM, MVVM-C и VIPER друг от друга?

Эти архитектурные паттерны являются одними из наиболее часто используемых при разработке приложений, как на платформах iOS, так и Android. Разработчики внедрили их, чтобы преодолеть ограничения предыдущих паттернов. Чем же они отличаются друг от друга?

- MVC, самый старый паттерн, появился почти 50 лет назад.
- В каждом паттерне есть "представление" (V), отвечающее за отображение содержимого и прием пользовательского ввода
- Большинство паттернов включают "модель" (M) для управления бизнес-данными.
- "Контроллер", "презентатор" и "представление-модель" - это трансляторы, которые являются посредниками между представлением и моделью ("сущность" в паттерне VIPER).
- Эти трансляторы могут быть достаточно сложными в написании, поэтому были предложены различные паттерны, позволяющие сделать их более удобными в эксплуатации

От себя: имейте в виду, что это не исчерпывающий список архитектурных паттернов. Среди других известных паттернов можно отметить Flux и Redux.

@android_its

Читать полностью…

Android разработка

📱 Автоматизация скриншот-тестирования предварительных просмотров Compose с использованием отражения

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

Showkase

Одним из способов автоматизации скриншот-тестирования является использование Showkase  — библиотеки от Airbnb, предназначенной для генерации веб-компонентов, а также позволяющей с помощью Paparazzi автоматически тестировать все методы, аннотированные @Preview. Вот только для этого придется добавить Showkase в качестве зависимости для каждого модуля, в котором есть предварительные просмотры, требующие тестирования, что увеличит время сборки всех модулей, так как Showkase опирается на генерацию кода. Поэтому использование Showkase только для скриншот-тестов может оказаться не лучшим решением, поскольку это не основная функция библиотеки.

Отражение

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

Для тестов мы будем использовать библиотеку Paparazzi, разработанную Cashapp. Главное ее преимущество — отсутствие необходимости в эмуляторе для выполнения тестов, что делает их более быстрыми и надежными.

Однако предлагаемое решение может работать и с другими библиотеками скриншот-тестирования. Если вам интересны альтернативы, загляните в этот Github-репозиторий. Здесь представлено много полезной информации обо всех доступных вариантах скриншот-тестирования в Android, включая подробные описания и кейсы реализации.

Пример проекта

📌 Читать дальше

@android_its

Читать полностью…

Android разработка

🖥 Список полезных опенсорс проектов по Jetpack Compose

1. klokk
Кинетические часы, которые сделаны с использованием Jetpack Compose Desktop. В документации вы можете прочитать о вдохновении проекта и посмотреть процесс разработки. Вы также можете внести свой вклад в проект.
Проект: https://github.com/theapache64/klokk

2. MovieCompose
Это демонстрационное приложение, основанное на современном технологическом стеке Android, которое в основном использует Jetpack Compose UI и Movie DB API. 100% Kotlin, Coroutines, Flow, Hilt, MVVM, паттерн репозитория и т.д. Документация хорошо написана и широко описывает технологический стек.
Проект: https://github.com/skydoves/MovieCompose

3. NewtonsTimer
Проект, подготовленный специально для AndroidDevChallenge. Это приложение Simple Timer, вдохновленное колыбелью Ньютона. В README дается хорошее объяснение мотивации проекта. Автор также проделал хорошую работу, объясняя основные моменты и давая ссылки на код. Очень вдохновляюще!
Проект: https://github.com/MaciejCiemiega/NewtonsTimer

4. Flux
Flux — это красивое погодное приложение, которое показывает, как рисовать динамические пейзажи с несколькими слоями, которые меняются в зависимости от фазы дня. Оно опирается на Jetpack Compose Canvas и поддерживает светлую/темную тему. В целом, это отличный учебный материал!
Проект: https://github.com/fidloo/flux

5. Create Compose App
Это действительно классный инструмент, создающий шаблон приложения для Android, Web, Desktop и Chrome, написанного на Jetpack Compose. Он избавляет вас от трудоемкой установки и настройки.
Созданное приложение поддерживает архитектуру MVVM, Hilt как Dependency Injection Framework, Jetpack Navigation, Logger и типографику Google Sans. В шаблоне для десктопа поддерживается архитектура MVVM со структурой, похожей на Android (SingleActivity), Dagger 2 в качестве фреймворка Dependency Injection, навигация/маршрутизация с Decompose, иконки Launcher (для всех платформ), отдельный модуль данных, модульные и UI-тесты, логирование и шрифт Google Sans. Весьма впечатляюще!
Проект: https://github.com/theapache64/create-compose-app

6. McCompose
Это приложение для McDonald’s, созданное для демонстрации использования Jetpack Compose. Из-за того, что проекту уже 2 года, для его компиляции может потребоваться небольшой рефакторинг. Тем не менее, его стоит посмотреть.
Проект: https://github.com/hitanshu-dhawan/McCompose

7. Schedule Calendar
Это демонстрационный проект, который показывает горизонтальный календарь, показывающий события в хронологическом порядке.
Это не библиотека, а скорее проект для любопытных разработчиков, на что можно посмотреть и поучиться. К сожалению, README не содержит никакой информации.
Проект: https://github.com/halilozercan/compose-schedule-calendar

8. Wiggles
Еще одно приложение, подготовленное для Android Dev Challenge. Это приложение для усыновления собаки, реализованное с помощью Android Architecture Components, Compose Navigation и Material Components.
Хотя документация не очень полная, код достаточно понятен.
Проект: https://github.com/Spikeysanju/Wiggles

9. Roffu
Проект представляет собой интернет-магазин, специализирующийся на спортивной обуви от многих известных компаний с современным пользовательским интерфейсом и красивой анимацией
Проект: https://github.com/mustfaibra/RoFFu

10. ViMusic
С помощью этого приложения с открытым исходным кодом для Android можно стримить музыку с YouTube Music.
Проект: https://github.com/vfsfitvnm/ViMusic

@android_its

Читать полностью…

Android разработка

🔥 Дайджест полезных материалов из мира Android за неделю

Почитать:
Android Ktorfit+Compose
Миграция конфигурации сборки с Groovy на Kotlin
Библиотека Scout — быстрый и безопасный DI на Kotlin
Сервисы: строим масштабируемые и гибкие приложения с помощью чистой архитектуры
Мобильная разработка за неделю #508 (25 сентября — 1 октября)
Exploring the Power of Flutter Widgets
Turning my codepen into an actual app - Brick 1100
Automate Flutter app delivery to AppCenter with GitHub Actions
Parsing non-Latin based Twitch usernames in Kotlin
Tutorial To Add Real-time Call Features To Your Client App In 30 mins
Why Mobile Apps Get Rejected
【徵才】REMOTE远程: Web3/ AI/ Blochain/QA-测试/IOS/Android/JAVA/前端开发
How to Install Custom Android ROM
Is React Native the Future, or Is It Just Native?
Vyapar App: Empowering Small Business Financial Management

Посмотреть:
🌐 Разбор задачи с собеседования Data Science. Подготовка на практике (⏱ 26:12)
🌐 Cобеседование #Python топовый банк Goldman Sachs Associate на 12000 $ #задача #программирование (⏱ 01:00)
🌐 Facebook задача с собеседования на #Python на 120000 рублей #программирование #задача #код (⏱ 00:59)
🌐 Разбора задачи с собеседования #Golang (⏱ 00:22)
🌐 Django создание модели. Вывод даных на страницу (⏱ 13:01)
🌐 Какие проблемы могут возникать с безопасностью в мобильных приложениях — Андрей Цуриков, Тинькофф (⏱ 36:30)
🌐 Как ускорить сборку проекта и не остановить разработку — Сергей Ерохин, Тинькофф (⏱ 37:49)
🌐 Дизайнеры. Михаил Наер, Тинькофф — Как это работает #7 (⏱ 01:18:26)

Хорошего дня!

@android_its

Читать полностью…

Android разработка

Pachli - это полнофункциональный Android-клиент.

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

🐱 GitHub

🔗F-droid

🌐Site

@android_its

Читать полностью…

Android разработка

🔥 Дайджест полезных материалов из мира Android за неделю

Почитать:
Дайджест мобильной разработки за август
Реализуем современный UI на Jetpack Compose
«Подарил удочки и попрощался с друзьями на год»: как я стал Android-разработчиком, отказавшись даже от прогулок
Мобильная разработка за неделю #506 (11 — 17 сентября)
Understanding Stateful vs. Stateless Widgets in Flutter
#11 Example of Views & View Groups in android | Android Studio Tutorial | SoftwareTechIT
Why Should Startups Develop a React Native App?
Stop Using Result Wrappers In Your Reactive Return Types
#10 Introduction to Views & View groups |Android Studio Tutorial| #softwaretechit
#9 Example Of Fragment in android | Android Studio Tutorial| #SoftwareTechIT
Android Application(Shot badges notification)
Android Application(Shot badges notification)
Integrating Android MRZ Recognition in .NET MAUI: From AAR Files to a NuGet Package to a Complete App
Using setState for Simple State Management in Flutter

Посмотреть:
🌐 Python Matplotlib. Визуализация данных на PRO уровне. (⏱ 24:43)
🌐 Поиск мотивации. Ментор же решит всё. Что мне делать (⏱ 21:39)
🌐 Собеседование на Mobile Developer. Алексей Панов, Контур (⏱ 01:50:36)
🌐 Модерация приложений и игр в магазине. RuStore (⏱ 01:06:06)

Хорошего дня!

@android_its

Читать полностью…

Android разработка

Курс «Профессия Архитектор ПО» поможет вам систематизировать знания и получить новые навыки для перехода в профессию. За 4 месяца вы освоите лучшие практики и разберёте реальные кейсы от тимлидов «Альфа-Банка».

Что вам даст этот курс?

— Научитесь планировать архитектуру и выбирать стек в зависимости от задачи проекта.
— Сможете разделять систему на компоненты исходя из требований.
— Познакомитесь с фреймворками и паттернами API Gateway, CQRS и «Сага».
— Будете создавать безопасные приложения — работать с аутентификацией, SSL и TLS и строить интеграции.
— Научитесь презентовать архитектурные решения перед бизнесом и командой.

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

Спешите приобрести курс со скидкой!
Подробнее по ссылке https://epic.st/--So-

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

Читать полностью…

Android разработка

🤝 Создание собственной версии UseCase в 2023 году: гибкий и функциональный подход

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

В разработке программного обеспечения
UseCase  — это описание конкретного действия или взаимодействия, которое система или приложение выполняет для достижения определенной цели субъекта (пользователя или другой системы).
В нем описываются “шаги” и взаимодействия между различными компонентами, чтобы продемонстрировать, как конкретная функциональность используется в системе. UseCase часто используется для фиксирования “функциональных требований” и определения поведения системы с точки зрения ее пользователей.

Что такое UseCase в гибкой и функционально чистой архитектуре?
В контексте Fluent and Fun Clean Architecture (гибкой и функционально чистой архитектуры) UseCase служит более всеобъемлющей цели по сравнению с традиционным сценариями использования. Вместо того чтобы описывать функциональность исключительно с точки зрения пользователя, мы подходим к ней с точки зрения приложения при выполнении события или действия.

☝️Это означает, что UseCase не только описывает действия пользователя, но и представляет шаги, необходимые для достижения определенного результата при инициации события. Объединяя эти подходы, мы создаем выразительные и удобочитаемые UseCase, соответствующие требованиям приложения.

Как создать UseCase в рамках гибкой и функционально чистой архитектуры?
Прежде чем мы углубимся в особенности UseCase в контексте гибкой и функционально чистой архитектуры, разберемся с тем, как реализовать UseCase в рамках чистой архитектуры.

Для лучшего понимания рассмотрим простой пример UseCase в приложении электронной коммерции.

UseCase: Place Order (размещение заказа).
Действие: Клиент.
Описание: Этот UseCase представляет собой процесс размещения клиентом заказа на товар в приложении электронной коммерции.

Требования:
1. Клиент должен быть авторизован.
2. Корзина не должна быть пуста, чтобы можно было оформить заказ.
3. Сумма денег в кошельке клиента не должна быть меньше суммы заказанного товара.
4. Если все три условия соблюдены, необходимо обновить запас продукции.
5. После завершения оформления заказа корзина в приложении должна быть очищена.

Чтобы реализовать это все в рамках чистой архитектуры, вы, как правило, следуете структуре кода, подобной приведенной ниже.
class PlaceOrderUseCase(
private val userRepository: UserRepository,
private val productRepository: ProductRepository
) {
operator fun invoke(order: Order) {
if (userRepository.isLoggedIn()) {
val cart = userRepository.getCart()
if (cart.isNotEmpty()) {
if (userRepository.hasEnoughFunds(order.getTotalPrice())) {
productRepository.updateProductStock(order)
userRepository.clearCart()
} else {
throw InsufficientFundsException(
"Not enough funds in the wallet."
)
}
} else {
throw EmptyCartException("The cart is empty.")
}
} else {
throw NotLoggedInException("User is not logged in.")
}
}
}

Теперь разберем ее шаг за шагом, чтобы создать UseCase:

Читать

@android_its

Читать полностью…

Android разработка

Android: пошаговый курс для начинающих

1. Android Studio – установка, настройка эмулятора
2. Введение в XML, что такое View, теги и атрибут
3. Контейнеры - FrameLayout, LinarLayout. Отступы.
4. Верстаем экран по макету из Figma, ShapeDrawable
5. Ресурсы (res), квалификаторы, локализация, шрифты
6. Cтили, темы в приложении и их кастомизация
7. findViewById, ViewBinding, backing property

#video #android

https://www.youtube.com/watch?v=DzqfBxlvANQ&amp;list=PLgPRahgE-GctUcLMcQFvl00xsXqpNJOix

@android_its

Читать полностью…

Android разработка

🔥 Дайджест полезных материалов из мира: Android за неделю

Почитать:
Используем UI-тесты для поиска утечек
Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
Vivaldi 6.2 для Android — Внимание к деталям
Библиотека «Jetpack Compose» для начинающего Android-разработчика
Запускаем IDEA и CLion на Android
Мобильная разработка за неделю #503 (21 — 27 августа)
Coroutines are not just about concurrency
Labeling Multiple Barcodes with Augmented Reality and Dynamsoft Barcode Reader
KSP in Android projects
Android
Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
How to Create a Bluetooth LE Scanner for Android
Exploring Simple Widgets II: Autocomplete
Entorno de Desarrollo para empezar a desarrollar aplicaciones Moviles I
Why I Haven't Started Learning Kotlin Multiplatform Mobile Yet
Guide to Develop the Best White Label Taxi Dispatch System

Посмотреть:
🌐 Что нового в Android 14 для разработчиков (⏱ 36:32)
🌐 Cобеседование Android-разработчика. Максим Качинкин, Dodo Engineering (⏱ 01:44:13)
🌐 Как учиться правильно? Методы обучения ios и не только (⏱ 13:41)
🌐 Продвинутый парсинг на Python со сменой прокси (⏱ 10:27)
🌐 Уроки Golang с нуля /#25 - Интерфейсы (⏱ 10:51)
🌐 Многопоточный парсер на Python. ООП подход (⏱ 08:24)

Хорошего дня!

@android_its

Читать полностью…

Android разработка

Тинькофф ищет мобайл-разработчиков.

Если пишете для iOS или Android, участвуйте в Mobile Weekend Offer. Сможете пройти собеседование за выходные и получить оффер в течение трех дней.

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

Успейте оставить заявку до 13 сентября: https://l.tinkoff.ru/wo.mobile.23

Реклама АО «Тинькофф Банк»

Читать полностью…

Android разработка

🔥 Дайджест полезных материалов из мира : Android за неделю

Почитать:
Используем UI-тесты для поиска утечек
Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений
Vivaldi 6.2 для Android — Внимание к деталям
Библиотека «Jetpack Compose» для начинающего Android-разработчика
Запускаем IDEA и CLion на Android
Мобильная разработка за неделю #503 (21 — 27 августа)
Coroutines are not just about concurrency
Labeling Multiple Barcodes with Augmented Reality and Dynamsoft Barcode Reader
KSP in Android projects
Android
Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
How to Create a Bluetooth LE Scanner for Android
Exploring Simple Widgets II: Autocomplete
Entorno de Desarrollo para empezar a desarrollar aplicaciones Moviles I
Why I Haven't Started Learning Kotlin Multiplatform Mobile Yet
Guide to Develop the Best White Label Taxi Dispatch System

Посмотреть:
🌐 Dagger KSP | Замена Firebase | Ускорение тестов (⏱ 19:43)
🌐 Кодогенерация. KAPT. KSP. Manual DI (⏱ 57:57)
🌐 Cобеседование Android разработчика. Максим Качинкин, Dodo Engineering (⏱ 00:00)
🌐 Продвинутый парсинг на Python со сменой прокси (⏱ 10:27)
🌐 Уроки Golang с нуля /#25 - Интерфейсы (⏱ 10:51)
🌐 Многопоточный парсер на Python. ООП подход (⏱ 08:24)

Хорошего дня!

Читать полностью…

Android разработка

Droidian

Droidian - это дистрибутив GNU/Linux, разработанный на базе Debian, специально для использования на мобильных устройствах, основанных на Mobian.

Основная цель Droidian заключается в том, чтобы позволить пользователям запускать Debian на своих Android-телефонах.

Для достижения этой цели Droidian использует уже установленные и признанные технологии, такие как libhybris и Halium.

4pda ⬅️
Поддерживаемые устройства ⬅️

@android_its

Читать полностью…
Subscribe to a channel