This media is not supported in your browser
VIEW IN TELEGRAM
Droidian
Droidian - это дистрибутив GNU/Linux, разработанный на базе Debian, специально для использования на мобильных устройствах, основанных на Mobian.
Основная цель Droidian заключается в том, чтобы позволить пользователям запускать Debian на своих Android-телефонах.
Для достижения этой цели Droidian использует уже установленные и признанные технологии, такие как libhybris и Halium.
4pda⬅️
Поддерживаемые устройства⬅️
@android_its
Droidian - это дистрибутив GNU/Linux, разработанный на базе Debian, специально для использования на мобильных устройствах, основанных на Mobian.
Основная цель Droidian заключается в том, чтобы позволить пользователям запускать Debian на своих Android-телефонах.
Для достижения этой цели Droidian использует уже установленные и признанные технологии, такие как libhybris и Halium.
4pda
Поддерживаемые устройства
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
Ускоряем сборку за счёт миграции с kapt на ksp
#android #build #kapt #ksp #performance
https://habr.com/ru/companies/hh/articles/755952/
#android #build #kapt #ksp #performance
https://habr.com/ru/companies/hh/articles/755952/
Хабр
Ускоряем сборку за счёт миграции с kapt на ksp
Всем привет, меня зовут Катя Гущина, я Android-разработчик hh.ru. Хочу поделиться нашим опытом отказа от kapt в пользу ksp для обработки аннотаций и ускорения скорости сборки в большом проекте. В этой...
👍4🔥1
🔥 Дайджест полезных материалов из мира : 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)
Хорошего дня!
Почитать:
— Используем 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)
Хорошего дня!
👍6❤3🥰2
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Lottielab теперь многопоточный
Lottielab - редактор Lottie анимаций, что позволит вам работать с ними эффективнее. Проект пока в Beta
Хотели ускорить анимацию в приложениях на Android? Библиотека Lottie теперь поддерживает многопоточность!
В статье подробно объясняют, как новая настройка asyncUpdates переносит ресурсоёмкую фазу update в фоновый поток.
#android #tooling #animation
▪Github
▪Lottielab
@android_its
Lottielab - редактор Lottie анимаций, что позволит вам работать с ними эффективнее. Проект пока в Beta
Хотели ускорить анимацию в приложениях на Android? Библиотека Lottie теперь поддерживает многопоточность!
В статье подробно объясняют, как новая настройка asyncUpdates переносит ресурсоёмкую фазу update в фоновый поток.
#android #tooling #animation
▪Github
▪Lottielab
@android_its
👍5❤1🔥1
🔥 Дайджест полезных материалов из мира: 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
Почитать:
— Используем 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
👍6❤3🔥2
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&list=PLgPRahgE-GctUcLMcQFvl00xsXqpNJOix
@android_its
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&list=PLgPRahgE-GctUcLMcQFvl00xsXqpNJOix
@android_its
👍11❤2🔥2
🔥 Дайджест полезных материалов из мира : 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)
Хорошего дня!
Почитать:
— Есть ли смысл начинать писать мобильное приложение не на 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)
Хорошего дня!
👍5❤1🔥1
Зачем создавать собственную версию 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2👎1
Теперь можно безопасно разблокировать зашифрованный LUKS на GNU/Linux с помощью режима USB-аксессуара, без необходимости вводить пароль.
👀 GitHub
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
Курс «Профессия Архитектор ПО» поможет вам систематизировать знания и получить новые навыки для перехода в профессию. За 4 месяца вы освоите лучшие практики и разберёте реальные кейсы от тимлидов «Альфа-Банка».
Что вам даст этот курс?
— Научитесь планировать архитектуру и выбирать стек в зависимости от задачи проекта.
— Сможете разделять систему на компоненты исходя из требований.
— Познакомитесь с фреймворками и паттернами API Gateway, CQRS и «Сага».
— Будете создавать безопасные приложения — работать с аутентификацией, SSL и TLS и строить интеграции.
— Научитесь презентовать архитектурные решения перед бизнесом и командой.
В конце курса — разработаете архитектуру приложения по брифу от заказчика. Такой опыт поможет вам брать на себя ответственность за ведение проектов и быстро получить повышение на работе.
Спешите приобрести курс со скидкой!
Подробнее по ссылке https://epic.st/--So-
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Что вам даст этот курс?
— Научитесь планировать архитектуру и выбирать стек в зависимости от задачи проекта.
— Сможете разделять систему на компоненты исходя из требований.
— Познакомитесь с фреймворками и паттернами API Gateway, CQRS и «Сага».
— Будете создавать безопасные приложения — работать с аутентификацией, SSL и TLS и строить интеграции.
— Научитесь презентовать архитектурные решения перед бизнесом и командой.
В конце курса — разработаете архитектуру приложения по брифу от заказчика. Такой опыт поможет вам брать на себя ответственность за ведение проектов и быстро получить повышение на работе.
Спешите приобрести курс со скидкой!
Подробнее по ссылке https://epic.st/--So-
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
This media is not supported in your browser
VIEW IN TELEGRAM
— это многофункциональный набор инструментов для прокси на 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
🌐 F-droid
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🔥1
🔥 Дайджест полезных материалов из мира 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
Почитать:
— Дайджест мобильной разработки за август
— Реализуем современный 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
👍4❤2🔥2
🔥 Дайджест полезных материалов из мира 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
Почитать:
— Возможна ли жизнь после плеймаркета?
— 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
👍7❤1🔥1
Pachli - это полнофункциональный Android-клиент.
- Разработан с использованием кооперативной модели разработки.
- Пользователи могут читать, отвечать, фильтровать, публиковать, отмечать избранные и продвигать сообщения.
- В приложении реализованы функции автономного чтения, черновиков сообщений и планирования постов.
- Поддерживается работа с несколькими аккаунтами.
- Есть возможность настройки тем и шрифтов.
- Пользователи имеют контроль над уведомлениями.
- В приложении можно просматривать популярные посты, ссылки и хэштеги.
🐱 GitHub
🔗F-droid
🌐Site
@android_its
- Разработан с использованием кооперативной модели разработки.
- Пользователи могут читать, отвечать, фильтровать, публиковать, отмечать избранные и продвигать сообщения.
- В приложении реализованы функции автономного чтения, черновиков сообщений и планирования постов.
- Поддерживается работа с несколькими аккаунтами.
- Есть возможность настройки тем и шрифтов.
- Пользователи имеют контроль над уведомлениями.
- В приложении можно просматривать популярные посты, ссылки и хэштеги.
🔗F-droid
🌐Site
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥1
Значительно ускоряем сборку проектов
В этой статье автор подробно разбирает, как устроена оптимизация компиляции в Gradle и почему она работает быстрее, чем в других системах сборки типа Bazel.
Автор раскроет, что такое интерфейс бинарных приложений (ABI), «заголовочные jar-файлы» и как они используются для избежания повторной компиляции.
📌 Читать
В этой статье автор подробно разбирает, как устроена оптимизация компиляции в Gradle и почему она работает быстрее, чем в других системах сборки типа Bazel.
Автор раскроет, что такое интерфейс бинарных приложений (ABI), «заголовочные jar-файлы» и как они используются для избежания повторной компиляции.
📌 Читать
❤4👍3🔥1
🔥 Дайджест полезных материалов из мира 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 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
👍5❤2🔥1
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥1🥰1
🔥 Дайджест полезных материалов из мира 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)
Хорошего дня!
Почитать:
— Определение произвольной точки на полигоне. 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)
Хорошего дня!
👍5❤1
Скриншот-тестирование — ценный метод проверки пользовательского интерфейса и предотвращения регрессий при обновлении экранов и компонентов. Однако, как и любой вид тестирования, он требует значительных временных затрат на написание и сопровождение тестов.
Showkase
Одним из способов автоматизации скриншот-тестирования является использование Showkase — библиотеки от Airbnb, предназначенной для генерации веб-компонентов, а также позволяющей с помощью Paparazzi автоматически тестировать все методы, аннотированные @Preview. Вот только для этого придется добавить Showkase в качестве зависимости для каждого модуля, в котором есть предварительные просмотры, требующие тестирования, что увеличит время сборки всех модулей, так как Showkase опирается на генерацию кода. Поэтому использование Showkase только для скриншот-тестов может оказаться не лучшим решением, поскольку это не основная функция библиотеки.
Отражение
Альтернативным подходом является использование отражения для поиска всех предварительных просмотров во время выполнения и динамического создания тестов для них. В этой статье предлагается реализация, которая, в отличие от базовой, является более гибким решением, предусматривающим дополнительные граничные случаи.
Для тестов мы будем использовать библиотеку Paparazzi, разработанную Cashapp. Главное ее преимущество — отсутствие необходимости в эмуляторе для выполнения тестов, что делает их более быстрыми и надежными.
Однако предлагаемое решение может работать и с другими библиотеками скриншот-тестирования. Если вам интересны альтернативы, загляните в этот Github-репозиторий. Здесь представлено много полезной информации обо всех доступных вариантах скриншот-тестирования в Android, включая подробные описания и кейсы реализации.
Пример проекта
📌 Читать дальше
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥2
Полезный репозиторий, в котором представлены все основные принципы чистой архитектуры: разделение ответственности, слоев, представления и данных.
Проект написан на Kotlin с применением Jetpack Compose и Coroutines. В нём есть юнит-тесты, интеграционные и анализ качества кода.
• Github
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2❤1