Google selalu berupaya menjadikan Flutter alat universal untuk membuat antarmuka menarik yang bekerja di platform apa pun secepat aplikasi asli platform tersebut. Untuk memastikan hal ini mungkin, kami mulai dengan memfokuskan upaya kami pada platform seluler - Android dan iOS. Hasilnya, lebih dari 80.000 aplikasi Flutter yang cepat dan indah diterbitkan di Google Play.
Membangun kesuksesan kami, kami telah sibuk memperluas kemampuan Flutter ke platform desktop selama lebih dari setahun sekarang - macOS, Windows dan Linux. Ini berlaku untuk aplikasi web dan proyek desktop tradisional. Secara khusus, kami sibuk dengan pemfaktoran ulang mesin yang serius. Pemfaktoran ulang ditujukan untuk mendukung kerja mouse dan keyboard dengan gaya yang sama seperti pada sistem desktop, serta mendukung jendela yang dapat diubah ukurannya. Ini termasuk kemampuan antarmuka pengguna baru yang bekerja dengan baik untuk platform desktop. Ini, misalnya, mendukung Material Density dan NavigationRail . Ini termasuk eksperimen dalam integrasi yang mendalam dengan sistem operasi desktop berkat Dart: FFI, dan bekerja dengan menu sistem dan kotak dialog standar. Semua ini dilakukan untuk memastikan bahwa Flutter tidak hanya cocok untuk membuat proyek seluler, tetapi juga siap digunakan untuk mengembangkan aplikasi desktop yang sebenarnya.
Kami telah lama melihat Flutter sebagai alat untuk membuat proyek yang menargetkan berbagai macam platform. Di Google, ekspresi visi ini diwakili oleh proyek seperti Asisten . Sekarang, kami senang melihat perusahaan lain meluncurkan dukungan Flutter ke platform baru. Hari ini, Google dan Canonical, yang mengelola Ubuntu , distribusi Linux paling populer di dunia, dengan bangga mengumumkan peluncuran versi alfa Flutter untuk Linux.
Linux Flutter?
Tahun lalu, ketika Google mengumumkan kemungkinan mengembangkan aplikasi desktop menggunakan Flutter, Canonical melihat peluang menarik untuk menjadikan distribusi Linux, termasuk Ubuntu, sebagai platform target yang menarik bagi pengembang Flutter. Flutter bergerak maju dengan cepat dalam hal kapabilitas lintas platform. Canonical ingin menjadi yang terdepan dalam gerakan ini. Dengan membantu Flutter mendukung aplikasi Linux, Canonical memberi pengembang aplikasi Flutter mekanisme yang sangat mudah untuk mempublikasikan pekerjaan mereka ke Snap Store, toko aplikasi Linux. Dengan menjadikan Linux sebagai platform yang secara resmi mendukung aplikasi Flutter, Canonical memberi kesempatan kepada pengembang untuk mempresentasikan proyek mereka kepada jutaan pengguna Linux dan memperluas jumlah proyek berkualitas.tersedia untuk pengguna tersebut.
Fitur Flutter berikut dan ekosistem kerangka kerja ini tampaknya sangat menarik bagi Canonical:
- Komunitas pengembang aplikasi yang berkembang pesat.
- Dukungan untuk berbagai platform.
- Kemampuan untuk mengembangkan aplikasi asli yang dioptimalkan dengan baik.
- Fitur khusus untuk kerangka kerja UI modern, seperti dukungan untuk widget tata letak deklaratif dan reaktif.
- Lingkungan pengembangan aplikasi yang kaya menggunakan VS Code, Android Studio dan IntelliJ.
Kiriman asli Google tentang pengembangan desktop di Flutter berurusan dengan rilis alfa yang mendukung aplikasi macOS dan berencana untuk mendukung aplikasi untuk Linux dan Windows. Canonical telah melakukan investasi signifikan dalam pengembangan Flutter dengan tim pengembangan khusus yang, bekerja sama dengan pengembang di Google, bertujuan untuk memastikan bahwa pengguna dari sebagian besar distribusi Linux dapat menikmati aplikasi Flutter dengan semua kenyamanan. Canonical akan terus bekerja dengan Google untuk lebih meningkatkan dukungan Linux dan untuk menjaga kemampuan yang tersedia untuk aplikasi Flutter di Linux pada tingkat yang sama dengan dukungan untuk platform lain.
Aplikasi Flokk - Bukti Flutter Siap untuk Pengembangan Desktop
Untuk menunjukkan bahwa Flutter siap untuk pengembangan seluler, kami bekerja sama dengan perancang dan pengembang di gskinner untuk membuat aplikasi desktop Flutter yang inovatif dan menarik. Ini adalah Flokk - aplikasi nyata yang bekerja dengan data nyata. Secara khusus - dengan daftar kontak dari Google Kontak. Berikut adalah video demo Flokk.
Aplikasi ini memungkinkan Anda untuk mengelola kontak Anda. Secara khusus - cari kontak, tambahkan kontak baru dan edit yang sudah ada. Flokk juga memungkinkan Anda untuk mengasosiasikan dengan kontak Anda akun Twitter dan GitHub yang sesuai dan bekerja dengan data dari akun ini.

Kontak Flokk dibangun di atas Flutter untuk komputer desktop
Fakta bahwa aplikasi dapat menampilkan pemberitahuan dari Twitter dan GitHub mengubahnya menjadi sesuatu seperti jaringan sosial pribadi pengguna. Jika jejaring sosial yang Anda minati belum terintegrasi dengan Flokk, Anda dapat menyelesaikan masalah ini hanya dengan mengirimkan PR yang sesuai ke repositori proyek, karena Flokk adalah proyek sumber terbuka sepenuhnya.
Selain memberikan ide inovatif untuk interaksi pengguna, Flokk menggunakan kemampuan Flutter untuk membuat antarmuka yang menarik dan ramah pengguna. Salah satu contoh kemungkinan tersebut ditunjukkan pada gambar berikut. Di sini ditunjukkan bahwa ketika beralih ke tema gelap aplikasi, tidak sederhana, tetapi perubahan warna animasi dilakukan.

Kemampuan Flutter memungkinkan Flokk menggunakan animasi yang mengalir, scrolling berperforma tinggi, dan tema yang mudah digunakan Tim
kreatif di balik Flokk dipimpin oleh Grant Skinneryang terkenal dengan solusi desain luar biasa dan ide UX inovatif. Inilah yang dikatakan Grant tentang bekerja dengan Flutter di Linux: โMengembangkan aplikasi Kontak Flokk ternyata adalah tugas yang sangat mudah! Kami dapat menerapkan semua pengalaman kami dalam pengembangan Flutter di sini dan membuat aplikasi yang ditujukan untuk Linux tanpa menggunakan trik khusus apa pun. Aplikasinya ternyata sangat bagus. Kami sangat menikmati bekerja dengan tim Canonical. Mereka sangat antusias, bersemangat tentang bisnis kami, dan mereka ingin membuat Flutter lebih baik dengan tidak hanya memikirkan Linux, tetapi juga semua platform lainnya. Itu adalah proyek yang hebat dan saya sangat menyukai prospek untuk mengembangkan aplikasi Flutter untuk sistem operasi desktop lainnya. "
Jika Anda ingin menggunakan Flokk pada komputer Linux Anda, Anda dapat mengunduh rilis terbaru aplikasi dari GitHub . Dan jika Anda menggunakan snapd, Anda dapat mengunduh Flokk dari Snap Store .
Menginstal Flutter di Linux
Sekarang setelah Anda melihat aplikasi desktop berkualitas apa yang dapat Anda buat dengan Flutter, khususnya aplikasi Linux, Anda mungkin ingin mencoba Flutter di kotak Linux Anda sendiri. Untuk menyederhanakan proses persiapan sistem Linux untuk mengembangkan aplikasi Flutter sebanyak mungkin, dengan bangga kami umumkan bahwa Flutter SDK untuk Linux tersedia sebagai paket snap di Snap Store... Paket ini berisi semua yang Anda butuhkan untuk mengembangkan aplikasi Flutter menggunakan distribusi Linux favorit Anda. Karena itu, Anda tidak perlu menginstal sejumlah besar dependensi pengembangan. Yang perlu Anda lakukan adalah menginstal Flutter SDK dan IDE snap yang Anda suka. Kemudian Anda memiliki semua yang Anda butuhkan untuk membuat, membangun, dan menerbitkan aplikasi Linux Anda sendiri.
Misalnya, jika Anda ingin mulai mengembangkan aplikasi Flutter di Linux, dan Anda menyukai Visual Studio Code, berikut adalah sekumpulan perintah yang perlu Anda jalankan di terminal:
$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter
Jika Anda ingin bekerja di Linux untuk membuat tidak hanya desktop, tetapi juga aplikasi seluler, Anda dapat mempersiapkannya dengan menginstal Android SDK atau Android Studio (Android SDK sudah disertakan di sini). Anda dapat menemukan detail tentang snap SDK Flutter di sini .
Pengembangan Aplikasi Desktop Linux
Setelah Anda menginstal Flutter SDK di komputer Linux, Anda perlu pergi ke saluran
devatau masterdan memperbarui Flutter untuk membuat aplikasi desktop . Maka Anda perlu mengaktifkan dukungan untuk aplikasi desktop Linux:
$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-linux-desktop
Sekarang saat Anda membuat proyek Flutter baru, Anda akan memiliki subdirektori
linuxyang memungkinkan Anda menjalankan aplikasi di Linux:
$ flutter create counter
$ cd counter
$ flutter run -d linux

Aplikasi Flutter Counter yang terkenal juga berfungsi dengan baik di Linux
. Anda akan memiliki aplikasi Linux baru yang dibuat dengan Flutter dan berjalan pada GTK + versi stabil terbaru. Jika Anda sudah memiliki proyek Flutter yang ingin Anda lengkapi dengan dukungan Linux, setelah melakukannya setelah mengaktifkan dukungan Linux dalam proyek tersebut, Anda dapat menambahkan direktori ke proyek Anda
linuxsendiri:
$ cd my_flutter_app
$ flutter create .
Ini akan membuat subdirektori dengan proyek khusus yang diperlukan untuk membangun dan menjalankan aplikasi Flutter Anda di desktop Linux.
Mengatur akses ke kode Linux asli dari Flutter
Selain mendukung aplikasi desktop dengan menulis kode Dart untuk membuat widget Flutter, aplikasi desktop Linux Anda dapat mengakses kapabilitas Linux asli menggunakan saluran platform atau Foreign Function Interface (FFI) untuk C / C ++ ... Atau, jika mau , Anda dapat menggunakan kembali kode yang ada yang dapat ditemukan di pub.dev, di situs pengelola paket untuk Dart dan Flutter. Sebagian besar paket yang Anda temukan di pub.dev ditulis dalam Dart murni, sebagian besar paket ini berfungsi dengan baik di aplikasi Linux. Beberapa paket, yang disebut plugin, berisi kode asli yang menargetkan platform tertentu. Sebagai bagian dari rilis ini, kami menerbitkan tiga plugin di pub.dev yang menggunakan fungsionalitas Linux asli:
- url_launcher : Membuka URL di browser default Anda.
- shared_preferences : preferensi pengguna yang digunakan dalam sesi aplikasi yang berbeda.
- path_provider : informasi jalur yang terkait dengan direktori tertentu, seperti direktori untuk unggahan, gambar, dan sejenisnya.
Anda dapat menggunakan masing-masing plugin ini dalam aplikasi Anda, tetapi plugin tersebut juga dapat berfungsi sebagai contoh bagaimana Anda dapat bekerja dengan fitur Linux asli dari kode Flutter. Misalnya, berikut adalah kode sumber untuk implementasi plugin url_launcher.
Menerbitkan Aplikasi ke Snap Store
Untuk memublikasikan aplikasi Flutter Anda ke Snap Store, Anda harus menginstal Snapcraft terlebih dahulu, alat yang digunakan untuk membuat dan menerbitkan aplikasi sebagai paket snap:
$ sudo snap install snapcraft --classic
Untuk memanfaatkan kapabilitas Snapcraft, Anda perlu membuat file di direktori proyek aplikasi
snapcraft.yaml. Misalnya, seperti apa tampilan file untuk Flokk:
name: flokk-contacts
version: 1.0.1
summary: Flokk Contacts
description: A fresh and modern Google Contacts manager that integrates with GitHub and Twitter.
confinement: strict
base: core18
grade: stable
apps:
flokk-contacts:
command: flokk-contacts
extensions: [flutter-master]
plugs:
- network
parts:
flokk-contacts:
source: .
plugin: flutter
flutter-target: lib/main.dart # ,
Sekarang di direktori dengan file tersebut,
snapcraft.yamlAnda dapat menjalankan Snapcraft untuk membuat paket snap aplikasi:
$ snapcraft
Jika semuanya berfungsi seperti yang diharapkan, perintah ini akan membuat file di direktori kerja saat ini. Ini akan disebut sesuatu seperti ini:
flokk-contacts_1.0.1_amd64.snap
Setelah Anda mempersiapkan akun untuk menerbitkan aplikasi ke Snap Store, Anda dapat menerbitkan snap yang baru saja Anda buat:
$ snapcraft login
$ snapcraft register flokk-contacts
$ snapcraft upload flokk-contacts_1.0.1_amd64.snap --release edge
Di sini kami mengunggah aplikasi ke Snap Store dan mencoba menerbitkannya ke feed edge . Setelah aplikasi dipublikasikan ke saluran ini, Anda dapat menginstalnya melalui klien desktop Snap Store atau menggunakan baris perintah:
$ snap install --edge flokk-contacts
Detail tentang cara membuat aplikasi pertama Anda dan menerbitkannya ke Snap Store dapat ditemukan di sini .
Contoh Aplikasi Flutter Desktop
Aplikasi Flokk adalah contoh yang bagus dari proyek dunia nyata untuk desktop Linux. Jika Anda ingin melihat contoh secara lebih sederhana, lihat aplikasi Pencarian Foto . Itu dibuat khusus untuk mendemonstrasikan kemampuan Flutter dalam mengembangkan aplikasi desktop.

Aplikasi Pencarian Foto
Ini adalah aplikasi pencarian foto online sederhana yang menggunakan beberapa plug-in untuk mengakses fungsionalitas asli dari platform yang didukungnya, termasuk macOS dan Linux.
Jika Anda memerlukan petunjuk langkah demi langkah tentang cara mengembangkan aplikasi desktop Linux, lihattutorial codelab ini . Ini berfokus pada penggunaan OAuth dan GraphQL untuk membangun klien GitHub menggunakan Flutter.

GitHub Client
Jika Anda ingin menjelajahi proyek yang lebih kompleks yang menggunakan lebih banyak kemampuan Flutter dan memiliki beberapa contoh kode yang menarik, Anda dapat melihat aplikasi Flutter Gallery . Itu dilakukan ulang tahun lalu. Sekarang mendukung platform desktop selain platform seluler. Jika Anda ingin melihat aplikasi ini beraksi, Anda dapat mengunduhnya dari Snap Store .

Aplikasi Galeri Flutter dapat diunduh dari Snap Store.
Inilah aplikasi desktop lain yang menggambarkan kemampuan hiburan Flutter. Ini adalah game batufo multipemain yangdibuat oleh Thorsten Lorenz. Game yang indah ini memungkinkan pemain dari seluruh dunia untuk bersaing satu sama lain secara real time.

Game Batufo berjalan di berbagai platform yang didukung oleh Flutter
Thorsten membuat game ini dengan dukungan untuk berbagai platform, antara lain Linux, macOS, Android, dan iOS. Jika Anda tertarik untuk mempelajari tentang bagaimana game ini dikembangkan, dan jika Anda ingin melihat perkembangan proyek ini, Anda dapat menontonvideo ini dan melihat ke dalam repositori proyek. Di Linux, game ini dapat diinstal dari Snap Store .
Hasil
Dengan dirilisnya Flutter versi alfa untuk Linux, dan berkat kolaborasi erat antara Google dan Canonical, pengembang Linux sekarang dapat menggunakan kemampuan Flutter untuk membuat aplikasi yang disesuaikan dengan sistem operasi mereka. Yang perlu Anda lakukan adalah menginstal snap Flutter SDK, membangun dan menguji aplikasi menggunakan VS Code atau Android Studio, dan menerbitkannya ke Snap Store. Untuk berita tentang pengembangan desktop dengan Flutter, lihat di sini . Dan, yang sangat, sangat penting bagi kami, coba tinggalkan ulasantentang fitur baru Flutter. Ini akan membantu kami membuat dukungan Linux untuk aplikasi Flutter sebaik mungkin. Faktanya, kami berusaha untuk mencapai hal yang sama dengan bekerja dengan platform lain.
Flutter untuk Linux dari tim pengembangan Canonical adalah langkah maju yang besar, sebuah langkah menuju impian kami untuk menjadikan Flutter sebagai kerangka kerja pengembangan aplikasi terbaik untuk semua platform. Fakta bahwa aplikasi Flutter sekarang dapat dikembangkan untuk desktop membuat mesin Flutter jauh lebih dapat diakses oleh berbagai macam perangkat. Meskipun Google tidak dapat secara langsung mendukung perangkat ini, perusahaan berencana untuk terus membangun kemitraan dengan perusahaan lain dan mengembangkan ekosistem Flutter.
Kami ingin melihat Flutter di semua perangkat yang membutuhkan aplikasi yang cepat dan menarik.
Sudahkah Anda mencoba membangun aplikasi Flutter untuk Linux?
