Jetpack Compose, инструментариумът на Google за потребителски интерфейс за разработване на приложения за Android, вече е в алфа версия. Той е напълно съвместим със стандартните изгледи на Android.
Когато става въпрос за разработване на приложение, има много начини да го направите. Можете да изберете за коя платформа(и) да се разработи, кой(и) език(ове) за програмиране искате да използвате и много повече.
Още през есента на 2019 г. Google въведени нова рамка за изграждане на потребителски интерфейси в Android, използвайки Kotlin. Досега той беше в състояние на разработка, с чести повреди промени и тонове липсващи функции. Но днес Google избута Jetpack Compose до състояние на алфа версия, което означава, че е една стъпка по-близо до използване в проекти с производствено качество.
Какво е Jetpack Compose?
Когато създавате приложение за Android, обикновено има два основни компонента, с които трябва да се справите: кодът, за логически базирани неща; и XML, за оформления. По подразбиране Android използва Java за код и собствен набор от XML тагове за оформления.
За мнозина Java и XML са добри, особено за по-прости приложения. Но и двете системи имат своите ограничения и неприятности. С въвеждането на Kotlin като официален (и препоръчителен) език за разработка на Android, кодиращата страна на създаването на приложение за Android вероятно е станала много по-лесна. С удобните функции на Kotlin като вградена нулева защита и функции за разширение, кодът изглежда по-чист и е по-лесен за четене.
Но Kotlin не промени нищо с оформленията на Android. За да направите сложно оформление, все още трябва да създадете XML файл и да го проектирате там. Това има някои забележими недостатъци, включително присъщото разделение между кода и XML. Ако имате постоянен низ във вашия код, например, не можете просто да препратите към него от XML, така че ако този низ се промени в кода, трябва да запомните да го актуализирате и в XML.
Въведете Jetpack Compose. Това е отговорът на Google на все по-тромавия процес на проектиране на XML оформление в Android. Вместо да проектирате потребителския интерфейс на приложението си в XML, можете да го направите направо от вашия код. Въпреки че е възможно да се създадат базирани на код оформления, те обикновено са по-малко лесни за поддръжка от XML и включват лесно разбиваеми библиотеки. Compose, от друга страна, е проектиран да работи направо в Kotlin: няма повече XML.
Jetpack Compose също е доста радикално отклонение от стандартния императивен дизайн на XML оформления. Вместо това, той е по-подобен на React или Flutter, с декларативни оформления, които се актуализират сами, когато данните се променят, вместо да разчитат на разработчика да приложи тази логика.
Какво се поддържа
Така че Jetpack Compose вече е в алфа версия. Какво означава това? Е, много неща.
Оперативна съвместимост с изгледи
Точно както Kotlin е напълно съвместим с Java, Jetpack Compose е напълно съвместим със стандартните Views на Android. Това означава доста неща.
От една страна, ще бъде много по-лесно да мигрирате към Jetpack Compose, ако искате. Вместо да се налага да преобразувате всичките си персонализирани изгледи и оформления в Composables, вие ще можете просто да създавате новите си оформления и компоненти в Compose. Имате библиотека, която използва „наследени“ Views, но приложението ви е проектирано с Compose? Няма проблем. Можете да добавите изгледа направо във вашата функция Composable. Все още не сте преминали към Compose, но искате да използвате библиотека, която разчита на Composables? Отново няма проблем. Просто поставете Composable направо във вашето оформление.
Що се отнася до тематизирането, то не е толкова plug-and-play, колкото оперативната съвместимост на оформлението. Въпреки това, Google създаде библиотека за адаптиране на вашите стандартни XML теми в теми, съвместими с Compose, помагайки да запазите нещата централизирани и да избегнете дублиране.
Анимации
Тук няма много какво да се каже, освен че Jetpack Compose поддържа анимации, точно като рамката View на Android. Можете да местите, преоразмерявате и завъртате, колкото ви харесва.
Мързеливи списъци
Мързеливият списък по същество е версията на RecyclerView на Compose. Той подрежда елементи само според нуждите, спестявайки RAM и увеличавайки производителността. Разбира се, тъй като това е Compose, списъците са значително по-лесни за изпълнение.
ConstraintLayout
Един от по-мощните изгледи в Android е ConstraintLayout. Това ви позволява да позиционирате, размерите и теглото на дъщерните изгледи един спрямо друг, като същевременно улеснявате някои анимации. Ако сте се притеснявали да не загубите тази функционалност в Compose, не трябва да се притеснявате, защото тя също е тук.
Материални UI компоненти
Друг набор от мощни Views е библиотеката Material Components на Google. Повечето от това, което е тук, са стандартни изгледи и оформления, които можете да намерите в основната рамка на изглед. Но те са променени или опаковани, за да осигурят допълнителна функционалност и да улеснят оформянето на теми, а също са си проправили път към Compose.
Тестване
Важна част от разработването на приложение е тестването му. За просто приложение можете да направите това ръчно, като го инсталирате и използвате. По-сложните проекти обаче могат да се възползват значително от рамки за автоматизирано тестване, които вършат по-голямата част от тежката работа вместо вас. Jetpack Compose поддържа автоматизирано тестване, за да можете да направите приложението си възможно най-стабилно.
Функции за достъпност
Достъпността е важна част от нашето общество. Без функциите за достъпност в нашата технология, много хора просто биха били изключени от предимствата, които предоставят нашите телефони, телевизори и каквото и да е друго. Jetpack Compose все още е в алфа версия, така че поддръжката за достъпност не е пълна, но Google го има предвид по време на разработката и вече е налице елементарна поддръжка.
Android Studio
Не всички функции на Jetpack Compose обаче са в самия Jetpack Compose. Android Studio и Kotlin също имат плъгини и разширения за по-лесно композиране.
Добавка за компилатор на Kotlin
Както при Kotlin JVM, в Android Studio има приставка за компилатор, за да конвертирате правилно вашите Compose функции в код, който Android действително може да разбере и следва.
Интерактивни прегледи
Точно както при вашите стандартни XML оформления, Android Studio идва с визуализация на оформлението за Jetpack Compose. Въпреки че в момента не е толкова удобно, колкото XML визуализациите в някои аспекти – трябва да изградите проекта си за визуализацията за актуализиране и създаване на специална функция за предварителен преглед - тя идва с едно забележително предимство: интерактивност визуализации.
Интерактивният преглед е просто нормален преглед, но интерактивен. Луд, знам. Това обаче означава, че всъщност можете да въвеждате текст в текстови полета, да щракнете върху бутони и, добре, да взаимодействате с вашите Composables, без дори да се налага да ги разгръщате.
Единично композируемо внедряване
Ако искате действително да внедрите (т.е. да инсталирате) вашето оформление, за да видите как работи на реално устройство, тази функция може да ви помогне. При нормалните XML оформления, за да видите как дадено оформление работи в реалния свят, трябва да изградите и инсталирате цялото приложение. Ако оформлението, което искате да тествате, не е на основния екран, може да правите много докосвания, за да стигнете до него.
И това е мястото, където възможността за внедряване само на един Composable влиза в игра. Вместо да се налага да създавате и инсталирате приложението си и след това да навигирате до оформлението, което тествате, можете просто да разположите оформлението. Android Studio ще генерира и отвори обвивка Activity, която само показва Composable, който сте внедрили. Това може да направи тестването и проектирането много по-бързо и дори може да помогне за изолирането на проблеми, свързани с взаимодействието на елементите.
Попълване на кода
Ако вашето IDE няма довършване на код, то изобщо IDE ли е? Не, не е. Така че, разбира се, Android Studio поддържа пълно завършване на код за Jetpack Compose.
Въпреки че това не е всичко, което Jetpack Compose предлага на масата, функциите и поведението по-горе показват колко мощна иска Google да бъде тази рамка. И въпреки че все още е в алфа версия, това е една крачка пред предишния му статус на „разработка“. Ако сте отлагали наистина да използвате Jetpack Compose (както бях аз), сега може би е моментът да опитате отново.