📸 Вышла Jetpack CameraX 1.5.0 с новыми фичами и готовым UI для видоискателя камеры
Что нового
🤖 Camera Viewfinder - первый релиз стабильный релиз UI для показа камеры с простым встраиванием в UI (View и Compose)
⚙️ Первый релиз
🛠 Исправление багов
#android #камера #jetpack #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
🔥33❤10👍9
Почитал интересную статью от 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
👍11❤2
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
👍26❤6🤔6
Forwarded from AvitoTech
То сейчас вас охватит приступ ностальгии, а рука сама потянется к детским альбомам или …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
🔥46❤17🎉15👍7🏆2🤔1
Протокол 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🔥6❤1
Какие разделы теперь доступны
👉 Зачем нужны keep правила
👉 Глобальные правила (для всего кода) и правила для конкретного кода
👉 Лучшие практики
👉 Примеры использования правил
Явно задекларировали - НЕ ДЕЛАЙТЕ правило с сохранением кода всего пакета:
-keep class com.example.pkg.** { *; }Мне не хватает описания списка всех оптимизаций кода, которые делает R8, и как писать код так, чтобы они срабатывали (например, такая особенность есть при загрузке классов через Service Loader, чтобы минификатор заменил создания через рефлексию на простой вызов конструктора)
#android #r8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
Команда Android Дизайна выкатила на своей странице в фигме дизайн 4 приложений, который адаптирован под разны размеры экрана: смартфоны, маленькие и большие планшеты, складные устройства, ноутбуки и телевизоры
Рекомендую всем посмотреть, чтобы посмотреть на подходы, а они на самом деле просты. Если хотите отдельный пост про техники адаптации дизайна - ставьте ❤️
#android #дизайн #adaptive #ui #material
Please open Telegram to view this post
VIEW IN TELEGRAM
❤106👍8🔥1
В 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🔥16❤3🤯3👍1🆒1
Всем кто хочет избавиться от ограничений Google и сбором данных от них, этот дистрибутив может прийтись по вкусу. Ставится на больше чем 200 моделей устройств (полный список тут)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤6