03.11.2025
Jetpack Compose 2025 – mniej kodu, więcej magii
Zawartość
Jetpack Compose 2025 – mniej kodu, więcej magii
Jetpack Compose 2025 – mniej kodu, więcej magii
Androidowy świat zmienia się szybko, ale nie zawsze spektakularnie. Czasem te najważniejsze zmiany to tylko kilka linijek, które sprawiają, że wszystko zaczyna działać tak, jak powinno od początku. I właśnie takie zmiany przynosi Jetpack Compose 2025. W AKRA lubimy technologie, które dojrzewają razem z nami i pozwalają skupić się na tym, co naprawdę ważne, czyli doświadczeniu użytkownika. Compose jest dziś dokładnie w tym punkcie.
Tekst, który sam wie, jak duży ma być
Każdy Android developer doskonale zna ten moment, gdy tekst, który „miał się zmieścić”, nagle się nie mieści. Tytuł wchodzi w dwie linijki, a przycisk wygląda jak przypadkowy mem. Do tej pory trzeba było kombinować – sp, minFontSize, maxLines, a potem testy na 10 urządzeniach, żeby mieć pewność, że nie rozsypie się nam layout. W Compose 1.8 pojawiło się coś, co wydaje się banalne, ale rozwiązuje ten problem w całości: automatyczne dopasowanie rozmiaru tekstu (autoSize) w BasicText.
BasicText(
text = "Tytuł, który się dopasowuje",
maxLines = 1,
autoSize = TextAutoSize.StepBased(
minFontSize = 12.sp,
maxFontSize = 28.sp,
stepSize = 1.sp
)
)
Bez żadnych kombinacji, bez „czemu to działało w emulatorze, a nie na Samsungu A52”. Po prostu działa. To mały krok dla API, ale wielki krok dla spójności UI.
Widoczność, która naprawdę widzi
Kolejna nowość, która cieszy jak dobrze dopasowany dp: onFirstVisible i onVisibilityChanged, czyli modyfikatory, które dają Compose świadomość, co faktycznie jest na ekranie. Brzmi prosto, ale dla nas to prawdziwy game changer. Do tej pory śledzenie widoczności elementów wymagało sztuczek – LazyListState, offsety, obliczenia scrolla, a na koniec jeszcze nadzieja, że wszystko zadziała tak samo na Pixelu i Xiaomi. Teraz możemy po prostu napisać:
Box(
modifier = Modifier
.onFirstVisible { logEvent("Sekcja Hero widoczna") }
.onVisibilityChanged { isVisible ->
if (isVisible) startAnimation() else stopAnimation()
}
) {
// ...
}
To otwiera drzwi do wielu rzeczy:
● automatyczne ładowanie zdjęć dopiero wtedy, gdy element faktycznie pojawi się na ekranie, ● zatrzymywanie animacji, gdy komponent znika z widoku, ● dokładniejsze dane analityczne, bez kombinacji i błędów w pomiarach.
I najważniejsze wszystko to dzieje się deklaratywnie, bez dodatkowych warstw logiki.
Cienie, które robią klimat
Compose od zawsze był mocny w prostocie. Ale brakowało mu… głębi. Dosłownie. Teraz dostajemy dropShadow() i innerShadow() – API, które pozwala tworzyć efekty, jakie wcześniej wymagały rysowania własnych Canvasów. Dzięki temu można łatwo uzyskać wrażenie wcięcia czy podniesienia elementu:
Box(
modifier = Modifier
.background(Color(0xFFF0F0F0), RoundedCornerShape(16.dp))
.innerShadow(
shape = RoundedCornerShape(16.dp),
shadow = Shadow(
radius = 8.dp,
spread = 2.dp,
offset = DpOffset(2.dp, 2.dp)
)
)
.padding(20.dp)
) {
Text("Subtelny cień, duży efekt")
}
Wreszcie można stworzyć UI, który wygląda elegancko bez wyciągania Photoshopa.
Compose dojrzewa jak dobry projekt
Te nowości sprawiają, że projektowanie UI w Compose jest czystą przyjemnością. Mniej hacków, mniej ifów, mniej “a czemu to się nie odświeża?”, a więcej spokojnego kodu, który po prostu działa. W AKRA coraz częściej używamy Compose i te nowości to sygnał, że framework osiągnął stabilność, jakiej oczekiwaliśmy. Można bez obaw budować w nim duże, skalowalne aplikacje i mieć pewność, że UI zachowa się dokładnie tak, jak zaplanowaliśmy w Figmie.
W którą stronę to idzie?
Compose 2025 to nie rewolucja. To ewolucja w najlepszym sensie – mniej klejenia, więcej designu, więcej czasu na rzeczy, które mają znaczenie. Z naszej perspektywy to kolejny krok w stronę świata, w którym Android development jest bardziej kreatywny niż konfiguracyjny. A to właśnie lubimy najbardziej.
Zawartość
Jetpack Compose 2025 – mniej kodu, więcej magii
Najnowsze wpisy: