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-приложения с помощью Kotlin

Некоторые мысли из статьи, и о чём вообще в ней речь:

Аудит приложения важен для выявления неявных деградаций в производительности.

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

Существующие инструменты Android Profile, Battery Historian и Systrace имеют свои минусы.

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

Systrace позволяет собирать и инспектировать время работы частей кода по всем процессам на девайсе.

Battery Historian нужен для получения дополнительной информации по работе приложения, такой как процент потребления батарейки и условия, влияющие на потребление.

В статье представлены коды для фиксации значений потребления CPU, памяти, сети и потребления батареи.

Кастомное решение имеет ряд преимуществ по отношению к Android Profiler, включая отсутствие крашей, замедлений приложения и гибкость в сборе метрик.

📎 Статья

@android_its

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

Android разработка

📱 Zxing QR сканер (Jetpack compose) | Android Studio & Kotlin

Годный контент!
В этом видео описывается создание простого приложения — сканера QR-кодов на Jetpack Compose и Android Studio при помощи библиотеки ZXing.
Параллельно добавляется Room + Hilt для записи отсканированных кодов в БД.

📎 Кликабельный план видео
📎 YouTube

@android_its

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

Android разработка

💻 Отличная шпаргалка по функциям в Kotlin

Держите отличную презентацию по функциям в Kotlin, которая поможет повторить самое важное
Затрагиваются такие темы:
— функция main, точка входа
— компактные функции
— лямбды и функции высшего порядка
— список фильтров
— нетерпеливые и ленивые фильтры

Описано подробно и понятно, рекомендую
📎 Сайт со слайдами

@android_its

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

Android разработка

💻 Отличная статья-презентация о работе с шаблонизаторами Kotlin

В статье рассматривается использование шаблонизатора Pebble для формирования HTML-документов и его особенности, включая поддержку фильтров, тегов и наследования шаблонов.

Описаны условные конструкции, проверки и наследование шаблонов в рамках использования шаблонизатора Pebble.

Обсуждаются принципы работы с шаблонами и передача списков данных в шаблоны.

Параллельно рассматриваются различные аспекты разработки приложений на Kotlin, включая императивный, объектно-ориентированный и функциональный синтаксис; рассматривается работа с функциями в Kotlin и их объектная природа.

Кроме этого обсуждается вопрос null-безопасности в Kotlin и удобные средства для обработки этой ситуации.

📎 Онлайн-презентация

@android_its

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

Android разработка

💻 Золотой век Kotlin, и какое будущее его ждёт

«В компании Infobip с 2017 года и до сегодняшнего дня идет золотой век Kotlin. Будет ли он продолжаться, зависит исключительно от JetBrains и их способности внедрять инновации в Kotlin»

Полезная статья, в которой затрагиваются важные вещи, автор рассуждает о том, почему одни технологии сменяют другие, почему взлетевшие Scala и Groovy не так популярны сегодня и т.д.

Разбираются достоинства и недостатки Kotlin:
Плюсы Kotlin
— Интероперабельность с Java
— Корутины
— Структура данных и сопоставление шаблонов
— Работа с Null
— Другие особенности

Минусы Kotlin
— Интероперабельность с Java
— Экосистема Kotlin
— Рабочая сила
— Отсутствие прогресса

📎 Статья

@android_its

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

Android разработка

Android 15 Developer Preview 2!

Google выпустили предварительную сборку Android 15 Developer Preview 2.

🔸 Добавлен интерфейс для работы с спутниковой связью. Теперь Android 15 поддерживает обмен сообщениями SMS, MMS и RCS через спутник.

🔸 Новый раздел - "Передача аудио". Предполагается, что пользователь сможет передавать звук через Bluetooth одновременно на несколько наушников и динамиков с поддержкой Bluetooth. Однако на данный момент эта функция не работает.

🔸 "Режим веб-камеры" теперь поддерживает режим HQ-качества изображения.

🔸 Обнаружение записи экрана. Теперь, если приложение записывает ваш экран, вы получите уведомление об этом.

🔸 В разделе "О приложении" появилась функция "Отправить в архив". Архивация позволяет освободить до 60% пространства, сохраняя личную информацию.

Более подробную информацию о других изменениях можно найти в блоге Google. Заводские образы доступны по ссылке (начиная с Pixel 6).

https://developer.android.com/about/versions/15/download

@android_its

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

Android разработка

💻 Работа с интерфейсами Kotlin: правильная инициализация

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

interface MyInterface {
fun myFunction()
}

class MyClass : MyInterface {
override fun myFunction() {
println("Пришло время действовать!")
}
}

val myObject = MyClass()
myObject.myFunction()

Помните: определите класс, который должен реализовывать интерфейс, а затем инициализируйте класс, создав его экземпляр.

📎 Читать подробнее

@android_its

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

Android разработка

Годная инфа для Android- и мобильных разрабов в целом

В этой таблице собраны особенности магазинов приложений, полезно учитывать при деплое

📎 А вот полезная статья в тему про деплой Flutter-приложений

@android_its

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

Android разработка

💻 Создание анонимного экземпляра интерфейса в Kotlin

▶️Если в двух словах, то для создания экземпляра анонимного интерфейса в Kotlin применяется объектное выражение. Определите интерфейс непосредственно при инициализации переменной так:

val myInterfaceInstance = object : MyInterface {
override fun myFunction() {
// Ваш код здесь
}
}

myInterfaceInstance.myFunction()


Здесь переменной myInterfaceInstance мы присваиваем объект, используя ключевое слово object :.
Далее указываем название интерфейса, а затем в фигурных скобках представляем реализацию необходимых функций с помощью переопределения.

📎 Читать подробнее

@android_its

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

Android разработка

📱Неплохой ролик с обзором возможностей фреймворка Ultron

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

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

@android_its

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

Android разработка

💻 Хорошо разбираешься в 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

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

Android разработка

📱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

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

Android разработка

🖥 Compose Investigator — полезный инструмент для Android-разработчика

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

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

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

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

🖥 GitHub

@android_its

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

Android разработка

​​Old but gold: ​Android-разработка для новичков

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

#android #начинающим

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

Android разработка

🖥 Гайл по Реврерс-инжинирингу 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-устройство

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

Android разработка

💻 Немного о конструкции when в Kotlin

Конструкция when проверяет значение некоторого объекта и в зависимости от его значения выполняет тот или иной код. Конструкция when аналогична конструкции switch в других языках. Формальное определение:

when(объект){
значение1 -> действия1
значение2 -> действия2
...
значениеN -> действияN
}


Если значение объекта равно одному из значений в блоке кода when, то выполняются соответствующие действия, которые идут после оператора -> после соответствующего значения:
fun main() {
val isEnabled = true
when(isEnabled){
false -> println("isEnabled off")
true -> println("isEnabled on")
}
}

Здесь в качестве объекта в конструкцию when передается переменная isEnabled. Далее ее значение по порядку сравнивается со значениями в false и true. В данном случае переменная isEnabled равна true, поэтому будет выполняться код:
println("isEnabled on")



Выражение else

В примере выше isEnabled имела только 2 возможных варианта: true и false. Однако чаще бывают случаи, когда значения в блоке when не покрывают все возможные значения объекта. Дополнительное выражение else позволяет задать действия, которые выполняются, если объект не соответствует ни одному из значений:
val a = 30
when(a){
10 -> println("a = 10")
20 -> println("a = 20")
else -> println("неопределенное значение")
}

То есть в данном случае если переменная a равна 30, поэтому она не соответствует ни одному из значений в блоке when. И соответственно будут выполняться инструкции из выражения else.

Если надо, чтобы при совпадении значений выполнялось несколько инструкций, то для каждого значения можно определить блок кода:
var a = 10
when(a){
10 -> {
println("a = 10")
a *= 2
}
20 -> {
println("a = 20")
a *= 5
}
else -> { println("неопределенное значение")}
}
println(a)


📎 Читать подробнее

@android_its

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

Android разработка

💻 Создаем первое приложение с Jetpack Compose на Kotlin

Держите годное видео о том, как с помощью фреймворка Jetpack Compose создать проект в Android Studio.

📎 Кликабельный план ролика
📎 Само видео

@android_its

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

Android разработка

💻 О .not() и ! в Kotlin

Мы довольно часто используем оператор .not(), поскольку это более читабельно, чем !.

Но есть одна вещь, которую оператор .not() не может сделать — поглядите:

myEvents?.forEach { myEvent -> 
if (!myEvent.events.isNullOrEmpty()) {
myEvent.events.find { it.type == eventType }
}

if (myEvent.events.isNullOrEmpty().not()) {
myEvent.events.find { it.type == eventType }
}
}

Как-то так

@android_its

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

Android разработка

💻 Библиотека Scout — быстрый и безопасный DI на Kotlin

Scout — это библиотека, появившаяся как результат большого количества проб и ошибок. Пет-проекты с кастомными DI-контейнерами. Изучение каждого нового DI-фреймворка, который появлялся в комьюнити.
Держите полезную статью о том, как Scout создавалась и какие проблемы может решать.

Вот ещё некоторые факты из статьи:
*️⃣Библиотека Scout использует рефлексию для доступа к содержимому графа и предоставляет защищенные методы для обращения к нему.

*️⃣Валидация графа становится сложной из-за отказа от аннотаций, но может быть проверена в unit-тестах.

*️⃣Библиотека предлагает удобный и настраиваемый валидатор графа зависимостей.

📎 Читать подробнее

@android_its

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

Android разработка

💻 Отличия Sequence API vs Collection в Kotlin

Держите хорошее объяснение отличий между 2 этими понятиями.

В статье рассматриваются примеры, которые помогают визуализировать разницу между Sequence API и обычными коллекциями.

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

Sequence API в Kotlin могут обрабатывать данные более эффективно, чем обычные коллекции.

📎Читать подробнее: [ru], [en]

@android_its

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

Android разработка

💻 Создание анонимного экземпляра интерфейса в Kotlin

Если сразу к сути, то для создания экземпляра анонимного интерфейса в Kotlin применяется объектное выражение. Определите интерфейс непосредственно при инициализации переменной следующим образом:

val myInterfaceInstance = object : MyInterface {
override fun myFunction() {
// Ваш код здесь
}
}

myInterfaceInstance.myFunction()

В данном примере переменной myInterfaceInstance мы присваиваем объект, используя ключевое слово object :
Далее указываем название интерфейса, а затем в фигурных скобках представляем реализацию необходимых функций с помощью переопределения.


Создание экземпляра SAM-интерфейса, используя лямбду

Интерфейс с одним абстрактным методом (SAM) в Kotlin может быть представлен лямбдой. Котлин предлагает более лаконичную запись для интерфейсов с единственным методом:
fun interface MySAMInterface {
fun myAction()
}

val myInterfaceInstance = MySAMInterface {
println("Смотрите, мама, я пишу код без использования рук!")
}

myInterfaceInstance.myAction()


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

📎 Читать подробнее

@android_its

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

Android разработка

💻 Своё расширение в Kotlin

Можно ли организовать свое собственное расширение в Kotlin? Да, это можно сделать через Delegate:

class MyString {
fun myPrint(text: String) {
println(text)
}
}


Есть класс MyString с методом myPrint(). Допустим нам надо сделать собственное расширение printRealExt() без использование встроенных в Kotlin возможностей:
fun MyString.printRealExt(text: String) {
println(text)
}


Реализуем интерфейс и класс с нашим методом "расширения":
interface ExtensionPrint {
fun printExt(text: String)
}

class ExtensionPrintImpl : ExtensionPrint {
override fun printExt(text: String) {
println(text)
}
}


А затем воспользовавшись Delegation делегируем этот метод:
class MyString : ExtensionPrint by ExtensionPrintImpl() {
fun myPrint(text: String) {
println(text)
}
}


Синтаксис вызова из расширения и из делегата выглядит одинаково:
    val myString = MyString()
myString.printRealExt("Real ext")
myString.printExt("Text from ext")


Таким же образом можно организовать множественное наследование в Kotlin:
interface OneClassInterface {
fun someOne()
}

class OneClassImpl : OneClassInterface {
override fun someOne() {
println("some One")
}
}

interface TwoClassInterface {
fun someTwo()
}

class TwoClassImpl : TwoClassInterface {
override fun someTwo() {
println("someTwo")
}
}

class DerivedClass : OneClassInterface by OneClassImpl(), TwoClassInterface by TwoClassImpl()


@android_its

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

Android разработка

Вариант для тех, кто ищет виртуальный сервер с хорошей веб-защитой — Aéza:

– Виртуальные сервера до 6.0 ГГц на лучших процессорах;
– Профессиональная фильтрация атак StormWall;
– Круглосуточная поддержка;
– Anycast фильтрация;
– Низкие цены;
– 15% кешбэка по ссылке.

Бесконечно можно смотреть на три вещи: на огонь, воду и скидку от Aeza!
Говорят: твоё от тебя не уйдет. А зачем ждать? Динозавры тоже ждали и остались в прошлом

Используй 50% скидку и погнали в будущее!

Кроме того, сейчас Aéza раздает личные бесплатные сервера, забираем тут. Регистрация, подписка, платежи не потребуются.

Реклама. Индивидуальный предприниматель Лобанов Леонид Константинович. ИНН 781625705648 erid: LjN8KEr3S

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

Android разработка

🖥 Package Search — крутой плагин для поиска библиотек для Java и Kotlin прямо из редактора.

По умолчанию он поддерживает поиск в следующих менеджерах пакетов: Maven, Gradle и Amper.

📌 Github

@android_its

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

Android разработка

📱 Apple пообещала упростить перенос данных с iPhone на Android-устройства в ЕС к осени 2025 года

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

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

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

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

@mobdevelop

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

Android разработка

📱Советы по 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

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

Android разработка

🖥 𝗧𝗲𝘀𝘁𝗚𝗲𝗻-𝗟𝗟𝗠 для написания тестов Kotlin 💻

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

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

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

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

@android_its

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

Android разработка

🖥 Некоторые подробности о 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

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

Android разработка

Новый Compose урок по анимации

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

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

#android #course #compose

https://startandroid.ru/ru/courses/compose.html

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

Android разработка

Предварительный выпуск Android 15 https://opennet.ru/60616/

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