Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
📸 Вышла Jetpack CameraX 1.5.0 с новыми фичами и готовым UI для видоискателя камеры

Что нового
🤖 Camera Viewfinder - первый релиз стабильный релиз UI для показа камеры с простым встраиванием в UI (View и Compose)
⚙️ Первый релиз androidx.camera:camera-compose - работа с камерой в Compose UI
🛠 Исправление багов

// Пример View Finder в Compose
val currentSurfaceRequest: SurfaceRequest
by viewModel.surfaceRequests.collectAsState()
val coordinateTransformer = remember { MutableCoordinateTransformer() }
CameraXViewfinder(
surfaceRequest = surfaceRequest,
// Can also use EMBEDDED
implementationMode = ImplementationMode.EXTERNAL,
modifier =
modifier.pointerInput(Unit) {
detectTapGestures {
with(coordinateTransformer) {
val surfaceCoords = it.transform()
viewModel.focusOnPoint(
surfaceRequest.resolution,
surfaceCoords.x,
surfaceCoords.y
)
}
}
},
coordinateTransformer = coordinateTransformer
)


#android #камера #jetpack #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3310👍9
🤖 Важность HDR в приложениях для передачи естественных цветов

Почитал интересную статью от Google про важность использования HDR. Самое важное - HRD не только про яркость, а именно про правильность передачи цветов в приложениях, особенно когда дело касается фото.

В Android 15 появилось API для контроля того смешивания HDR и SDR контента:
// Требуется, чтобы Windows учитывало желаемый HDR headroom.
// Обратите внимание, что эквивалентный API в SurfaceView НЕ требует
// COLOR_MODE_HDR для ограничения headroom,
// если на SurfaceView отображается HDR-контент.
window.colorMode = ActivityInfo.COLOR_MODE_HDR

// разные значения headroom могут
// использоваться в зависимости от
// желаемого headroom контента
// И особенностей UI-дизайна приложения.
window.desiredHdrHeadroom = when {
/* только SDR */ -> 0f
/* Смешанный, в основном SDR */ -> 1.5f
/* Смешанный, в основном HDR */ -> 3f
/* только HDR */ -> 5f
else -> 0f
}


#android #hdr #android15
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
This media is not supported in your browser
VIEW IN TELEGRAM
🤯 Сегодня я на Big Tech Night 🔥5 компаний: Яндекс, Сбер, Т-Банк, Lamoda, X5 открыли двери своих офисов, сделали программу из докладов и развлечений. Я буду в офисе Яндекса до самого вечера. Хочу послушать доклады про AI и почувствовать в движе!

Всё буду рассказывать в комментариях под постом 🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
👍266🤔6
This media is not supported in your browser
VIEW IN TELEGRAM
👍18
Forwarded from AvitoTech
☄️Если вы знаете, что такое ZX Spectrum, IBM, и даже «Фаэтон-1»

То сейчас вас охватит приступ ностальгии, а рука сама потянется к детским альбомам или …Dendy! В честь наступающего Дня разработчика решили вспомнить, с чего начинались первые шаги в IT авитовцев. В карточках — только часть историй, а все-все-все можно прочитать здесь. Только осторожно, там ооочень залипательно!

В комментариях поздравляйте и отмечайте коллег и, конечно, делитесь своими историями/фотографиями cо своими первыми гаджетами ⬇️

package main

import "fmt"

func main() {
fmt.Println("Поздравляем с Днём разработчика! 🎉")


#frontend #backend #go #tl
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥4617🎉15👍7🏆2🤔1
🐱 GitHub запустил реестр MCP серверов

Протокол Model Context Protocol (MCP) упрощает взаимодействие ИИ-агентов и инструментов между собой в модульной и расширяемой форме. Он предоставляет AI агентам возможность получать актуальный контекст, взаимодействовать с внешним миром и интегрироваться в существующие системы и рабочие процессы.


#ai #github
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🔥61
🤖 Обновили документацию по использования keep правил для R8 (минификатор кода по умолчанию)

Какие разделы теперь доступны
👉 Зачем нужны keep правила
👉 Глобальные правила (для всего кода) и правила для конкретного кода
👉 Лучшие практики
👉 Примеры использования правил

Явно задекларировали - НЕ ДЕЛАЙТЕ правило с сохранением кода всего пакета:
-keep class com.example.pkg.** { *; }


Мне не хватает описания списка всех оптимизаций кода, которые делает R8, и как писать код так, чтобы они срабатывали (например, такая особенность есть при загрузке классов через Service Loader, чтобы минификатор заменил создания через рефлексию на простой вызов конструктора)

#android #r8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
🖌 Примеры адаптивного дизайна от команды Android в Figma

Команда Android Дизайна выкатила на своей странице в фигме дизайн 4 приложений, который адаптирован под разны размеры экрана: смартфоны, маленькие и большие планшеты, складные устройства, ноутбуки и телевизоры

Рекомендую всем посмотреть, чтобы посмотреть на подходы, а они на самом деле просты. Если хотите отдельный пост про техники адаптации дизайна - ставьте ❤️

#android #дизайн #adaptive #ui #material
Please open Telegram to view this post
VIEW IN TELEGRAM
106👍8🔥1
🤖🦢 Пример написания библиотеки для Android на языке Swift (RU, 17м)

В Swift 6 появилась возможность работать с Android NDK из Swift и всё это потом вызывать из Java при помощи JNI.

Java Native Interface (JNI) – это мост который позволяет нативному коду обращаться к Java Virtual Machine (JVM). Когда вы пишете Java код, то вы используете Android SDK. Но когда вы используете языки как Swift или C++, которые не компилируются в Java байткод, вам уже нужен Android NDK для коммуникации с Java через JNI.


Пример нативного кода
#if os(Android)
@_cdecl("Java_com_habr_swiftlib_myfirstandroidproject_SwiftInterface_initialize")
public func initialize(
envPointer: UnsafeMutablePointer<JNIEnv?>,
clazzRef: jobject,
callerRef: jobject
) {
// Активируем Android logger
LoggingSystem.bootstrap(AndroidLogHandler.taggedBySource)
// Инициализируем JVM
let jvm = envPointer.jvm()
JNIKit.shared.initialize(with: jvm)
// ДАЛЕЕ: кэшируем class loader
// ДАЛЕЕ: пример `toString`
// ДАЛЕЕ: пример `Task`
}
#endif


Инструменты сгенерят вам код для работы из Java/Kotlin
package com.habr.swiftlib.myfirstandroidproject

object SwiftInterface {
init { System.loadLibrary("MyFirstAndroidProject") }
external fun initialize(caller: Any)
}


#android #ndk #swift
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔31🔥163🤯3👍1🆒1
🤖 Вышел релиз /e/OS 3.1 - прошивка на основе Android, сфокусированной на конфиденциальности пользовательских данных (deGoogled)

Всем кто хочет избавиться от ограничений Google и сбором данных от них, этот дистрибутив может прийтись по вкусу. Ставится на больше чем 200 моделей устройств (полный список тут)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍106