Di luar pertengahan 2019, cross-platform dengan tegas memasuki kehidupan perusahaan baru di seluruh dunia, tetapi lebih sering outsourcing tim pengembangan dan pelanggan yang bergantung pada pengurangan biaya melihatnya. Seseorang bertaruh pada React Native, seseorang sedang menjajaki kemungkinan Kotlin Multiplatform, dan Evgeny Saturov saturovv , tamu podcast AppsCast baru, telah secara aktif mengembangkan Flutter selama enam bulan terakhir, memantau pembaruan kerangka kerja dan mempromosikan teknologi kepada massa. Banyak tautan dan kiat bermanfaat untuk pengembang Flutter awal: dari pedoman ke repositori dengan contoh implementasi arsitektur - dalam percakapan dengan Eugene.
AppsCast adalah podcast pengembangan seluler yang dirilis dengan dukungan konferensi AppsConf . Setiap dua minggu, seorang tamu baru dengan siapa kami Daniil Popov ( int02h ) mendiskusikan teknologi, praktik terbaik, kehidupan pengembang, serta holivar dan berbagi pengalaman.Alexei Kudryavtsev : Halo semuanya, hari ini kami mengunjungi Zhenya Saturov, pengembang di Surf dan pembawa acara
Flutter Dev Podcast . Zhenya, ceritakan sedikit tentang dirimu.
Evgeny Saturov : Sepanjang hidup sadar saya, saya telah menjadi pengembang android, tetapi saya tidak begitu yakin akan masa depan tanpa awan seperti sebelumnya. Selama enam bulan terakhir, kami di perusahaan telah secara aktif tertarik pada Flutter, kami berusaha mengintegrasikannya ke dalam proses pengembangan produksi.
Alexei Kudryavtsev : Bagaimana Anda tiba-tiba beralih ke Flutter dari pengembangan Android?
Evgeny Saturov : Pertanyaan yang sulit. Saya sendiri terkadang bertanya pada diri sendiri. Saya tidak sengaja mendengar tentang Flutter dari propagandanya yang paling penting di negara itu, Zviad Kardava, di sebuah devfest di Novosibirsk. Kami belajar dan memutuskan untuk mencoba, selama enam bulan kami telah menulis di Flutter, kami telah berteman dengan UI deklaratif.
Bergetar menangkap
Daniil Popov : Apa yang membuat Anda tertarik dengan Flutter?
Evgeny Saturov : Flutter memiliki ambang masuk yang rendah, tidak memiliki konsep Activity dan Fragment, dan siklus hidupnya elementer dan terdiri dari tiga tahap. Semua yang ada di Flutter adalah widget: aplikasi itu sendiri, yang kami gunakan untuk mewakili sebagai kelas aplikasi, blok apa pun adalah widget tempat widget lain disematkan. Semua layar dibangun secara eksklusif berdasarkan komposisi. Struktur aplikasi Flutter membutuhkan arsitektur yang lebih ramping, aliran data yang lebih koheren.
Kepala Anda sedikit patah ketika Anda mencoba menulis tampilan khusus di Flutter setelah pengembangan Android. Itu tidak berfungsi di sana. Anda harus menyematkan pandangan satu sama lain dan mendapatkan elemen gabungan yang lebih kompleks.
Di Google I / O memperkenalkan Jetpack Compose untuk Android, yang memungkinkan Anda untuk menulis UI secara deklaratif. Idenya sepenuhnya dipinjam dari Flutter, bahkan namanya digunakan kembali.
Alexei Kudryavtsev : Ada teori konspirasi sehingga Google mempersiapkan pengembang Android untuk Flutter.
Evgeny Saturov : Saya bisa memberikan Anda teori konspirasi lain - Apple sedang mempersiapkan pengembangnya untuk Flutter.
Perbedaan antara Flutter dan solusi lintas platform lainnya
Alexei Kudryavtsev : Semua yang Anda katakan mirip dengan karakteristik produk React Native atau Xamarin. Apa bedanya?
Evgeny Saturov :
Menulis aplikasi produktif yang baik di React Native sulit karena solusi teknis yang mendasari itu. Interaksi dengan platform hanya dimungkinkan melalui JavaScript Bridge. Dalam prosesnya, operasi ini menguras kinerja secara signifikan, yang sangat penting saat merender UI.
Flutter, bagaimanapun, berurusan dengan masalah kinerja dengan harga tinggi - pengembang kerangka kerja harus menulis paket widget mereka di Dart (Flutter juga tertulis di atasnya). Saat merender, masalah penurunan permukaan tanah oleh fps tidak hanya menghilang, tetapi tim Flutter juga memastikan bahwa secara teori dimungkinkan untuk mencapai tidak hanya 60fps, tetapi juga 120fps pada perangkat yang mendukung ini.
Banyak yang membahas topik mengapa kerangka kerja tidak mendukung Kotlin dan apakah itu akan muncul, tetapi pengembang Flutter mengatakan bahwa mereka tidak memiliki tugas seperti itu, tetapi mungkin orang lain akan melakukannya, seperti JetBrains.
Daniil Popov : Jelas ada Kotlin Multiplatform. Anda perlu membuat bagian dari kompiler yang mengkompilasi Kotlin di Dart, dan akan ada untung.
Alexei Kudryavtsev : Anda bilang begitu, seolah-olah itu seperti mengklik jari Anda.
Evgeny Saturov : Sebagian besar pekerjaan telah dilakukan. Di Google I / O, mereka berbicara tentang mengoptimalkan Pengumpul Sampah di Kotlin, yang akan memungkinkan Anda untuk menggunakan banyak objek dalam milidetik. Ini penting, karena ketika merender UI, ribuan grafik widget dibuat ulang setiap 16 milidetik dan harus segera dibuang untuk mencegah penyumbatan memori. Sebelumnya, Kotlin tidak tahu caranya, tidak seperti Dart, tetapi sekarang tidak ada yang mencegahnya untuk menyeretnya ke Flutter.
Alexei Kudryavtsev : Bagian pertama dari proses daur ulang adalah alokasi banyak objek. Tidak, apakah kinerja menurun pada saat ini?
Evgeny Saturov : Objek itu sendiri ringan. Jika Anda menggali lebih dalam, aplikasi Flutter adalah recyclerview besar, daftar dengan elemen yang dapat digunakan kembali yang diberikan hanya ketika data di belakangnya berubah. Pada saat yang sama, widget yang dibuat ulang setiap 16 milidetik tidak ada hubungannya dengan widget yang ada di Android dan bertanggung jawab untuk menggambar diri mereka sendiri di atas kanvas.
Di sini widget adalah Kelas Data, di mana ada data yang menggambarkan widget ini. Widget yang digambar di kanvas ada dalam satu salinan sepanjang siklus hidup. Hanya pembungkus datanya yang dibuat ulang sepenuhnya. Ini memungkinkan Anda untuk bekerja dengan cepat tanpa menyumbat ingatan Anda.
Flutter adalah proyek sumber terbuka penuh.
Ini bukan jenis open source yang dicerminkan seperempat dari repositori tertutup ke github publik. Ini adalah open source nyata, di mana pengembangan dilakukan langsung di repositori terbuka di github. Anda dapat membuat perubahan apa pun pada widget, menulis paket widget, dan menggunakannya di perusahaan Anda.
Alexei Kudryavtsev : Jika mereka membuat widget sendiri sepenuhnya, lalu bagaimana dengan animasi dan transisi antar layar, misalnya, di iOS?
Evgeny Saturov : Pertanyaan yang lebih penting adalah bagaimana membuat aplikasi terlihat akrab bagi pengguna platform ini. Di luar kotak, ini tidak terjadi di hampir semua kasus. Jika Anda menulis aplikasi di Dart dan menggunakan beberapa jenis paket widget, maka saat startup, aplikasi di Android dan iOS akan terlihat sama.
Untuk mendapatkan pengalaman asli di platform, Anda perlu menguji platform secara manual pada aplikasi yang sedang berjalan. Jika ini iOS, maka Anda akan menggunakan widget dari Paket Cupertino, jika itu Android, widget dari Paket Bahan. Hal yang sama dengan transisi: Anda dapat mengaktifkan swipe back untuk iOS, tetapi di Android akan ada navigasi asli.
Alexei Kudryavtsev : Bagaimana perpindahan antar paket? Apakah Anda benar-benar perlu menulis "jika iOS, gunakan ini", "jika Android, lalu ini"?
Evgeny Saturov : Ya, persis, benar secara harfiah. Di Google I / O, saya bertanya kepada pengembang Flutter mengapa tidak beralih dari kotak, menjahit cek di dalam platform yang saat ini berfungsi, dan secara otomatis mengatur widget. Lagi pula, orang berharap bahwa kerangka kerja UI platform silang akan melakukan semua ini sendiri. Mereka menjawab bahwa mereka ingin memberi pengguna kebebasan untuk memilih bagaimana tampilan aplikasi.
Mengingat kenyataan bahwa dimungkinkan untuk menulis paket widget bermerek untuk sistem desain Anda, Anda dapat menulis aplikasi dengan tampilan yang sama di kedua platform.
Tentang Flutter internal
Daniil Popov : Jadi, Flutter memiliki mesin rendering sendiri, yang secara independen menarik semua widget?
Evgeny Saturov : Ya, tapi "
milikmu " bukan kata yang tepat. Ini adalah Skia, mesin terkenal yang telah bekerja di Chrome, Firefox, dan sejumlah browser lain untuk waktu yang lama.
Faktanya, tim Flutter adalah tim Chromium spin-off.
Para pengembang ditugaskan untuk melakukan overclocking mesin Chromium secara maksimal. Pada saat yang sama, tidak ada persyaratan untuk mempertahankan kemampuan untuk merender halaman html. Dengan kondisi ini, mereka mampu mempercepatnya hampir dua puluh kali dan mulai berpikir apa yang harus dilakukan dengan hasil seperti itu.
Menjadi jelas bahwa web bukan satu-satunya aplikasi untuk mesin ini, dan mereka mencoba melakukan sesuatu untuk pengembangan ponsel. Skia yang diperketat, menulis widget mereka, dan kami mendapat aplikasi yang cukup kuat. Kemudian mereka selesai secara iteratif hingga ke kondisi saat ini, ketika kita dapat menulis aplikasi berfitur lengkap, dengan implementasi yang teliti tidak dapat dibedakan dari yang asli.
Alexei Kudryavtsev : Apa lagi yang ada di bawah tenda Flutter? Dapatkah Anda memberi tahu saya apa yang terdiri dari itu, di mana optimasi di sana, yang memungkinkan pencapaian kinerja seperti itu?
Evgeny Saturov : Jika kita berbicara tentang arsitektur platform itu sendiri, maka dua lapisan utama perlu dibedakan. Basis ditulis "di pro." Ini termasuk Skia - mesin grafis yang menarik semua keindahan ini, mesin teks yang sepenuhnya dipinjam dari Android, dan Dart VM. Lapisan kedua ditulis seluruhnya dalam Dart. Ini berisi semua paket widget: animasi, pemrosesan gerakan, Paket Foundation dengan segala macam hal. Karena semuanya ditulis dalam Dart, kinerja yang baik disediakan.
Saya akan segera memasukkan lima sen: jika setelah rilis ini Anda memutuskan untuk mencoba melakukan sesuatu di Flutter, instal plug-in di Android Studio, kumpulkan aplikasi pertama Anda dan katakan bahwa Anda telah ditipu dengan kejam, karena semuanya lambat, Anda akan benar. Ini terjadi selama proses debug, yang benar-benar melambat, animasi tertinggal, daftar-daftar nyaris tidak bergulir, dan aplikasi berbobot sekitar 60 MB. Faktanya adalah bahwa dalam versi debut Anda menarik sebagian besar Dart VM. Ini adalah biaya untuk kemampuan mengkompilasi ulang dengan cepat. Ketika Anda merakit rilis build, semua megabyte ini akan terpesona oleh angin, aplikasi akan bekerja lebih cepat, tanpa fps subsidence sama sekali. Pernyataan ini sangat penting untuk tidak menakuti pengembang Flutter awal.
Dart VM adalah topik terpisah. Patut dicatat bahwa kontributor utama adalah pengembang Rusia kami Slava Egorov, yang dengannya mereka merekam
rilis untuk Flutter Dev Podcast . Dart VM memungkinkan Anda memperbarui kode dengan cepat saat perubahan dilakukan. Ini disebut Hot Reload - Anda membuat perubahan pada kode, klik tombol, dan setelah sedetik perubahan sudah terlihat di perangkat. Ini sangat mempercepat pengembangan dan menciptakan suasana yang menguntungkan di tim.
Alexei Kudryavtsev : Bagi saya penting bahwa selama Hot reload Anda tetap dalam keadaan mengalir. Sangat menyenangkan untuk proyek-proyek kecil. Tetapi ketika proyek besar, Anda memindahkan satu tampilan dan menunggu sepuluh menit.
Evgeny Saturov : Ya, saya mendengar keluhan dari ayosnikov bahwa perakitan dapat memakan waktu hingga 10-15 menit.
Salah satu poin Flutter yang sangat kuat adalah berdentang.
Saya tidak tahu caranya di iOS, tetapi di Android, berdentang sangat merepotkan. Setiap pembaruan Android Studio merusak sesuatu, dan bekerja lambat, memerlukan sumber daya yang tidak realistis, prosesor terbaru, dan segunung RAM. Flutter segera menawarkan deringan ringan. Tidak perlu bekerja di Android Studio, Anda dapat mengunduh VS Code, menginstal plug-in, dan ini cukup untuk pengembangan. Saya harus segera mengatakan bahwa untuk pekerjaan penuh dengan Flutter, Anda masih memerlukan peralatan Apple, karena jika tidak, Anda tidak akan dapat memeriksa perakitan Anda di iPhone.
Daniil Popov : Anda mengatakan bahwa Flutter berkembang dengan pesat, tetapi apakah akan ada masalah kompatibilitas karena ini? Misalnya, saya meyakinkan bisnis untuk membuat aplikasi di Flutter, kami menulis, men-debug, dan di sini versi baru Flutter atau Dart keluar, dan kode kami tidak dikompilasi, semuanya berantakan. Saya duduk di genangan air di depan pelanggan.
Evgeny Saturov : Ini sangat mungkin terjadi. Ada hal yang menarik seperti polling UX yang dilakukan oleh tim Flutter.
Survei terakhir bertanya: "Apakah Anda siap untuk perubahan yang tidak didukung tanpa kompatibilitas ke belakang atas nama kesederhanaan dan kemurnian kerangka kerja?" Lebih dari 80% mengatakan mereka siap.
Saya tidak tahu apakah mereka berpikir dengan baik sebelum menjawab pertanyaan, dan seberapa sah hasilnya, tetapi kehadiran publikasi semacam itu mengatakan bahwa mulai saat ini para pengembang akan mengizinkan perubahan yang tidak didukung. Namun, ayosniki belum terbiasa. Berapa Swift telah diperbarui secara radikal?
Di mana untuk memulai?
Daniil Popov : Di mana untuk memulai jika Anda memutuskan untuk mencoba Flutter untuk diri sendiri? Demi kepentingan, saya membuka Google codelab dan ada contoh nyata tentang cara mentransfer dari Jawa ke Dart. Apakah ada hal seperti itu bagi pengembang iOS?
Evgeny Saturov : Tim pengembang Flutter telah merilis serangkaian artikel tentang cara bermigrasi ke perwakilan berbagai profil. Ada
Flutter untuk pengembang Android ,
Flutter untuk pengembang iOS . Saya membuka dan melihat, misalnya, "Apa yang setara dengan tampilan UI di Flutter?" atau "Di mana Storyboard saya?". Semua pertanyaan ini dijawab. Saya menyarankan Anda untuk mulai dengan artikel-artikel ini, semuanya ada dalam dokumentasi Flutter.
Masih perlu menyentuh pada topik tentang bagaimana berteman dengan Dart sebagai bahasa pengembangan untuk Flutter. Ada
Tur Bahasa Dart untuk ini . Ada semua konsep dasar Dart. Tetapi, sejujurnya, beberapa hal berbeda sedikit lebih signifikan (terutama jika Anda menggali lebih dalam), beberapa hal hilang, misalnya, fungsi kelebihan beban, Anda masih perlu meletakkan tanda titik koma di akhir baris ...
Alexey Kudryavtsev : Apakah ada dokumentasi? Siapa yang dapat saya ikuti di Twitter? Blog di Media?
Evgeny Saturov : Tentu saja, sekarang ada banyak informasi. Ada situs web
Flutter dengan instruksi terperinci tentang cara mengatur lingkungan pengembangan, apa yang harus diunduh, SDK mana, plugin yang harus dipasang. Ada codeword, mereka cukup sederhana dan cukup informatif, karena mereka tidak memberikan seperseratus dari apa yang Flutter. Tetapi pertama-tama, untuk memahami konsep pada prinsipnya, codelab akan melakukannya. Saya tidak menyarankan untuk melalui semuanya, ada yang cukup rumit yang mengintegrasikan Google Maps ke dalam aplikasi. Ini juga menarik, tetapi ada lebih banyak masalah dengan kunci daripada pengembangan nyata. Cukup melewati tiga yang pertama. Ada lebih banyak contoh fungsional - klon Whatsapp nyata, aplikasi Instagram dengan asumsi.
Alexei Kudryavtsev : Ini keren, bersama dengan instruksi migrasi.
Evgeny Saturov : Ya, Anda dapat melihat bagaimana dalam kenyataannya orang melakukan hal-hal yang biasa kita lihat dalam aplikasi. Ini membantu untuk memulai.
Selain itu, ada banyak kursus berbayar tentang Udemy, tapi saya ragu itu sangat perlu. Saya melihat mereka terdiri dari apa, dan semua informasi ini (mungkin tidak begitu terstruktur) dapat ditemukan benar-benar gratis.
Saya juga merekomendasikan situs
https://itsallwidgets.com/ , yang memungkinkan Anda untuk menginstal aplikasi showcase di perangkat Anda sekarang (tidak masalah apakah Anda akan mengembangkan sesuatu di Flutter atau tidak) dan melihat cara kerjanya. Ada aplikasi
History of Everything yang ditulis dalam tiga bulan. Ini adalah penggemar mutlak, animasi gila. Ada garis waktu raksasa yang dapat Anda perbesar, dan berbagai episode kehidupan manusia mulai muncul di sana. Masing-masing memiliki animasi kustom sendiri. Semuanya dilakukan di Dart tanpa perpustakaan asli. Di situs ini Anda dapat memahami di mana kemampuan Flutter berada: ada permainan yang ditulis secara eksklusif di Dart, ditampilkan di Skia, ada juga aplikasi reguler.
Kontes
Flutter Buat baru-baru ini diadakan: Anda harus menulis aplikasi kecil Anda sendiri dengan syarat bahwa sumber, termasuk semua dependensinya, beratnya tidak lebih dari 5Kb. Sang pendamping menang, yang mengambil langkah interaktif di bumi, yang dapat Anda putar, sodok ke mana saja, dan melihat ramalan cuaca nyata. Ini terlihat sangat tidak realistis. Hal-hal ini dapat digunakan untuk inspirasi.
Dan Anda masih dapat menggunakan beberapa repositori di GitHub yang dibuat oleh penggemar. Mereka semua disebut sama - Awesome Flutter. Ini adalah koleksi dengan semua sampel, perpustakaan, artikel.
Tentang sumber informasi. Saya sarankan berlangganan
saluran youtube resmi Flutter. Ada acara yang keluar secara teratur.
Flutter Widget of the week - setiap minggu cerita rinci tentang widget tunggal, kasus aplikasi utama dan fitur.
The Boring Flutter Development Show adalah format acara menarik yang berlangsung selama satu jam dan keluar tanpa diedit. Selama ini, para peserta mengkode. Tampaknya mereka melakukannya tanpa banyak persiapan, karena kesalahan terus-menerus muncul, mereka mencoba melakukan sesuatu, mereka bodoh, mereka tidak mengerti apa yang sedang terjadi. Menonton ini sangat menarik.
Jika Anda menonton semua pertunjukan ini (jumlahnya relatif sedikit), Anda bisa menjadi orang yang sama sekali berbeda dan percaya bahwa Anda telah menulis Flutter sepanjang hidup Anda. Mereka memunculkan topik-topik menarik, masalah-masalah yang dihadapi orang-orang, dan selalu mencari solusi. Ini dibintangi semua bintang utama Flutter:
Emily Fortuna ,
Andrew Brogdon . Anda dapat berlangganan mereka di Twitter, mereka memposting secara aktif. Anda pasti harus berlangganan
Brian Egan , ia memiliki
repositori dengan 16 sampel dengan pola arsitektur yang berbeda. Ini adalah hal yang sangat diperlukan ketika Anda sudah menulis di Flutter dan pada awal proyek Anda harus memilih arsitektur yang akan Anda gunakan. Anda hanya pergi ke Brian, dan dia sudah menyiapkan segalanya untuk Anda. Orang-orang ini mendorong industri pengembangan Flutter ke depan.
Bergetar dalam produksi
Alexei Kudryavtsev : Katakanlah saya adalah direktur teknis perusahaan. Di mana saya bisa mencari pengembang Flutter?
Evgeny Saturov : Sama seperti orang: ada ruang obrolan terbuka di telegram dengan cukup banyak orang yang sudah menulis di Flutter. Tetapi saya akan mengatakan bahwa Anda tidak perlu mencari pengembang Dart. Bahasa adalah alat dan ketidaktahuannya bukan halangan untuk mempekerjakan. Pertanyaan lain adalah Flutter bukan hanya kode Dart. Anda masih perlu mengakses platform. Dan inilah pertanyaannya: seberapa cepat pengembang Android mencari cara untuk melakukan ini di iOS, dan sebaliknya, seberapa cepat pengembang web Anda akan mengetahuinya, bagaimana melakukannya di sana dan di sana.
Saat ini, tim pengembangan Flutter paling seimbang terdiri dari pengembang Android dan iOS.
Hal lain adalah bahwa ini tidak selalu mungkin untuk dicapai, karena ayosniki masih waspada terhadap Flutter.
Alexei Kudryavtsev : Bagaimana Flutter digunakan dalam produksi? Berapa banyak proyek yang Anda tulis sebagai studio? Dan berapa harganya?
Daniil Popov : Dan siapa lagi selain Anda yang menulis di sana?
Evgeny Saturov : Dalam kasus outsourcing kami, ini terbang dengan keras, karena kami dapat menawarkan harga yang lebih rendah daripada untuk dua aplikasi asli. Selama sepuluh tahun keberadaan kerangka kerja asli, semua pelanggan terbiasa harus membayar dua kali untuk pekerjaan yang sama secara default, yang mahal, terutama untuk perusahaan kecil yang menghitung uang.
Bagi mereka, Flutter adalah penyelamat, seperti lintas-platform, hanya Flutter memberikan hasil yang sangat keren.
Dan sudah ada pelanggan yang datang dan berkata: - Kami hanya perlu Flutter. Baru-baru ini, ini telah terjadi semakin banyak.
Kami masih mengumpulkan analitik karena kami telah menyelesaikan proyek kecil yang kami pilih sebagai pilot. Ternyata dilakukan sekitar satu setengah kali lebih cepat daripada jika kami melakukan dua proyek asli secara paralel. Harus diingat bahwa ini adalah pengalaman serius pertama kami dan banyak masalah diselesaikan untuk waktu yang lama. Idealnya, Anda dapat mencapai peningkatan ganda dalam kecepatan dengan kekuatan tim yang lebih kecil. Dan jangan lupa bahwa kemudian akan ada debugging setengah, Anda tidak akan harus memperbaiki bug pada dua platform.
Tentang siapa lagi yang menggunakan Flutter. Baru-baru ini saya mengetahui bahwa proyek-proyek tertentu (tentu saja, bukan yang unggulan) ditulis dalam Odnoklassniki, di Grab, sebuah taksi di Asia Tenggara yang baru-baru ini dibeli oleh Uber.
Kecenderungan umum adalah ini: sangat cocok untuk prototyping, cocok untuk eksperimen, karena ada interop dengan yang asli.
Flutter iOS Android-, A\B , , , .
-, ( json, , ).
Flutter ? , , , , , . Flutter β UI, , , .
: ?
: , iOS - , Flutter , . ?
: iOS , , , -, GPU. , iOS- β CPU. , , Flutter, CPU, GPU. - . opengl . Flutter , .
: . , Flutter Engine, . , : APK , 64- . , -.
( ), , iOS- , X-Code ( ).
. Cupertino Widgets 70%. view controller β , . β , .
, , : , . , res, , . Flutter Dart-, . , .
Flutter
: Flutter, roadmap?
: ,
. Google I/O
Flutter for Web , Flutter- web- . Flutter Engine. , . roadmap β . , , .
, , β .
Flutter, , , , , .
, Flutter- . showcase Flutter Live, .
flutter-: . , , - developer preview, .
, Flutter . , , .
Release Notes , . , , , , , .
, , - , issues Flutter.
Kesimpulan
: . Flutter , , . Xamarin, . , Flutter .
, Dart . , . , Dart β , . UI , Flutter.
: Android-, Flutter: Β« 2019 , , - , FlutterΒ».
, , .
Flutter , AppsConf .