JetBrains-მა გამოუშვა Jetpack Compose-ის ახალი ვერსია დესკტოპისთვის, ღია წყაროს პლატფორმის ინტერფეისის განვითარების ჩარჩო.
თუ რაიმე სახის განვითარების სამუშაოს აკეთებთ, ალბათ გსმენიათ JetBrains-ის შესახებ. ისინი არიან კომპანია IDE-ების უზარმაზარი ნაკრების უკან, რომელიც მოიცავს IntelliJ-ს (Android Studio-ს საფუძველს), CLion-ს, PhpStorm-ს და ბევრ სხვას. მათ ასევე გააკეთეს კოტლინი, უაღრესად პოპულარული კროს-პლატფორმული პროგრამირების ენა.
და JetBrains ისევ დაბრუნდა. ერთი წლის წინ, Google-მა წარმოადგინა ახალი განლაგების ძრავა Android-ისთვის, სახელწოდებით Jetpack Compose. ეს გავიდა მას შემდეგ საკმაოდ მნიშვნელოვანი ცვლილებები, მაგრამ ის გადაიქცა კომპეტენტურ (თუმცა ჯერ კიდევ გარკვეულწილად არასტაბილურად) ალტერნატივად Android-ის კლასიკური XML განლაგებისთვის.
რა კავშირი აქვს Jetpack Compose-ს JetBrains-თან? ისე, ერთი, კოტლინში წერია. მაგრამ ასევე, JetBrains ჩუმად მუშაობს Compose-ის დესკტოპის სივრცეში პორტირებაზე. ის საჯარო იყო, როგორც ადრეული დეველოპერების გადახედვა და ახლა JetBrains მზად არის ოფიციალურად გამოაცხადოს მისი არსებობა.
რა არის Jetpack Compose?
შესავალში ცოტა ვისაუბრე, მაგრამ ვფიქრობ, რომ უფრო მეტ ახსნას იმსახურებს. თუ ადრე დამუშავდით Android-ზე, ალბათ მიჩვეული ხართ განლაგებების მუშაობისას. პირველ რიგში, თქვენ შეიმუშავებთ თქვენს განლაგებას XML ფაილში და შემდეგ, თქვენ ურთიერთობთ ამ განლაგებასთან Java ან Kotlin-იდან. მიუხედავად იმისა, რომ ის ფუნქციონალურია, ის ცოტა მოძველებულია და თქვენი განლაგების ენებზე გაყოფა შეიძლება რთული იყოს.
როგორც ამის ალტერნატივა, Google-მა დაიწყო Jetpack Compose-ის განვითარება. Compose არის განლაგების ძრავა Android-ისთვის, რომელიც აგებულია კოტლინზე. მთელი თქვენი განლაგება და ლოგიკური კოდი ერთ ადგილზეა, რაც ინტერაქტიულობას ბევრად ამარტივებს. ის ასევე დეკლარაციულია, XML განლაგების იმპერატიული სტილის ნაცვლად.
იმპერატივიდან დეკლარაციული განლაგების ძრავზე გადასვლას შეიძლება გარკვეული შეჩვევა დასჭირდეს, მაგრამ Compose ნამდვილად გაუმჯობესებულია XML-თან შედარებით, მიუხედავად იმისა, რომ ის ჯერ კიდევ ადრეულ ეტაპზეა.
Jetpack Compose დესკტოპისთვის
ასე რომ, Compose არის კარგი განლაგების ალტერნატივა მშობლიური Android აპებისთვის. მაგრამ ეს არ არის (ჩვეულებრივ) ჯვარედინი პლატფორმა. სწორედ აქ მოდის JetBrains. კომპანიამ გადაიტანა Jetpack Compose დესკტოპის სივრცეში, Windows-ის, Linux-ისა და macOS-ის მხარდაჭერით (როგორც Intel, ასევე ARM).
მიუხედავად იმისა, რომ არსებობს სხვა განლაგების ძრავები, რომლებიც არსებობს დესკტოპისთვის, როგორიცაა Electron, JavaFX და UWP, ახლა ცოტა არეულობაა. ზოგიერთი არ არის მრავალპლატფორმული, ამიტომ ისინი მხოლოდ ერთ კონკრეტულ ოპერაციულ სისტემაზე მუშაობენ. სხვები ტექნიკურად ჯვარედინი პლატფორმაა, მაგრამ გასავრცელებლად დიდ შრომას მოითხოვს. და მაინც, სხვები უბრალოდ მტკივნეულია მუშაობა, როგორიცაა JavaFX.
Jetpack Compose for Desktop, მეორეს მხრივ, შედარებით მარტივი გამოსაყენებელია, მხარს უჭერს ეკრანის სკალირებას, აქვს ჩაშენებული სტილი და (თითქმის) სრულად ჯვარედინი პლატფორმაა. მიუხედავად იმისა, რომ ჯერ არ შეგიძლიათ კომპილაცია ყველა განაწილებისთვის ერთი ოპერაციული სისტემიდან, თავად კოდი სრულიად პორტატულია. ისევე, როგორც Android-ის შემთხვევაში, შეფუთული აპლიკაცია დაფუძნებულია Java-ზე, თუმცა მომხმარებლებს არ სჭირდებათ დაინსტალირებული JDK მის გამოსაყენებლად.
ჯვარედინი თავსებადობა
ვინაიდან დესკტოპისთვის შედგენა ჯერ კიდევ ახალია, მას აკლია ზოგიერთი ფუნქცია. დეველოპერებს ამ შეზღუდვების გადაჭრაში რომ დაეხმარონ, Compose for Desktop თავსებადია Java-ის განლაგების ორ უფრო პოპულარულ ძრავთან, JavaFX-თან და Swing-თან. თუ თქვენ გაქვთ დესკტოპის აპი განვითარებული ამ ძრავებიდან ერთში (ან ორივეში), შეგიძლიათ დაიწყოთ შედგენაზე გადასვლა თქვენი მიმდინარე კოდების ბაზის შენარჩუნებით.
Android + Desktop
რა მოხდება, თუ გსურთ თქვენი Compose Android აპის დესკტოპზე გადატანა? თქვენ ასევე შეგიძლიათ (ერთგვარი) ამის გაკეთება. თქვენი აპლიკაციის ინტერფეისის ელემენტები ადვილად გაზიარებულია Android-სა და დესკტოპს შორის. თქვენ ვერ შეძლებთ ყველაფრის გაზიარებას, მაგრამ ეს ნამდვილად აადვილებს განვითარებას.
Apple სილიკონის მხარდაჭერა
ეს ზემოთ აღვნიშნე, მაგრამ კიდევ ერთხელ ვაპირებ აღნიშვნას. The ახალი Apple Silicon Macs საკმაოდ გასაოცარია, მაგრამ პროცესორები დაფუძნებულია ARM CPU არქიტექტურაზე, რაც ნიშნავს, რომ ბევრი macOS აპი ამჟამად მუშაობს Rosetta 2 x86 თარჯიმნის მეშვეობით. მიუხედავად იმისა, რომ Apple-მა საკმაოდ კარგად გაართვა თავი ამ თარგმანს, მშობლიური ARM პროგრამები მაინც უკეთ იმუშავებს.
კარგად, Jetpack Compose for Desktop მხარს უჭერს Apple Silicon-ს. ეს ნიშნავს, რომ თქვენ არ მოგიწევთ ფიქრი თარგმანის შესრულების დაქვეითებაზე ან მომავალ მხარდაჭერაზე, როდესაც Apple შეწყვეტს მას.
ფუნქციონალობა
ასე რომ, ყველაფერი კარგია, რომ JetBrains-მა შექმნა ახალი განლაგების ძრავა დესკტოპისთვის, მაგრამ ვინ იტყვის, რომ ის უკეთესია ვიდრე ახლა გვაქვს?
მე.
მე გამოვიყენე უახლესი ხელმისაწვდომი ვერსია ამის დაწერის მომენტისთვის (0.2.0-build132) SystemUI Tuner-ისთვის ნებართვების მინიჭების მარტივი აპლიკაციის შესაქმნელად. ვინაიდან არც ისე კარგად ვიცნობ შედგენას და დეკლარაციულ დიზაინს, ეს ცოტა უფრო რთული იყო ჩემთვის, ვიდრე XML განლაგების აპლიკაცია, მაგრამ მე ეს გავაკეთე. და მისი გამოყენება ბევრად უფრო ადვილია ვიდრე JavaFX.
მიუხედავად იმისა, რომ თემის მხარდაჭერა (მაგ. ბნელი რეჟიმი) ჯერ კიდევ ცოტა არ იყოს, საკმაოდ მარტივია ინტერაქტიული განლაგების შექმნა და ფანჯრის ზომის შეცვლისას რამდენიმე ციმციმის გარდა, ყველაფერი კარგად მუშაობს.
თუ გსურთ აპლიკაციის შემოწმება, წყაროს კოდი ხელმისაწვდომია GitHub. უბრალოდ შემოიტანეთ ის IntelliJ-ით ან Android Studio-ით და მზად უნდა იყოს გასაშვებად.
პირადად მე საკმაოდ აღფრთოვანებული ვარ Jetpack Compose for Desktop-ისთვის. ადრე არც კი ვიცოდი მისი არსებობის შესახებ, მაგრამ ეს უკვე ჩემი დესკტოპის განლაგების ძრავაა. შეგიძლიათ მეტი გაიგოთ Jetpack Compose for Desktop ვებსაიტისთვის ან GitHub-ზე.
რას ფიქრობთ ამაზე? ღირს თუ არა შემოწმება და, შესაძლოა, გამოყენება სხვა ხელმისაწვდომი ჩარჩოების ნაცვლად? Გამაგებინე!
გამორჩეული სურათის კრედიტები: JetBrains GitHub-ზე