Advertisement · 728 × 90
#
Hashtag
#compose
Advertisement · 728 × 90
Preview
Meet FlexBox: The Powerful New Layout System for Compose Jetpack Compose continues to evolve, and with the introduction of the new FlexBox layout, we finally have a powerful, flexible way to…

🧱 𝐂𝐨𝐦𝐩𝐨𝐬𝐞 𝐣𝐮𝐬𝐭 𝐠𝐨𝐭 𝐦𝐨𝐫𝐞 𝐟𝐥𝐞𝐱𝐢𝐛𝐥𝐞!

📝 I just published 𝗠𝗲𝗲𝘁 𝗙𝗹𝗲𝘅𝗕𝗼𝘅: 𝗧𝗵𝗲 𝗣𝗼𝘄𝗲𝗿𝗳𝘂𝗹 𝗡𝗲𝘄 𝗟𝗮𝘆𝗼𝘂𝘁 𝗦𝘆𝘀𝘁𝗲𝗺 𝗳𝗼𝗿 𝗖𝗼𝗺𝗽𝗼𝘀𝗲 ✨

🔗 navczydev.medium.com/meet-flexbox...

#JetpackCompose #Android #AndroidDev #Kotlin #Compose #FlexBox #GDE

3 0 0 0

🐳 🐙 Docker Compose Tip #45

One Dockerfile, multiple targets!

build:
context: .
target: dev # or production

Different images for dev and prod from the same file.

Guide: lours.me/posts/compose-tip-045-multi-stage-target/

#Docker #Compose #Build #DevOps

10 6 0 1
Preview
Release 1.11.0-beta01 · JetBrains/compose-multiplatform Changes since 1.11.0-alpha04 Breaking Changes iOS Dialog and Popup container views are now located on a system transition view above the root view controller, but below modally presented view cont...

🚀 Compose Multiplatform 1.11.0-beta01

Major iOS fixes + overall stability improvements across platforms.

⚠️ Breaking: popup/dialog layering change on iOS

🔗 github.com/JetBrains/co...

#Kotlin #Compose #Multiplatform #AndroidDev #iOSDev

2 0 0 0
Post image

🚀 AndroidX updates — March 25, 2026

New releases across Compose, Navigation, Room, Wear, Camera, XR & more.

Take a look:
developer.android.com/jetpack/andr...

#AndroidDev #AndroidX #Jetpack #Compose #Android #Kotlin

0 0 0 0
Docker Compose Tip #44: Signal handling in containers Control how your containers receive and handle stop signals for graceful shutdowns

🐳 🐙 Docker Compose Tip #44

Graceful shutdowns need the right signal!

```
stop_signal: SIGQUIT
stop_grace_period: 30s
init: true
```

Control what happens when you stop.

Guide: lours.me/posts/compose-tip-044-signal-handling/

#Docker #Compose #Runtime #Containers

4 2 5 0
Docker Compose Tip #43: Read-only root filesystems Harden your containers by making the root filesystem read-only

🐳 🐙 Docker Compose Tip #43

Harden containers in one line!

read_only: true
tmpfs:
- /tmp:size=50M

Immutable filesystem + writable only where needed.

Guide: lours.me/posts/compose-tip-043-read-only-rootfs/

#Docker #Compose #Security #Containers

9 6 8 0
Docker Compose Tip #42: Variable substitution and defaults Use variable substitution with defaults, required values, and error messages in Compose files

🐳 🐙 Docker Compose Tip #42

Smart variable substitution!

${TAG:-latest} # default value
${TAG:?required} # fail if missing

Flexible configs with safety built in.

Guide: lours.me/posts/compose-tip-042-variable-substitution/

#Docker #Compose #Configuration #DevOps

13 7 1 1
Preview
Release 1.10.3 · JetBrains/compose-multiplatform Changes since 1.10.2 Fixes Multiple Platforms Remove check for arbitrary transforms in Matrix conversions due to incorrect detection of regular rotation. Now the behaviour is aligned with Android ...

Compose Multiplatform v1.10.3 is out 🚀

Better matrix transform handling + library updates.

Full released notes:
github.com/JetBrains/co...

#Kotlin #Compose #Multiplatform #AndroidDev #Android

0 0 0 0
Preview
Python Docker Environment Setup & application development Data Analysis & Software Architecture Projects for £2-5 GBP / hour. I need a Python developer to help me containerise a local development environment with Docker on a Win



#Automation #Data #Analysis #Docker #Docker #Compose #Linux #OpenClaw #Python #Software #Architecture

Origin | Interest | Match

0 0 0 0
Docker Compose Tip #41: Container lifecycle hooks Run commands at specific points in a container's lifecycle with post_start and pre_stop hooks

🐳 🐙 Docker Compose Tip #41

Run commands at container lifecycle events!

post_start:
- command: /app/init.sh
pre_stop:
- command: /app/drain.sh

Init after start, cleanup before stop.

Guide: lours.me/posts/compose-tip-041-lifecycle-hooks/

#Docker #Compose #Runtime #Containers

5 1 2 0

🐳 🐙 Docker Compose Tip #40

Labels cost nothing but unlock a lot!

labels:
com.example.team: "backend"
com.example.env: "production"

Filter, organize, integrate with Traefik & Prometheus.

Guide: lours.me/posts/compose-tip-040-labels/

#Docker #Compose #Configuration #Monitoring

4 3 1 0

Chromogène de la chatte

Un chromogène est un composé chimique qui, lorsqu'il est exposé à une certaine condition, produit une couleur visible. Ces substances sont souvent utilisées en chimie et en biologie pour des tests de détection. #Chromogene #Compose #Couleur #Chimie #Biologie

0 0 0 0
Post image

Как я пытался чинить анимацию в Jetpack Compose LazyColumn Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное...

#android #android #development #kotlin #compose #jetpack #compose #lazycolumn #animations #expand #collapse

Origin | Interest | Match

0 0 0 0
Preview
Embedded Android Photo Picker in Jetpack Compose The embedded photo picker is not “a custom gallery UI.” It is the system photo picker rendered inside your UI hierarchy, with the same security and privacy properties as the classic picker, because the system draws it into a dedicated `SurfaceView` (internally attached via `SurfaceView.setChildSurfacePackage`). That architectural choice is what unlocks the core product shift: the user stays in _your_ screen while browsing and selecting, and your app can react to selection updates in real time because your activity remains resumed. The embedded picker is currently supported on **Android 14 (API 34) devices with SDK Extensions 15+**. On devices that don’t meet that bar, Android’s guidance is to rely on the classic photo picker (including backported availability via Google Play services where applicable). Here is a minimal availability helper you can keep near your UI entrypoint: import android.os.Build import android.os.ext.SdkExtensions fun isEmbeddedPhotoPickerAvailable(): Boolean { // Embedded picker requires Android 14+ anyway. if (Build.VERSION.SDK_INT < 34) return false // SDK Extensions are the actual gate for embedded support. return SdkExtensions.getExtensionVersion(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) >= 15 } ## Compose integration The Jetpack integration for embedded is shipped as `androidx.photopicker`, with a Compose artifact (`photopicker-compose`). dependencies { implementation("androidx.photopicker:photopicker-compose:1.0.0-alpha01") } The Compose entrypoint is the `EmbeddedPhotoPicker` composable and a state holder created via `rememberEmbeddedPhotoPickerState`. The official docs describe the composable as creating a `SurfaceView`, managing the service connection, and plumbing selected URIs back via callbacks. You minSdk has to be at least 34. Below is a Compose-first scaffold that keeps the picker logic isolated and makes the rest of the screen testable. The key points are: keep selected URIs in your own state, let the picker grant/revoke URI permissions through callbacks, and explicitly inform the picker when your container expands/collapses. import android.net.Uri import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.items import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable fun EmbeddedPickerHost( maxSelection: Int = 5, onDone: (List<Uri>) -> Unit, ) { var attachments by remember { mutableStateOf(emptyList<Uri>()) } val scope = rememberCoroutineScope() val sheetState = rememberBottomSheetScaffoldState( bottomSheetState = rememberStandardBottomSheetState( initialValue = SheetValue.Hidden, skipHiddenState = false ) ) // Feature configuration is explicit in the embedded picker sample: // max limit + ordered selection + accent color. // Keep this object stable. val featureInfo = remember { EmbeddedPhotoPickerFeatureInfo.Builder() .setMaxSelectionLimit(maxSelection) .setOrderedSelection(true) .build() } val pickerState = rememberEmbeddedPhotoPickerState( onSelectionComplete = { scope.launch { sheetState.bottomSheetState.hide() } onDone(attachments) }, onUriPermissionGranted = { granted -> attachments = attachments + granted }, onUriPermissionRevoked = { revoked -> attachments = attachments - revoked.toSet() } ) // Keep picker expansion in sync with the container. SideEffect { val expanded = sheetState.bottomSheetState.targetValue == SheetValue.Expanded pickerState.setCurrentExpanded(expanded) } BottomSheetScaffold( scaffoldState = sheetState, sheetPeekHeight = if (sheetState.bottomSheetState.isVisible) 400.dp else 0.dp, sheetContent = { // Dedicated picker surface area. EmbeddedPhotoPicker( modifier = Modifier .fillMaxWidth() .heightIn(min = 240.dp), state = pickerState, embeddedPhotoPickerFeatureInfo = featureInfo ) }, topBar = { TopAppBar(title = { Text("Composer") }) } ) { innerPadding -> Column(Modifier.padding(innerPadding).padding(16.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { Button(onClick = { scope.launch { sheetState.bottomSheetState.partialExpand() } }) { Text("Add from gallery") } Button( enabled = attachments.isNotEmpty(), onClick = { onDone(attachments) } ) { Text("Send") } } Spacer(Modifier.height(16.dp)) // Your own attachment UI is separate from the picker surface. LazyVerticalGrid( columns = GridCells.Adaptive(minSize = 88.dp), verticalArrangement = Arrangement.spacedBy(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp), ) { items(attachments) { uri -> AttachmentTile( uri = uri, onRemove = { scope.launch { // Inform the picker that the host UI removed something. pickerState.deselectUri(uri) // Keep host state consistent (deselectUri won't auto-update your list). attachments = attachments - uri } } ) } } } } } @Composable private fun AttachmentTile( uri: Uri, onRemove: () -> Unit ) { // Replace with your image loader. Keep it simple here. Surface( tonalElevation = 2.dp, modifier = Modifier .size(88.dp) .clickable { onRemove() } ) { /* preview */ } } Everything in this skeleton is aligned with the platform guidance: embedded picker is intended to sit inside your UI, selection changes are continuous, and the API surface is built around permission grants/revocations for content URIs instead of broad media permissions. ## Selection synchronization, URI lifetimes, and background work The embedded picker UX is at its best when your host UI and the picker behave like a single selection model. Android’s embedded picker docs call this out explicitly: when a user deselects in _your_ UI, you should notify the picker via `deselectUri` / `deselectUris`. There’s a crucial gotcha: these calls do not automatically trigger your `onUriPermissionRevoked` callback, so you must update your own state explicitly. That behavior is not accidental. It forces you to define ownership: the picker owns what is selectable; your app owns how selection is represented and persisted in your UI. In a messaging composer, the picker is a panel, not the source of truth. The other non-obvious “this will bite you later” concern is URI access lifetime. For the photo picker in general, Android documents that access is granted until the device restarts or until your app stops, and you can persist access longer by calling `takePersistableUriPermission()`. If your UX lets users queue uploads or drafts, this matters immediately. Be aware of the platform cap: Android notes that an app can have up to 5,000 media grants at a time, after which older grants are evicted. That is high enough for typical consumer flows, but it is relevant for apps that treat the picker as an ingestion pipeline. On the test side, the `androidx.photopicker` has a dedicated testing artifact and a `TestEmbeddedPhotoPickerProvider` to support testing flows that rely on the embedded picker. Photo by Ruben Mavarez on Unsplash ### Share this: * Share on X (Opens in new window) X * Share on Reddit (Opens in new window) Reddit * Share on LinkedIn (Opens in new window) LinkedIn * ### _Discover More_

Embedded Android Photo Picker in Jetpack Compose The embedded photo picker is not “a custom gallery UI.” It is the system photo picker rendered inside your UI hierarchy, with the same security ...

#Technology #android #jetpack #compose #kotlin

Origin | Interest | Match

0 0 0 0

🐳 🐙 Docker Compose Tip #37

3 ways to split Compose configs, each works differently!

Override files → project-level merge
extends → service-level inheritance
include → isolated sub-project import

Guide: lours.me/posts/compose-tip-037-include-extends-overrides/

#Docker #Configuration #Compose

7 5 1 0

Chlorhydrate de la chatte

Le chlorhydrate est un composé chimique, souvent utilisé comme sel pour faciliter la solubilité, notamment dans le domaine pharmaceutique. #Chlorhydrate #Compose #Chimique #Solubilité #Pharmaceutique

0 0 0 0

🐳 🐙 Docker Compose tip week starts tomorrow!

This week: a deep dive into managing multiple Compose files.

include, extends, override files — 3 mechanisms that look similar but work very differently.

3 tips, Mon/Wed/Fri. See you tomorrow!

#Docker #Compose #DockerCompose #DevOps

6 4 0 0
Post image

Todo Budget v5.0: переписал весь UI с нуля на Jetpack Compose — и теперь ищу тех, кто его сломает До пятой версии главный экр...

#котлин #мобильная #разработка #приложения #для #android #андроид #kotlin #jetpack #compose #android

Origin | Interest | Match

0 0 0 0
Post image

Todo Budget v5.0: переписал весь UI с нуля на Jetpack Compose — и теперь ищу тех, кто его сломает До пятой версии главный экр...

#котлин #мобильная #разработка #приложения #для #android #андроид #kotlin #jetpack #compose #android

Origin | Interest | Match

0 0 0 0
Post image

How to Use Docker Compose for Production Workloads — with Profiles, Watch Mode, and GPU Support There's a perception problem with Docker Compose. Ask a room full of platform engineers what th...

#Docker #Docker #compose #containers

Origin | Interest | Match

0 0 0 0
Docker Compose Tip #36: Using extra_hosts for custom DNS entries Add custom hostname mappings without modifying system hosts file

🐳 🐙 Docker Compose Tip #36

Custom DNS without touching /etc/hosts!

extra_hosts:
- "api.local:192.168.1.100"
- "host.docker:host-gateway"

Perfect for local development!

Learn: lours.me/posts/compose-tip-036-extra-hosts/

#Docker #Compose #Networking #DNS

7 6 1 0
PolarisMail hiring Kotlin Developer (Compose Multiplatform) in Montreal, Quebec, Canada | LinkedIn Posted 1:10:50 PM. Location: Montreal (Hybrid/Remote)Reporting to: Senior Kotlin Multiplatform DeveloperAbout the…See this and similar jobs on LinkedIn.

If you're interested in building apps with Kotlin Multiplatform and Compose Multiplatform, my team is hiring!

www.linkedin.com/jobs/view/43...

#kotlin #kmp #cmp #compose #androiddev

3 0 0 0
Preview
Docker ARR Stack with Gluetun VPN Linux & Docker Projects for $10-30 USD. I’m putting together a small ARR stack in Docker and need an expert to wire everything so that every outbound request from Prowler



#Containerization #Debian #Docker #Docker #Compose #Linux #System #Admin #Ubuntu #VPN

Origin | Interest | Match

0 0 0 0
Post image

If your Compose app feels slow…
it’s time to open Perfetto 👀

In our next episode, Rahul Ravikumar joins us to talk about:
• tracing
• profiling
• understanding performance in Compose

📅 Live now on Twitch
🎥 cwti.link/twitch

#AndroidDev #Perfetto #Compose

3 0 0 0
Docker Compose Tip #35: Using tmpfs for ephemeral storage Boost performance with in-memory tmpfs mounts for temporary data

🐳 🐙 Docker Compose Tip #35

⚡ RAM-speed storage with tmpfs!

tmpfs:
- /tmp:size=100M
- /app/cache:size=500M

Fast, secure, self-cleaning!

Guide: lours.me/posts/compose-tip-035-tmpfs-storage/

#Docker #Compose #Performance #Storage

7 4 1 0
Preview
Release Kotlin 2.3.20-RC2 · JetBrains/kotlin Changelog Compiler KT-84620 Incorrect optimization of property delegation KT-81974 Do not eagerly initialize reflection for KProperty objects for delegated properties JVM. Reflection KT-84600 Pe...

🚀 Kotlin 2.3.20-RC2 is out!

Fixes for compiler optimizations, JVM reflection performance, Compose bitcode lowering, Gradle memory leaks, and Build Tools API compatibility.

👇
github.com/JetBrains/ko...

#Kotlin #Gradle #Compose #JVM #AndroidDev

0 0 0 0
Docker Compose Tip #34: Debugging with exec vs run Understanding when to use docker compose exec vs run for debugging

🐳 🐙 Docker Compose Tip #34

exec vs run - know the difference!

exec: existing container
run: new container

docker compose exec web bash # Debug running
docker compose run --rm test # One-off task

Details: lours.me/posts/compose-tip-034-exec-vs-run/

#Docker #Compose #Debugging #CLI

5 4 1 0
Preview
Plausible-CE Deployment via Traefik Linux & Docker Projects for $10-30 USD. I already run an Ubuntu server and Traefik is in place as my reverse proxy for a handful of Docker services (docker compose). What



#Containerization #DevOps #Docker #Docker #Compose #Linux #Ubuntu #VPS

Origin | Interest | Match

0 0 0 0

Follow @sinasamaki.com for incredible #jetpack #compose widgets

0 0 0 0
Post image

I never learned to read or #write #music #score. And so sometimes I #compose the music loosely in my head and make notations in #asemic #glyphs then try to translate it back into sound at a later date. Usually incorrectly. #BlueSkyArt
#Art #Dada #drawing #Illustration #absurd #assemblage #SurrealArt

10 0 0 0