Android разработка – Telegram
Android разработка
5.21K subscribers
442 photos
25 videos
1 file
547 links
все о Android разработке

@itchannels_telegram - 🔥 лучшие it каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - ml 📚

@pythonlbooks -📚books
Download Telegram
Как удаленно тестировать мобильные приложения?⚡️

Ребята из @Selectel запустили новый продукт – ферму мобильных устройств. Это инфраструктурное решение для удаленного тестирования и сборки приложений. С ней вам не нужны телефоны и эмуляторы — ферма предоставляет доступ к большой базе смартфонов с различными параметрами и может проводить широкий набор тестов.

Преимущества фермы мобильных устройств:

◽️Не нужно думать о передаче устройств между удаленными сотрудниками: подключайтесь одновременно с командой из любой точки мира.

◽️Комфортная работа на нескольких устройствах: вы можете запускать автотесты параллельно.

◽️Обслуживание и ремонт Selectel берет на себя.

Зарегистрируйтесь на бета-тест и получите месяц работы с одним устройством в подарок: https://slc.tl/m0vnl

Реклама ООО «Селектел» erid 2VtzquvUVH9
👍3🔥1
🎉Обновление Jetpack Compose <//>

Совсем надовно Jetpack Compose обновился до версии 1.6. Этот выпуск в основном посвящен улучшению производительности для повышения эффективни основных частей API. Что нового?

Улучшения производительности: Скорость прокрутки увеличена на 20%, а время запуска сократилось на 12%.
Улучшена производительность кода, сгенерированного Compose
Параметр includeFontPadding по умолчанию теперь false
Поддержка Drag and Drop

➡️Полный список изменений
➡️ Roadmap

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🥰4🔥1
Как и где запускать автотесты мобильных приложений, если их 1) ооочень много и 2) нужно получить результат быстро?

В тест-раннере параллельного запуска Emcee. Это продукт AvitoTech, который проводит тысячи нативных тестов за 15 минут. Для iOS и android. На железках и в облаке.

О том, как происходит android-тестирование, инженеры AvitoTech рассказали (и показали на демо-прогоне) в собственном образовательном сериале — avito.code.

Реклама ООО "Авито Тех", ИНН 9710089440 erid:LdtCKGMRc
🔥5👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Камерный митап для мобильных разработчиков, где каждый может предложить свой кейс для обсуждения по трем трекам: iOS, Android, Flutter.

Участники митапа — техлиды, руководители разработки и ведущие мобильные разработчики из команд Яндекс Go и Яндекс Про. В завершении вечера afterparty — нетворкинг, настолки, вкусная еда и напитки.

Место встречи: Москва-Сити, башня «Око»
Дата и время: 15 февраля, 18:30

Бесплатно. Количество мест ограничено. Регистрация обязательна

Подробнее

Реклама. ООО "Яндекс.Такси" ИНН 7704340310
3
#вопросы_с_собеседования

💻 Вопрос по Kotlin

Чем Any в Kotlin отличается от Object в Java?

Any не является полным аналогом java.lang.Object.

В Object 11 методов в классе, в Any только 3 метода: equals(), hashCode() и toString(). При импорте типов Java в Kotlin все ссылки типа java.lang.Object преобразуются в Any. Поскольку Any не зависит от платформы, он объявляет только toString(), hashCode() и equals() в качестве своих членов, поэтому, чтобы сделать другие члены java.lang.Object доступными, Kotlin использует функции расширения.

Несмотря на то, что классы Object и Any имеют сходства (корневые классы иерархии классов), они также имеют и отличия, связанные с языковыми особенностями Kotlin и Java:

Класс Any в Kotlin является не только базовым классом для пользовательских классов, но также и супертипом для всех не-nullable типов данных, включая примитивные. В то время как в Java, класс Object является базовым классом только для пользовательских классов.

Класс Any в Kotlin также имеет nullable версию Any?, которая является супертипом для всех nullable типов данных в Kotlin. В то время как в Java, класс Object не имеет nullable версии.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍41👎1
🔥 Дайджест полезных материалов из мира Android за неделю

Почитать:
Раскраска SVG картинки во flutter, и почему я решил отключить Impeller
Огромная шпаргалка с готовыми запросами SQL (SQLite)
Где изучать C# в 2024. Бесплатные курсы и полезные ресурсы
Удобство и/или безопасность? Tinkoff edition
Направо пойдешь — в бэкенд придешь, налево — в мобилки…
Копаемся в встроенном приложении камеры старого Xiaomi. Часть 1
Более правильный подход к подключению Yandex AppMetrica в React Native приложении
20 инструментов командной строки для мониторинга производительности Linux
Всего 37% российских онлайн-ресурсов доступны для незрячих людей
Лучшие бесплатные курсы С++ 2024
Convert KAPT to KSP - Room and Hilt Examples
The RecyclerView You Know in Jetpack Compose
Exploration of Flutter Hot Update Technology
I need help!
Unknown Resources
The Impact of IoT on Mobile Application Development
Share data natively from mobile to PWA app
Android 14 Adaptation Guide: Practical Solutions for Upgrading targetSdkVersion to 34
Android Activity Lifecycle
Compiling Android in Jenkins In Docker (A bitter victory)

Посмотреть:
🌐 Задание с собеседования Golang разработчика. Разбор важных тем. ( 14:24)
🌐 100 вопросов с собеседований Python. Повышаем уровень. ( 47:05)
🌐 Разбираем Методы списков #Python через инвентарь игры. #программирование #yotube #код #код #питон ( 00:51)
🌐 Apple Vision Pro вызвал смех у первых покупателей! Vr шлем за 500 000 #apple #YouTube #applevision ( 00:34)
🌐 🐍 99.999% процентов разработчиков Python не знают этого ( 00:33)
🌐 👉#Python math/case - самый простой способ обрабатывать пользовательский ввод #программирование ( 00:56)

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

@android_its
👍4🔥32
Forwarded from Java
🖥Oblivion - Unofficial Warp Client for Android

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

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

Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🔥1
🔥 Дайджест полезных материалов из мира 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
👍61🔥1
🖥 Гайл по Реврерс-инжинирингу Android-приложений

Apk.sh — это полезный Bash-скрипт, который облегчает реверс-инжиниринг Android-приложений, автоматизируя некоторые повторяющиеся задачи, такие как извлечение, декодирование, восстановление и исправление APK.

Он в использует apktool для дизассемблирования, декодирования и восстановления ресурсов и немного bash для автоматизации процесса инъекции гаджетов frida.

Особенности
– патчинг APK для загрузки frida-gadget.so при запуске
– поддержка пакетов приложений/разделенных APK
– разборка ресурсов до почти оригинального вида с помощью apktool
– восстановление декодированных ресурсов обратно в бинарный APK/JAR с помощью apktool
– подпись apk с помощью apksigner
– поддержка нескольких архитектур (arm, arm64, x86, x86_64)
– не требуется рутованное Android-устройство
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок по анимации

Рассматриваем доступные нам AnimationSpec: tween, spring, keyframes, repeatable. Там в целом и так все понятно, но пропустить эту тему я не мог.

Плюс, довольно подробно разбираем, что такое Easing в tween. И создаем свою несложную реализацию этого механизма.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
👍9🔥21
​​Old but gold: ​Android-разработка для новичков

Добротный материал с подборкой 20+ ресурсов для старта в карьере мобильного разработчика. Подборка хоть и 2023 года, но начинающим — самое то: https://habr.com/ru/companies/yandex_praktikum/articles/738638/

#android #начинающим
👍42🔥1
🖥 Некоторые подробности о 1 предварительной версии Android 15 для разработчиков

Проект доступен только на смартфонах и планшетах Pixel (6/6 Pro/6a/7/7 Pro/7a/Tablet/Fold/88 Pro). Также Developer Preview можно протестировать через эмулятор Android Studio.

Обновления в Android 15 Developer Preview 1:
🔵регулировка яркости в панели быстрых настроек теперь работает с тактильной отдачей при перемещении ползунка;

🔵можно отключить виброотклик при работе с виртуальной клавиатурой;

🔵функция «Снижение громкости уведомлений» для приложений, которые присылают много оповещений подряд;

🔵появились новые варианты взаимодействия с программной платформой на устройствах с гибким дисплеем;

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

🔵новая версия Privacy Sandbox для ограничения работы приложений с таргетированной рекламой;

🔵новая объединенная платформа Health Connect, FileIntegrityManager с fs-verity в ядре Linux (криптошифрование для защиты данных);

🔵теперь можно демонстрировать только экран приложения, а не всего интерфейса устройства;

🔵различные улучшения для разработчиков.

Процесс тестирования Android 15 разбит на три этапа: Developer Preview — два релиза (в феврале и марте); Beta — два релиза (в апреле и мае); Platform Stability — два релиза (в июне и июле).

Финальная версия Android 15 выйдет в конце лета или начале осени 2024 года, подробнее почитать можно [тут] и [тут]

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥21
🖥 Compose Investigator — полезный инструмент для Android-разработчика

Compose Investigator может выполнять следующие задачи:
🔵сообщает, если Composable пропущен во время рекомпозиции

🔵сообщает, если аргументы составного элемента изменились и были перекомпонованы. Он также может сравнить значения до и после изменения

🔵сообщает, были ли изменены значения состояния внутри Composable. Также можно сравнить значения до и после изменения

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

🖥 GitHub

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
🖥 𝗧𝗲𝘀𝘁𝗚𝗲𝗻-𝗟𝗟𝗠 для написания тестов Kotlin 💻

Meta разработала 𝗧𝗲𝘀𝘁𝗚𝗲𝗻-𝗟𝗟𝗠 — инструмент, использующий 2 LLM Meta, для дополнения существующих тестовых классов Kotlin для кода Android.
Цель 𝗧𝗲𝘀𝘁𝗚𝗲𝗻-𝗟𝗟𝗠 — генерировать дополнительные тестовые случаи, охватывающие ранее пропущенные сценарии, и улучшить общее покрытие тестами.

TestGen-LLM представляет собой пример гарантированной автономной разработки программного обеспечения на основе LLM (Assured Offline LLMSE), сфокусированной на внедрении LLM в более широкий рабочий процесс разработки программного обеспечения, чтобы рекомендовать комплексные улучшения программного обеспечения (и чтобы со временем заменить всех и захватить мир)

TestGen-LLM гарантирует, что сгенерированные тестовые классы не только корректно построены, но и надежно проходят все тесты, не внося ненужной "шелухи", и улучшают покрытие.
Это отличает TestGen-LLM от других методов генерации кода и тестов на основе LLM.

📁Подробнее можно ознакомиться в этой статьей Arxiv

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2
📱Android Studio Iguana стала стабильной

На днях Google выпустил Android Studio Iguana в канале стабильных релизов. Благодаря таким функциям, как поддержка системы контроля версий в App Quality Insights, новой встроенной поддержки создания базовых профилей для приложений Jetpack Compose, эта версия должна улучшить ваш рабочий процесс разработки и оптимизировать ваши приложения.

Среди новых функций Android Studio Iguana:
*️⃣Интеграция системы контроля версий в App Quality Insights
*️⃣Просмотр вариантов сбоев Crashlytics в App Quality Insights
*️⃣Проверка доступности и адаптивности дизайна Jetpack Compose
*️⃣Прогрессивный рендеринг для предварительного просмотра Compose
*️⃣Обновленная платформа Intellij
*️⃣Шаблоны для Baseline Profiles
*️⃣Проверка изменений конфигурации с Espresso Device API
*️⃣Pixel 8 и Pixel 8 Pro в Android Emulator (34.2)
*️⃣Поддержка Gradle Version Catalogs
*️⃣Интеграция Google Play SDK Index
*️⃣Предупреждение о неподдерживаемой compileSdk

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

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥21
📱Советы по Android-разработке

Узнали у middle и senior разработчиков, что нужно учить каждому Android-разработчику. Спросили, какие фреймворки, библиотеки и инструменты безнадёжно устарели, а какие актуальны.

〰️ Какие библиотеки, инструменты, фреймворки Android уже устарели?
Андроид развивается очень динамично, поэтому, многое из того, что было популярно 5 лет назад уже не используется.
Конечно же сразу приходит на ум RxJava, про нее был каждый второй доклад на любой конференции 5-6 лет назад. А теперь ее изредка спрашивают на собеседованиях. На замену ей пришли Kotlin Coroutines.
Java как язык разработки под андроид остался, наверное, только в каких-то старых проектах-динозаврах. Kotlin это новый стандарт уже лет 6.
С появлением Jetpack Compose UI код использующий стандартные Android Views стал легаси. Многие приложения сейчас Compose First, и все новые фичи тоже разрабатываются на Compose.
Архитектура презентационного слоя так же изменилась, всё меньше можно увидеть MVP, а MVVP и MVI стали де факто стандартами разработки.

〰️ Какие библиотеки Android нужно знать в 2024 году?
Если мы возьмем более менее стандартное приложение со стандартными подходами, то наверняка там будут эти библиотеки: Retrofit 2, Dagger2/Hilt, Kotlin Coroutines, Jetpack ViewModel, Room, Lifecycle. Но стоит помнить, что библиотеки приходят и уходят, а фундаментальные знания остаются. Человеку, освоившему фундамент будет гораздо легче освоить какую-либо библиотеку.

〰️ Какие фреймворки Android нужно знать в 2024 году?
В Андроид немного фреймворков, наверное главный и самый нашумевший в последнее время это Jetpack Compose. Так же стоит знать архитектурные подходы MVI/MVVM, MVP, плюсы и минусы их работы.

〰️ Какие инструменты Android нужно знать в 2024 году?
Швейцарский нож Android разработчика в 2024 это Kotlin, Kotlin Coroutines, Jetpack Compose, MVVM/MVI, Google Jetpack Libraries, REST, Single Activity, Dagger 2, Retrofit 2. Зная этот стек можно будет легко разобраться в 95% приложений.

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥1
💻 Хорошо разбираешься в Kotlin? Готов по полочкам разложить, чем он отличается от Java? Проверь свои знания на этих 10 вопросах

Что из этого в настоящее время не поддерживается в Kotlin?
[x] JVM
[x] JavaScript
[x] LLVM
[_] .NET CLR

Какое выражение Kotlin эквивалентно такому int x = a ? b : c из Java?
[x] val x = a ?: b, c
[x] val x = if (a) b : c
[x] val x = a ? b : c
[_] val x = if (a) b else c

Что применимо для следующего объявления класса?
class Person (val name: String)
[x] Он package-private
[x] Он может быть расширен другими классами
[_] Он public
[x] У него приватное свойство "name"

Есть ли у Kotlin примитивные типы данных, такие как int, long, float?
[x] Нет, Kotlin не имеет и не использует примитивные типы данных.
[_] Нет, не на уровне языка. Но компилятор Kotlin использует примитивы JVM для лучшей производительности.
[x] Да, но Kotlin всегда конвертирует их в не примитивные аналоги.
[x] Да, Kotlin в этом отношении похож на Java.

Что такое to в этом ниже примере:
val test = 33 to 42
[_] Инфиксная функция, создающая пару (33, 42)
[x] Ключевое слово Kotlin для создания пары (33, 42)
[x] Ключевое слово для создания диапазона от 33 до 42
[x] Опечатка

Какое из объявлений функций является валидным?
[x] int sum(int a, int b)
[x] int sum(a: Int, b: Int)
[x] function sum(a: Int, b: Int): Int
[_] fun sum(a: Int, b: Int): Int

В чем ключевое отличие Iterable<T> и Sequence<T> в Kotlin?
[x] Iterable<T> работает только с immutable коллекциями, Sequence<T> применим к mutable
[x] Нет никакой разницы, т. к. Sequence<T> аналог Iterable<T>
[_] Последовательности обрабатываются лениво, итераторы жадно
[x] Последовательности обрабатываются по очереди, итераторы параллельно (многопоточно)

Чего не предлагает dataclass?
[x] Авто-генерируемый метод toString()
[x] Метод copy(...), для создания копии экземпляров.
[_] Автоматическое преобразование из/в JSON
[x] Авто-генерируемые методы hashCode() и equals()

Что выведет следующий код?
     
val listA = mutableListOf(1, 2, 3)
val listB = listA.add(4)
print(listB)

[x] [1, 2, 3, 4]
[_] True
[x] Ничего, тут ошибка компиляции
[x] Unit

В чем разница между a и b?
        
var a: String? = "KotlinQuiz"
var b: String = "KotlinQuiz"

[x] a является volatile, как в Java
[x] b является final и не может быть изменено
[x] a является final и не может быть изменено
[_] b никогда не сможет стать null

Ну как? 10 из 10?

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥1
📱 Apple пообещала упростить перенос данных с iPhone на Android-устройства в ЕС к осени 2025 года

Apple намерена упростить переход с iPhone на Android-устройства в соответствии с требованиями Закона о цифровых рынках ЕС, который уже вступил в силу.
Производитель изложил свой план относительно соблюдения нового закона ЕС в документе. Новое положение направлено на усилении конкуренции в экосистеме приложений и требует от Apple ослабления контроля над App Store и iOS.

Мера Apple должна помочь поставщикам других операционных систем создать более эффективные решения для передачи данных с iPhone на смартфон стороннего производителя. Корпорация не использует в документе название Android, однако мобильная ОС Google получит наибольшую выгоду от нововведения.

В конце 2024 года или начале 2025 года Apple также представит инструмент для экспорта данных браузера в новый браузер на том же устройстве.

В настоящее время пользователи Android могут использовать iOS-приложение — Switch to Android — для переноса важных данных, включая контакты, календари, фотографии, видео, сообщения и многое другое. Однако некоторые менее важные данные по-прежнему нельзя экспортировать.

@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🤮1
📱Неплохой ролик с обзором возможностей фреймворка Ultron

Ultron используется для тестирования Android UI и Compose
Некоторые из преимуществ Ultron:
Исключительная поддержка Compose
Готовая генерация отчета Allure
Простой синтаксис
Архитектурный подход к разработке UI-тестов
Возможность легко расширять фреймворк своими собственными операциями
Ускоренное выполнение операций в UI Automator
Можно создавать кастомные assertion'ы

Выглядит довольно перспективно, можете затестить)

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1