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 за неделю

Почитать:
Flutter и ГОСТ TLS
Трагические микрозаймы, украденные креды: какие Android-зловреды мы обнаружили в официальных маркетах
Двигай рукой справа налево: адаптация интерфейса в Android приложении под RTL в XML и Jetpack Compose
Создание кастомного React Native компонента Switch с помощью библиотек Reanimated и Gesture Handler (Часть 2)
Как реализовать App shortcuts в Android
Что ждёт мобильную разработку в 2024 году
Собирательный образ Junior Android Developer. Какой он в 2024?
Техническое собеседование инженеров мобильной разработки в RuStore
Изи freestyle android приложения на Kivy (Python), Google collab и ваш не любимый ChatGPT
Мобильная разработка за неделю #525 (5 — 11 февраля)
A step-by-step tutorial in codelab format for Android UI testing
Power your Flutter App with Gemini AI ✨
Testing with Accessibility Scanner
A bad and better unit test example for Android network layer with Retrofit | Video
Should I update the Kotlin version of the Android app?
Top 10 Healthcare App Development Tips & Tricks in 2024
Efficient File Transfer from Android to Mac Using ADB

Посмотреть:
🌐 C# полный курс 2024. Урок 7 Условия (⏱ 15:06)
🌐 Телеграм бот приема заявок и рассылок! Огромный прирост подписчиков! (⏱ 17:10)
🌐 Запрещенный синтаксис #Python, за который вас уволят! (⏱ 00:50)
🌐 C# полный курс 2024. Урок 6: Ссылочные типы переменных c# (⏱ 05:42)
🌐 C# полный курс 2024. Урок 5: Переменные (⏱ 10:52)
🌐 C# полный курс 2024. Урок 8 Switch Case (⏱ 08:45)
🌐 Полное собеседование React разработчика 2024🧑🏻‍💻 (⏱ 01:09:44)

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

@android_its

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

Android разработка

🤨Какую архитектуру выбрать — с единой или множеством Activity?

В постоянно развивающейся сфере разработки Android-приложений приходится принимать ответственные решения, определяющие пользовательский опыт и общую архитектуру приложения. Одним из таких решений является выбор структуры Activity — фундаментальных строительных блоков любого Android-приложения.
Перед разработчиками возникает дилемма: упрощенный подход с единой Activity (Single Activity), включающей множество Фрагментов, или разрозненная природа множества Activity (Multiple Activities), каждая из которых представляет собой отдельную часть функциональности приложения.

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

В Android-разработке решение об использовании единой или множества Activity зависит от сложности и структуры приложения. У обоих подходов есть свои преимущества и варианты применения.

📌 Рассмотрим

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

Android разработка

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

Почитать:
Механизм экспорта растровых изображений в Figma: как изменяется качество изображения
Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
Мобильная разработка за неделю #517 (27 ноября — 3 декабря)
Видео-сообщение как в Telegram. Часть третья — Контролы и раскрытое состояние
Видео-сообщение как в Telegram. Часть вторая — Оптимизация
Видео-сообщение как в Telegram. Часть первая — Список видео
Diving into Kotlin .apply{} function
My video on how I am organizing my Jetpack Compose code
Implementing View Binding in Fragments with Nav Graph & RecyclerView in Android Studio using Kotlin: Comprehensive Tutorial
Kotlin: Fungsi
Entendendo RecyclerView de Uma Vez Por Todas
Using Golang + Gomobile To Build Android Application (with code)
Clean Architecture for Android MVI
The architectural patterns I am using to better organize my Jetpack Compose code

Посмотреть:
🌐 Урок 8: setOnClickListener() - обработка нажатий, property access | Курс Android на Kotlin c нуля
🌐 Задача: Взлом замка на #Python (⏱ 01:00)
🌐 Операционные системы — Как это работает #10 (⏱ 01:18:16)

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

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

Android разработка

Первый мобильный митап Тинькофф в Омске?

Да! И проведет команда его 14 декабря в пространстве «Рига-Москва». Для первой встречи с мобильными разработчиками ребята подготовили два крутых кейса:

— сначала расскажут про эффективность Redux в iOS-разработке на примере приложения Тинькофф Инвестиций;
— а после обсудят разработку приложений для синхронизации смартфона с другими устройствами.

После докладов останутся понетворкать с участниками.

📆 Tinkoff Mobile Meetup, 14 декабря, «Рига-Москва». Не забудьте зарегистрироваться и позвать с собой коллег.

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

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

Android разработка

Школа мобильной разработки: Android

1. My first app: вводная про платформу
2. Kotlin
3. Базовые компоненты
4. Views & Layout
5. RecyclerView
6. Background Часть 1
7. Background Часть 2
8. Network
9. Storage
10. DI

#video #android

https://www.youtube.com/watch?v=Xfaqnj1egFI&list=PLQC2_0cDcSKAVl_3u-3ZrEW2UFBUjDD97

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

Android разработка

🤖 Как создать приложение Android за 7 шагов

Создать первое Android-приложение не так сложно, как может показаться.

В этом руководстве мы поможем вам создать первое Android-приложение и запустить его на телефоне.

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

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

Android был представлен в 2007 году вместе с основанием Open Handset Alliance (альянсом компаний по разработке открытых стандартов для мобильных устройств).

В нашей статье не будем углубляться в установку и настройку Android Studio и посчитаем что она уже установлена.

Создаем приложение Android
Шаг 1.
Дважды кликните на программу “Android Studio”.
Шаг 2. Кликните “New Project”.
Шаг 3. Выберите “Empty Activity”

📌 Далее

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

Android разработка

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

Почитать:
Kotlin под капотом: нюансы использования аннотаций
Пишем Kotlin DSL для графов навигации в домашних условиях
Дайджест мобильной разработки за октябрь
Статический анализатор Ktlint для Kotlin в Android
Большая дыра в безопасности Android: почему смартфоны с зеленым роботом подвержены кражам?
Мобильная разработка за неделю #515 (13 — 19 ноября)
Saving Simple Data in Android - SharedPreferences and DataStore APIs
Gestures in Jetpack compose — All you need to know – Part-2
Firebase and Kotlin: A Dynamic Duo for Modern App Development
100% Flakiness-free UI test automation with Kaspresso and Allure TestOps
Difference between “𝐈𝐧𝐯𝐚𝐥𝐢𝐝𝐚𝐭𝐞 𝐂𝐚𝐜𝐡𝐞𝐬 and 𝐑𝐞𝐩𝐚𝐢𝐫 𝐈𝐃𝐄 in Android Studio”?
💥Ini Caraku Meredirect User ke Aplikasi Android
Painless building of an Android package installer app
Downloading Files using Work Manager
Muay Thaideas: A Roundhouse Kickstart
Point, Shoot, and Detect: Object Detection with PyTorch Mobile

Посмотреть:
🌐 Эти фишки сделают твой Python код лучше🔥 (⏱ 18:27)
🌐 Мыслим как Platform Engineer — Дмитрий Кузнецов, Тинькофф (⏱ 29:45)

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

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

Android разработка

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

Почитать:
Погружение в Smali. Как выглядят Java и Kotlin со стороны
Как сделать автотесты гибкими и лаконичными
Защита кода приложения Android. Когда хотели как лучше, а вышло не очень
Сквозь дебри разработки, или как я пытался написать приложение
Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости
Разделение презентационного слоя фичи на модули в Android приложении
Как подружить JUnit 5 и Robolectric?
Как моя 9-месячная дочь заработала больше 1000 долларов в программе bug bounty
Приложение для мобильных бригад: «толстый клиент» и полмиллиона строк кода
Менеджер паролей SmallKey
Flutter's Provider: The Superhero of State Management! 🦸‍♂️🚀
Evolution of Android Development: a short summary
React Native e permissão para salvar arquivos com Android 13
How to Add Content Descriptions in Compose - A Guide for Android Devs
Object Relationships in Room ORM Library for Android
All You Need To Know About Modal Navigation Drawers In Jetpack Compose
do anyone know
Kotlin: Var dan Val
UI Components in React Native
Swift for Android: How to use Swift-Crypto with Android Studio

Посмотреть:
🌐 Пишем генератор Shorts видео на Python для заработка на YouTube. (⏱ 11:50)
🌐 Озвучка и генерации контента с помощью #Python и AI (⏱ 00:44)
🌐 Замена лица на любой фотографии с помощью #python БЕСПЛАТНО! (⏱ 00:59)
🌐 Android Storage. Обзор инструментария — Филипп Майдуров, Тинькофф (⏱ 30:24)

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

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

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 разработка

🖥Oblivion - Unofficial Warp Client for Android

Oblivion обеспечивает безопасный, оптимизированный доступ в интернет через приложение для Android, написанное на Java с использованием технологии cloudflare warp.

Используя bepass-sdk и WireGuard, инструмент предназначен для быстрого и конфиденциального доступа в интернет.

Github

@javatg

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

Android разработка

⚡️ PCAPdroid

PCAPdroid - это приложение на Android с открытым исходным кодом, которое позволяет отслеживать и экспортировать сетевой трафик вашего устройства.

Приложение имитирует VPN для захвата без полномочий root, но, в отличие от VPN, трафик обрабатывается локально на устройстве.

👉 Ссылка на GitHub

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

Android разработка

👨‍💻 Изучаем чистую архитектуру Flutter на практике

Архитектура приложений в разработке — это как план здания, который помогает понять, куда и как всё должно быть устроено. Главная её задача — разделить разные части работы, чтобы можно было удобнее работать по частям.

Если говорить про Flutter, хорошая архитектура позволяет держать отдельно логику приложения от того, что связано с телефонами и компьютерами, например, от экранов и кнопок. Это также делает тестирование кода проще, потому что можно проверять каждую часть по отдельности.

⏳ Содержание:

00:00 Введение
03:44 Добавление пакетов и создание структуры папок
06:33 Определение классов сущностей
09:05 Создание классов и моделей репозитория
11:27 Создание запросов к API с помощью Retrofit
14:40 Варианты использования
17:54 Создание блока
21:16 Инъекция зависимостей
24:32 Отображение новостей
29:20 Локальная база данных
33:39 Добавление методов базы данных в слои
36:45 Сохранение и удаление статьи из базы данных

#полезное

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

Android разработка

👣 google / comprehensive-rust: Это курс по Rust, используемый командой Android в Google. В нем вы найдете материал для быстрого обучения Rust.

https://github.com/google/comprehensive-rust

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

Android разработка

🦔 Попробуйте Android Studio Hedgehog одна из лучших IDE для разработки Android-приложений!

Что вас ждет?
🪲 Составление информации о состоянии в отладчике
💎 Показатели Android в App Quality Insights
🔼 Помощник по обновлению Android 14

Узнайте больше → https://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html

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

Android разработка

Добро пожаловать в мир SberAutoTech, где мы не просто разрабатываем беспилотную технологию и собственную электронику, а создаём завтра уже сегодня. Мы растём, расширяемся и не планируем останавливаться.

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

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

Давайте встретимся в мире инноваций и возможностей. Откликайтесь на вакансии и не упустите шанс — будущее уже здесь!

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

Android разработка

10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году

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

1. Горячая перезагрузка
Максимально используйте во Flutter функцию Hot Reload (горячая перезагрузка). Эта функция позволяет ускорить цикл разработки и сэкономить значительное количество времени при работе над новыми проектами.

2.
Стабильный канал Flutter
Чтобы воспользоваться преимуществами последних стабильных функций и исправлений, убедитесь в том, что подключены к стабильному каналу Flutter.

3. Организация исходного кода
Организация кода во Flutter играет ключевую роль в обеспечении производительности, эффективности и сопровождаемости.

4. Генераторы кода
Генераторы кода Flutter позволяют упростить написание и сопровождение кода.

5. Dart DevTools
Dart DevTools  — это надежный набор инструментов для отладки и оптимизации производительности на Flutter.

6. Виджеты Flutter с поддержкой жестов
Flutter включает широкий набор виджетов, позволяющих создавать привлекательные и отзывчивые пользовательские интерфейсы.

7.
Отзывчивый дизайн
Отзывчивый дизайн во Flutter необходим для создания пользовательских интерфейсов (UI), адаптивных к различным размерам и ориентациям экрана. Для этого Flutter предоставляет такие инструменты, как LayoutBuilder и MediaQuery.

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

9. Макеты Flutter
С помощью макетов Flutter можно создавать несколько видов макетов приложений — от простых до сложных.

10. Android Studio
Android Studio для работы с Flutter предлагает множество эффективных расширений, позволяющих сэкономить время разработчиков и повысить производительность. Это интегрированная среда разработки (IDE), которая предоставляет программистам доступ к широкому набору инструментов, повышающих уровень комфорта при создании сложных приложений.

📌 Подробнее

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

Android разработка

🤖 Как с легкостью создать установщик пакетов Android

Иногда требуется установить приложение на устройство не как пользователю, а как разработчику другого приложения. Возможно, вашему приложению, будь то магазин приложений или файловый менеджер, требуется самообновление, а вы его не опубликовали на Play Store. В любом случае вы обратитесь к стандартизированным интерфейсам (API) Android SDK, обеспечивающим установку APK (Android Package Kit). Но, как известно, Android-интерфейсы часто оказываются довольно трудоемкими в использовании.

Возьмем, к примеру, установку APK. Если вы вынуждены поддерживать версии Android ниже 5.0, то для разных версий Android придется использовать разные API: PackageInstaller для версий от 5.0 или какой-нибудь Intent с действием установки.

Способ Intent.ACTION_INSTALL_PACKAGE

Intent довольно прост в использовании. Достаточно создать его, запустить Activity для получения результата и обработать возвращенный код. Вот как обрабатывается установочный intent с помощью API AndroidX Activity Result:

// регистрация лаунчера в Activity или Fragment
val installLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
val isInstallSuccessful = result.resultCode == RESULT_OK
// затем проводятся действия в зависимости от полученного результата
}

// запуск intent, например, при нажатии на кнопку
val intent = Intent().apply {
action = Intent.ACTION_INSTALL_PACKAGE
setDataAndType(apkUri, "application/vnd.android.package-archive")
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true)
putExtra(Intent.EXTRA_RETURN_RESULT, true)
}
installLauncher.launch(intent)


Не забудьте объявить разрешение на установку в AndroidManifest:

Читать

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

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

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