Jetpack Compose, Google-ის ინტერფეისის ინსტრუმენტარიუმი Android აპების შემუშავებისთვის, ახლა ალფაშია. ის სრულად თავსებადია Android-ის სტანდარტულ ხედებთან.
რაც შეეხება აპლიკაციის შემუშავებას, ამის გასავლელად უამრავი გზა არსებობს. თქვენ შეგიძლიათ აირჩიოთ რომელი პლატფორმისთვის (პლატფორმები) განვითარდეთ, რომელი პროგრამირების ენა (ენები) გსურთ გამოიყენოთ და მრავალი სხვა.
ჯერ კიდევ 2019 წლის შემოდგომაზე, Google გააცნო ახალი ჩარჩო ინტერფეისების შესაქმნელად Android-ში კოტლინის გამოყენებით. აქამდე ის განვითარების მდგომარეობაში იყო, ხშირი ცვლილებებით და ტონობით დაკარგული ფუნქციებით. მაგრამ დღეს Google-მა Jetpack Compose ალფა გამოშვების მდგომარეობამდე მიიყვანა, რაც იმას ნიშნავს, რომ ის ერთი ნაბიჯით მიუახლოვდა პროდუქციის ხარისხის პროექტებში გამოყენებას.
რა არის Jetpack Compose?
ანდროიდის აპლიკაციის შექმნისას, ჩვეულებრივ, ორ ძირითად კომპონენტთან უნდა გაუმკლავდეთ: კოდი, ლოგიკაზე დაფუძნებული ნივთებისთვის; და XML, განლაგებისთვის. ნაგულისხმევად, Android იყენებს Java-ს კოდისთვის და XML ტეგების საკუთარ კომპლექტს განლაგებისთვის.
ბევრისთვის Java და XML კარგია, განსაკუთრებით მარტივი აპებისთვის. მაგრამ ორივე სისტემას აქვს თავისი შეზღუდვები და უსიამოვნებები. კოტლინის შემოღებით, როგორც ა ოფიციალური (და რეკომენდირებული) ენა ანდროიდის განვითარებისთვის, ანდროიდის აპლიკაციის შექმნის კოდირების მხარე, სავარაუდოდ, ბევრად გამარტივდა. Kotlin-ის მოსახერხებელი ფუნქციებით, როგორიცაა ჩაშენებული ნულოვანი დაცვა და გაფართოების ფუნქციები, კოდი გამოიყურება უფრო სუფთა და ადვილად იკითხება.
მაგრამ კოტლინმა არაფერი შეცვალა Android-ის განლაგებით. რთული განლაგების შესაქმნელად, თქვენ ჯერ კიდევ გჭირდებათ XML ფაილის შექმნა და მისი დიზაინი იქ. ამას აქვს რამდენიმე შესამჩნევი მინუსი, მათ შორის თანდაყოლილი გამიჯვნა კოდსა და XML-ს შორის. თუ თქვენ გაქვთ მუდმივი სტრიქონი თქვენს კოდში, მაგალითად, თქვენ არ შეგიძლიათ უბრალოდ მიუთითოთ ის XML-დან, ასე რომ, თუ ეს სტრიქონი შეიცვლება კოდში, თქვენ უნდა გახსოვდეთ მისი განახლება XML-შიც.
შეიყვანეთ Jetpack Compose. ეს არის Google-ის პასუხი Android-ში XML განლაგების დიზაინის სულ უფრო დაბნეულ პროცესზე. იმის ნაცვლად, რომ შექმნათ თქვენი აპლიკაციის ინტერფეისი XML-ში, შეგიძლიათ ამის გაკეთება პირდაპირ თქვენი კოდიდან. მიუხედავად იმისა, რომ კოდზე დაფუძნებული განლაგება შესაძლებელია შეიქმნას, ისინი ჩვეულებრივ ნაკლებად შენარჩუნებულია ვიდრე XML და მოიცავს ადვილად გატეხილ ბიბლიოთეკებს. მეორე მხრივ, Compose შექმნილია პირდაპირ კოტლინში სამუშაოდ: აღარ არის XML.
Jetpack Compose ასევე საკმაოდ რადიკალური გადახრებია XML განლაგების სტანდარტული იმპერატიული დიზაინისგან. ამის ნაცვლად, ის უფრო ჰგავს React-ს ან Flutter-ს, დეკლარაციული განლაგებით, რომლებიც განახლდება მონაცემთა ცვლილებისას, ნაცვლად იმისა, რომ დაეყრდნოს დეველოპერს ამ ლოგიკის განსახორციელებლად.
რა არის მხარდაჭერილი
ასე რომ, Jetpack Compose ახლა ალფაშია. Ეს რას ნიშნავს? ისე, ბევრი რამ.
ხედებთან თავსებადობა
ისევე, როგორც Kotlin სრულად თავსებადია Java-სთან, Jetpack Compose სრულად თავსებადია Android-ის სტანდარტულ ხედებთან. ეს საკმაოდ ბევრ რამეს ნიშნავს.
ერთი, ბევრად უფრო ადვილი იქნება Jetpack Compose-ში მიგრაცია, თუ გსურთ. იმის ნაცვლად, რომ თქვენი ყველა მორგებული ხედები და განლაგება Composables-ად გადაიყვანოთ, თქვენ შეძლებთ შექმნათ თქვენი ახალი განლაგება და კომპონენტები Compose-ში. გაქვთ ბიბლიოთეკა, რომელიც იყენებს „მემკვიდრეობით“ ხედებს, მაგრამ თქვენი აპი შექმნილია Compose-ით? Არაა პრობლემა. თქვენ შეგიძლიათ დაამატოთ View პირდაპირ თქვენს Composable ფუნქციაში. ჯერ არ გადახვედით Compose-ზე, მაგრამ გსურთ გამოიყენოთ ბიბლიოთეკა, რომელიც ეყრდნობა Composables-ს? კიდევ ერთხელ, პრობლემა არ არის. უბრალოდ ჩადეთ Composable პირდაპირ თქვენს განლაგებაში.
რაც შეეხება თემატიკას, ეს არ არის ისეთივე plug-and-play, როგორც განლაგების თავსებადობა. თუმცა, Google-მა შექმნა ბიბლიოთეკა თქვენი სტანდარტული XML თემების ადაპტირება Compose-თან თავსებად თემებად, რაც დაგეხმარებათ ნივთების ცენტრალიზებაში და დუბლირების თავიდან აცილებაში.
ანიმაციები
აქ სათქმელი ნამდვილად არ არის, გარდა იმისა, რომ Jetpack Compose მხარს უჭერს ანიმაციებს, ისევე როგორც Android-ის View ჩარჩოს. თქვენ შეგიძლიათ გადაიტანოთ, შეცვალოთ ზომა და დაატრიალოთ თქვენი გულის შინაარსი.
ზარმაცი სიები
ზარმაცი სია არსებითად არის Compose-ის ვერსია RecyclerView. ის მხოლოდ საჭიროებისამებრ განათავსებს ელემენტებს, ზოგავს RAM-ს და ზრდის შესრულებას. რა თქმა უნდა, როდესაც ეს არის შედგენა, სიების განხორციელება ბევრად უფრო მარტივია.
ConstraintLayout
Android-ის ერთ-ერთი ყველაზე ძლიერი ხედი არის ConstraintLayout. ეს საშუალებას გაძლევთ განათავსოთ, ზომა და წონა ბავშვის ნახვები ერთმანეთთან შედარებით, ამავდროულად, გააადვილეთ გარკვეული ანიმაციები. თუ ღელავდით ამ ფუნქციის დაკარგვით Compose-ში, არ უნდა იყოთ, რადგან ის ასევე აქ არის.
მასალის ინტერფეისის კომპონენტები
ძლიერი ხედების კიდევ ერთი ნაკრები არის Google-ის Material Components ბიბლიოთეკა. უმეტესობა, რაც აქ არის, არის სტანდარტული ხედები და განლაგებები, რომლებიც შეგიძლიათ იპოვოთ საწყისი View Framework-ში. მაგრამ ისინი შესწორებულია ან შეფუთულია დამატებითი ფუნქციონირების უზრუნველსაყოფად და თემების გამარტივებისთვის, და ისინი ასევე აიღეს გზა შედგენისკენ.
ტესტირება
აპლიკაციის შემუშავების მნიშვნელოვანი ნაწილია მისი ტესტირება. მარტივი აპისთვის, ამის გაკეთება შეგიძლიათ ხელით მისი ინსტალაციისა და გამოყენებით. თუმცა, უფრო რთულ პროექტებს შეუძლიათ დიდი სარგებლობა მოახდინოს ავტომატური ტესტირების ჩარჩოებიდან, რომლებიც შენთვის რთულ სამუშაოს აკეთებენ. Jetpack Compose მხარს უჭერს ავტომატურ ტესტირებას, ასე რომ თქვენ შეგიძლიათ გახადოთ თქვენი აპლიკაცია რაც შეიძლება სტაბილური.
ხელმისაწვდომობის მახასიათებლები
ხელმისაწვდომობა ჩვენი საზოგადოების მნიშვნელოვანი ნაწილია. ჩვენს ტექნოლოგიაში ხელმისაწვდომობის ფუნქციების გარეშე, ბევრი ადამიანი უბრალოდ გამორიცხული იქნება ჩვენი ტელეფონების, ტელევიზორებისა და სხვა ნებისმიერი სარგებლისგან. Jetpack Compose ჯერ კიდევ ალფაშია, ამიტომ ხელმისაწვდომობის მხარდაჭერა არ არის დასრულებული, მაგრამ Google ამას მხედველობაში ინახავს განვითარების დროს და ელემენტარული მხარდაჭერა უკვე არსებობს.
Android Studio
თუმცა, Jetpack Compose-ის ყველა მახასიათებელი არ არის თავად Jetpack Compose-ში. Android Studio-სა და Kotlin-ს ასევე აქვთ დანამატები და გაფართოებები უფრო მარტივი კომპოზიციისთვის.
Kotlin Compiler Plugin
როგორც Kotlin JVM-ის შემთხვევაში, Android Studio-ში არის შემდგენელი დანამატი, რათა სწორად გადაიყვანოთ თქვენი Compose ფუნქციები კოდად, რომელსაც Android რეალურად ესმის და მიჰყვება.
ინტერაქტიული გადახედვები
ისევე, როგორც თქვენი სტანდარტული XML განლაგების შემთხვევაში, Android Studio-ს გააჩნია Jetpack Compose-ის განლაგების წინასწარი გადახედვა. მიუხედავად იმისა, რომ ეს ამჟამად არც ისე მოსახერხებელია, როგორც XML გადახედვა ზოგიერთ ასპექტში - თქვენ უნდა ააწყოთ თქვენი პროექტი განახლების წინასწარი გადახედვა და სპეციალური გადახედვის ფუნქციის გაკეთება — მას გააჩნია ერთი მნიშვნელოვანი უპირატესობა: ინტერაქტიული გადახედვები.
ინტერაქტიული გადახედვა არის ჩვეულებრივი გადახედვა, მაგრამ ინტერაქტიული. გიჟი, ვიცი. თუმცა, ეს ნიშნავს, რომ თქვენ შეგიძლიათ რეალურად აკრიფოთ ტექსტი ტექსტურ ველებში, დააჭიროთ ღილაკებს და, კარგად, დაუკავშირდეთ თქვენს Composables-ს, მათი განლაგების გარეშეც კი.
ერთჯერადი კომპოზირებადი განლაგება
თუ გსურთ რეალურად განათავსოთ (ანუ დააინსტალიროთ) თქვენი განლაგება, რათა ნახოთ, როგორ მუშაობს ის რეალურ მოწყობილობაზე, ეს ფუნქცია შეიძლება დაგეხმაროთ. ნორმალური XML განლაგებით, იმისათვის, რომ ნახოთ, როგორ მუშაობს განლაგება რეალურ სამყაროში, თქვენ უნდა ააწყოთ და დააინსტალიროთ მთელი აპლიკაცია. თუ განლაგება, რომლის შესამოწმებლადაც გსურთ, არ არის მთავარ ეკრანზე, თქვენ შეიძლება ბევრს დააჭიროთ მასზე მისასვლელად.
და სწორედ აქ მოქმედებს მხოლოდ ერთი Composable-ის განლაგების შესაძლებლობა. იმის ნაცვლად, რომ შექმნათ და დააინსტალიროთ თქვენი აპი, შემდეგ კი გადახვიდეთ განლაგებაზე, რომელსაც ტესტირებთ, შეგიძლიათ უბრალოდ განათავსოთ განლაგება. Android Studio გამოიმუშავებს და გახსნის wrapper Activity-ს, რომელიც უბრალოდ აჩვენებს თქვენ მიერ დაყენებულ Composable-ს. ამან შეიძლება ბევრად უფრო სწრაფი გახადოს ტესტირება და დიზაინი, ასევე შეიძლება დაეხმაროს ელემენტების ურთიერთქმედებასთან დაკავშირებული საკითხების იზოლირებაში.
კოდის დასრულება
თუ თქვენს IDE-ს არ აქვს კოდის დასრულება, არის თუ არა ის IDE? არა. არა, ასე არ არის. ასე რომ, რა თქმა უნდა, Android Studio მხარს უჭერს Jetpack Compose-ის სრული კოდის დასრულებას.
მიუხედავად იმისა, რომ ეს არ არის ყველაფერი, რაც Jetpack Compose-ს მოაქვს მაგიდასთან, ზემოთ მოცემული ფუნქციები და ქცევა აჩვენებს, თუ რამდენად ძლიერი სურს Google-ს ეს ჩარჩო. და, სანამ ის ჯერ კიდევ ალფაშია, ეს ერთი ნაბიჯით უსწრებს მის წინა "განვითარების" სტატუსს. თუ ნამდვილად არ იყენებდით Jetpack Compose-ს (როგორც მე), ახლა შეიძლება დადგა დრო, რომ კიდევ ერთხელ სცადოთ.