Halo, Habr! Saya mempersembahkan kepada Anda terjemahan dari bahasa Inggris. Pitching Flutter ke artikel perusahaan atau klien Anda (penulis Wm Leler )Lebih dari satu tahun telah berlalu sejak penerbitan artikel
What's Revolutionary about Flutter (dan materi ini masih relevan). Ketika saya menulis artikel itu, hanya beberapa pengembang seluler yang mendengar tentang Flutter, tetapi sejak itu banyak yang berubah. Sekarang saya tidak punya waktu untuk mengikuti aliran artikel dan video baru yang muncul di komunitas yang aktif dan
terus berkembang ini .
Para pengembang menemukan Flutter , dan
mereka tergila-gila dengan itu . Berikut adalah contoh aplikasi dari
Reflectly yang dibuat dengan Flutter :
Aplikasi Smart Reflectly DiarySaya sering mendengar dari pengembang betapa sulitnya meyakinkan manajer perusahaan - atau klien, jika kita berbicara tentang agensi atau freelancer - untuk mencoba Flutter. Pembuat keputusan tidak siap untuk beralih ke teknologi terbaru hanya karena mutakhir. Sebagai aturan, mereka memahami masalah ini, tetapi tumpukan teknologi hanya bagian dari pekerjaan mereka. Penting bagi mereka untuk mengetahui bahwa menggunakan alat baru akan membantu perusahaan mereka menjadi lebih sukses di pasar, misalnya, menarik konsumen baru atau mengurangi risiko.
Artikel ini ditujukan untuk:
- pengembang yang ingin menjelaskan manfaat menggunakan Flutter untuk manajemen perusahaan. Bahkan jika Anda terbiasa dengan kerangka kerja ini, Anda masih perlu argumen yang meyakinkan untuk mendukungnya;
- pengembang yang berpikir untuk menciptakan produk mereka sendiri di Flutter.
Artikel ini juga akan membahas alasan mengapa Flutter mungkin tidak cocok untuk aplikasi tertentu, yang akan membantu Anda membuat keputusan.
Apa itu flutter?
Slogan Flutter (ringkas dan berbicara):
Buat aplikasi asli estetika dalam waktu singkat!
Slogan ini terdiri dari empat bagian, yang masing-masing harus dipertimbangkan secara terpisah:
- Pembuatan aplikasi
- Estetika
- Keaslian
- Rekam tanggal
1. Buat aplikasi
Sekarang Flutter dipenjara karena pengembangan aplikasi seluler untuk iOS dan Android. Tapi cara itu terlihat dalam jangka panjang, menonjol dengan latar belakang kerangka kerja seluler yang ada: Flutter bukan hanya kerangka kerja, ini adalah SDK lengkap untuk membuat aplikasi yang menggunakan layar. Ini berarti bahwa Flutter memiliki semua yang Anda butuhkan untuk membuat antarmuka pengguna, termasuk alat visualisasi dan elemen yang memerlukan rendering (widget dalam terminologi Flutter).
Flutter memiliki banyak kesamaan dengan mesin game seperti
Unity atau
Unreal , yang juga menyediakan alat visualisasi sendiri. Perbedaannya adalah bahwa Flutter digunakan untuk membangun
aplikasi , bukan game.
Fakta bahwa Flutter adalah SDK penuh berarti dapat Flutter ke hampir semua perangkat yang memiliki layar. Flutter renderer menggunakan
Skia, mesin grafis open-source populer yang digunakan lintas platform.
Mengepak di desktop dan Raspberry PiSementara kami fokus pada aplikasi seluler di Google, berbagai perusahaan mengirim Flutter ke
komputer desktop (macOS, Windows, Linux, dan lainnya),
TV (di sini Anda dapat melihat bagaimana
Flutter bekerja
di Nvidia Shield TV ), dan juga pada Raspberry Pi. Flutter bahkan digunakan untuk membangun antarmuka pengguna untuk
Fuchsia .
Secara bertahap, aplikasi akan muncul di luar ponsel. Akses ke aplikasi pada beberapa perangkat sekaligus akan menjadi akrab: termasuk asisten rumah (Google Home Hub, Lenovo Smart Display, dll.), Tampilan interaktif di mobil, peralatan rumah tangga (seperti kulkas), aksesoris (jam tangan, pakaian) dan IoT lainnya -perangkat.
Sudah pada tahun 2017, 8,4 miliar perangkat semacam itu didaftarkan secara online, dan menurut perkiraan
International Data Corporation , pada tahun 2020 jumlahnya akan melebihi 30 miliar (relatif terhadap 5 miliar ponsel). Namun, banyak dari perangkat ini akan memiliki tampilan interaktif. Arsitektur Flutter memiliki semua bahan untuk membuat
antarmuka pengguna yang indah dan fungsional untuk perangkat baru.
Layar di mana-mana!Dan, tentu saja, Flutter sepenuhnya gratis dan open source.
2. Estetika
Bisakah Anda menjamin kesuksesan aplikasi seluler Anda jika bersaing dengan
3,8 juta aplikasi di Google Play Store dan 2 juta di Apple App Store ? Bahkan jika Anda berhasil meyakinkan pengguna untuk mengunduh aplikasi Anda, kemungkinan dia akan aktif menggunakannya 30 hari kemudian hanyalah 3%! Perusahaan konsultan Gartner Inc. menyatakan bahwa hanya 0,01% dari semua aplikasi yang diterbitkan menjadi sukses secara finansial. Dalam situasi seperti itu, bantuan tidak akan berlebihan.
Menurut penelitian, memiliki desain yang menarik
memainkan peran besar . Jika Anda melihat aplikasi seluler paling populer dalam beberapa tahun terakhir, Anda akan melihat bahwa masing-masing dari mereka memiliki desain estetika yang unik. Selain itu, aplikasi yang indah memenangkan penghargaan dan mendapatkan ketenaran, yang sangat berharga.
Alibaba (kiri) dan Topline (kanan)2 dimensiContoh utama aplikasi Flutter termasuk aplikasi
dari Alibaba (perusahaan e-commerce
terbesar di dunia),
aplikasi rekaman audio Abbey Road Studios
Topline , dan demo
aplikasi 2Dimensi yang luar biasa
untuk membuat animasi
real-time .
Semakin banyak perusahaan berusaha untuk memastikan bahwa aplikasi mobile mereka cocok dengan branding perusahaan mereka, seperti situs web atau aplikasi web mereka. Ini, pada gilirannya, membutuhkan
tingkat penyesuaian yang tinggi .
Pada akhirnya, desainer sering menawarkan ide-ide kreatif yang sangat terkikis pada saat mereka diimplementasikan karena keterbatasan alat. Berkat Flutter, Anda dapat menerapkan
desain apa pun untuk aplikasi Anda.
Contoh lain dapat ditemukan di situs web Flutter resmi, serta di
It's All Widgets . Di antara mereka, Anda akan menemukan
aplikasi buku harian
Reflectly , yang saya kutip sebagai contoh di awal artikel. Saya sarankan Anda membiasakan diri dengan aplikasi yang tidak biasa ini dengan mengunduhnya ke
Android atau ponsel cerdas
Apple Anda dari toko aplikasi. Juga, pastikan untuk membaca artikel tentang
pengalaman mereka
beralih ke Flutter .
3. Keaslian
Item ini harus membingungkan bagi pengembang seluler. Dalam pengembangan seluler, istilah "aplikasi asli" sering digunakan untuk merujuk ke aplikasi yang mengakses API platform secara langsung menggunakan bahasa tertentu. Dan untuk membingungkan semua orang, dalam kerangka kerja seperti React Native dan Xamarin, istilah "asli" berarti bahwa mereka dapat menggunakan widget platform.
Di bidang pengembangan lain, istilah ini tidak berlaku seperti di seluler. Misalnya, Anda dapat menginstal Linux di komputer yang menjalankan Windows atau macOS (dan banyak lainnya), tetapi Anda tidak akan menyebut Windows atau macOS "asli", dan Linux sistem operasi "lintas platform" atau "hibrida". Kami menganggap Linux sebagai asli Windows atau macOS,
karena memang demikian .
Definisi "asli" yang lebih akurat
dalam pengembangan terlihat seperti ini:
Dimaksudkan atau dibangun ke dalam sistem yang ditentukan, terutama dalam arti bahasa yang terkait dengan prosesor, komputer atau kompiler ini, serta program yang ditulis di atasnya.
Aplikasi flutter dikompilasi ke dalam kode mesin asli (
ARM ) segera di iOS dan Android.
Keuntungan menggunakan aplikasi asli lebih dari cukup: mereka berjalan lebih cepat dan, yang paling penting, bekerja lebih stabil dan lebih sedikit menderita kelambatan atau pengereman (pembekuan buruk) Selain itu, aplikasi asli memberi pengembang lebih banyak kontrol atas perilaku aplikasinya.
Untuk mendapatkan semua manfaat dari aplikasi asli, pengembang seluler biasanya menulis dua aplikasi terpisah menggunakan set alat dan bahasa yang terpisah. Seringkali dua tim pengembangan terpisah yang harus berkoordinasi satu sama lain harus mengerjakan proyek-proyek tersebut. Pendekatan ini secara signifikan meningkatkan biaya pengembangan, meningkatkan risiko, dan mendorong tenggat waktu produk. Flutter, di sisi lain, memungkinkan pengembang untuk bergabung dalam penulisan basis kode tunggal, menyatukan tim pengembangan, mengurangi risiko dan mempercepat waktu peluncuran aplikasi di pasar - semua ini dikombinasikan dengan keunggulan aplikasi asli.
Manakah dari aplikasi ini yang asli? Keduanya!Tapi bagaimana dengan widget? Karena fakta bahwa Flutter beroperasi dengan widgetnya
sendiri , mungkin tampak bahwa aplikasi yang ditulis di atasnya akan terlihat berbeda dari aplikasi yang ditulis pada widget dan alat platform.
Animasi GIF di atas menunjukkan bagaimana jendela pengaturan yang ditulis di iOS terlihat dibandingkan dengan antarmuka yang sama yang ditulis pada Flutter. Meskipun ada sedikit perbedaan pada tingkat piksel, Flutter sangat menyederhanakan pembuatan layar yang terlihat dan terasa seperti yang asli.
Kita tidak boleh lupa bahwa bahkan aplikasi asli biasanya terlihat berbeda tergantung pada versi OS. Intinya, Flutter tidak perlu “pixel perfect”.
Widget bergetar beradaptasi dengan platform target, memberikan aplikasi tampilan yang tepat, termasuk ikon, palet warna, tata letak, font, perilaku gulir, dan banyak lagi. Tugas utama Flutter adalah membuat aplikasi yang ramah pengguna yang juga memenuhi prinsip-prinsip merancang platform tertentu.
Rendering aplikasi berkualitas tinggi yang ditulis dalam Flutter dipastikan oleh fakta bahwa mereka ditampilkan langsung di kanvas platform. Ini dimungkinkan karena Flutter memiliki fungsi SDK lengkap. Karena itu, aplikasi Anda tidak bergantung pada perubahan widget, font, dan elemen platform lainnya.
Menggunakan Flutter menghilangkan penggunaan
perpustakaan dukungan . Sebagai contoh, aplikasi Flutter ini berjalan pada ponsel dengan sistem operasi Android Jelly Bean (4.1.2) menggunakan widget dari desain material, meskipun ponsel itu sendiri dirilis
dua tahun sebelum muncul . Tentu saja, ponsel ini tidak memiliki widget desain bahan bawaan. Meskipun demikian, aplikasi Flutter Anda akan berfungsi sama seperti pada perangkat yang lebih modern dan akan terlihat luar biasa.
Jika bukan karena Flutter, Anda harus menyelesaikan masalah ini sendiri. Ini berarti perlunya pengujian yang lebih menyeluruh pada versi OS yang lebih lama dan menemukan solusi untuk platform yang tidak menyediakan akses ke elemen yang digunakan dalam aplikasi. Kami terus mendengar dari pengembang bahwa Flutter sangat menyederhanakan proses pengujian.
Selain kelebihan aplikasi asli, Flutter memiliki kelebihan lain:
- Aplikasi yang ditulis dalam Flutter juga akan berjalan pada versi OS yang lebih lama dari platform apa pun. Khususnya, jika Anda menguji aplikasi Flutter Anda pada versi Android yang baru, itu akan terlihat persis sama pada versi yang lebih lama. Ini memungkinkan aplikasi semacam itu bekerja dengan baik pada ponsel lama dan menghemat waktu selama pengujian.
- Rilis baru sistem operasi tidak akan dapat memecah aplikasi Anda (ini sangat jarang, dan sebagai aturan, ini adalah bug di dalam Flutter, dan bukan di aplikasi Anda).
- Aplikasi Anda tidak akan mengalami perubahan karena modifikasi OS oleh pabrikan atau penyedia (contoh paling umum adalah mengubah font default).
- Yang paling penting, Flutter memberi Anda kendali penuh atas bagaimana tampilan aplikasi Anda di semua platform dan OS, hingga piksel terakhir .
- Jika mau, Anda dapat secara spesifik membuat aplikasi Flutter Anda terlihat berbeda di iOS dan Android. Bahkan jika tidak, widget Flutter sendiri akan menyesuaikan dengan prinsip-prinsip desain untuk setiap platform.
Flutter memungkinkan Anda melakukan semua ini menggunakan basis kode tunggal untuk kedua platform. Atau Anda dapat
menambahkan kode asli untuk setiap platform dalam aplikasi Flutter jika Anda mau.
4. Catat tanggal
Akhirnya, Flutter juga bagus karena memungkinkan Anda untuk mengembangkan aplikasi yang lebih baik
bahkan lebih cepat . Fitur Flutter yang paling populer (dan sensasi) adalah
hot reboot stateful. Ini mengesankan tidak hanya dengan kecepatan (memakan waktu kurang dari satu detik), tetapi juga dengan pelestarian keadaan, yaitu, jika Anda mengubah kode jauh di dalam aplikasi, maka setelah kompilasi Anda tidak perlu secara manual membuat kembali keadaan terakhir aplikasi untuk melihat hasilnya.
Reboot stateful!Reboot semacam itu dimungkinkan berkat teknologi kompilasi canggih (yang dikembangkan oleh pembuat
kompiler V8 untuk JavaScript dan
Strongtalk untuk Smalltalk), serta fakta bahwa Flutter adalah asli dan dibangun berdasarkan tampilan yang diperbarui secara reaktif.
Seiring dengan mempercepat proses, banyak pengembang mencatat bahwa Flutter secara serius mengubah gaya kerja mereka: mereka dapat membuat tata letak baru di dua akun dan membuat perubahan yang diperlukan tepat di hadapan pelanggan.
Kami juga melihat efek positif dalam karya desainer yang mendapatkan apa yang mereka butuhkan. Jadi, mereka dapat bermain dengan parameter yang berbeda sampai mereka menemukan opsi yang sempurna. Memang, desainer yang menggunakan CSS di aplikasi web mengklaim bahwa
cukup mudah bagi mereka
untuk mengetahui cara membuat perubahan tata letak pada Flutter sendiri.
Untuk mempelajari lebih lanjut tentang cara Flutter bekerja, lihat
catatan pengembangan aplikasi waktu-nyata
ini . Anda juga dapat mengambil bagian dalam hackathon untuk melihat seberapa cepat Anda dapat mempelajari Flutter dan membangun aplikasi yang berfungsi di dalamnya.
Seperti disebutkan dalam paragraf sebelumnya, aplikasi Flutter memerlukan lebih sedikit tes, yang berarti Anda dapat menambahkan fungsionalitas baru lebih cepat. Inilah yang dikatakan JD.com tentang pengalaman mereka dengan Flutter:
Kami berhasil membuat fungsionalitas yang sama, hanya menggunakan setengah dari tim pengembangan. Dengan jumlah insinyur yang sama, kami dapat menambahkan lebih banyak fitur dalam satu rilis.
Alibaba juga mencatat bahwa menggunakan Flutter telah mengurangi waktu rata-rata yang diperlukan untuk menambahkan fitur baru dari satu bulan menjadi dua minggu.
Aplikasi HamiltonBerbicara tentang catatan. Di
aplikasi Hamilton, pengembang membuat perubahan besar
di malam hari menjelang rilis tanpa keraguan tentang stabilitasnya! Dan aplikasi ini, yang ditulis dalam waktu tiga bulan, disajikan di kedua toko aplikasi. Selain itu, Flutter sangat memudahkan penambahan fitur baru secara teratur untuk meningkatkan minat pengguna.
Maka aplikasi seluler yang berhasil dibuat.
Flutter membuat pembaruan widget secepat dan semudah membuat dan memodifikasi aplikasi. Kita sering mendengar kekhawatiran bahwa Flutter akan sulit mengikuti perkembangan widget platform. Namun, ketika Apple mengumumkan iPhone X baru mereka dengan potongan terkenal di layar, Flutter berhasil menambahkan dukungan untuk potongan ini bahkan sebelum dimulainya penjualan.
Dan ini tidak hanya berlaku untuk iOS. Pada saat Google mengumumkan
desain material yang didesain ulang secara substansial untuk I / O 2018, Flutter telah menerima pembaruan untuk sepenuhnya mewujudkan ide-ide baru. Itu adalah kemampuan Flutter untuk menyesuaikan dengan cepat yang memungkinkan hal ini.
Kami secara teratur menerima umpan balik dari pengembang yang mengklaim bahwa berkat Flutter mereka mulai bekerja 2-3 kali lebih efisien, dan aplikasi mereka secara keseluruhan menjadi lebih sukses.
Risiko dan keterbatasan
Tidak ada solusi tanpa kompromi, dan Flutter tidak terkecuali. Berikut adalah beberapa alasan mengapa Flutter mungkin bukan alat terbaik untuk aplikasi tertentu.
Karena kenyataan bahwa aplikasi Flutter mengandung widget Flutter dan alat visualisasi mereka sendiri, mereka sedikit lebih besar daripada aplikasi yang menggunakan alat yang dibangun ke dalam platform. Sampai saat ini, ukuran minimum aplikasi Flutter adalah 6.7MB, tetapi sekarang ukurannya telah
dikurangi menjadi 4MB . Kami berencana untuk melakukan optimasi lebih lanjut di masa mendatang.
Salah satu keuntungan terpenting dari Flutter adalah kemampuan untuk menggunakan basis kode tunggal ketika mengembangkan aplikasi untuk kedua platform seluler (Flutter juga cocok untuk membuat aplikasi untuk satu platform). Namun, ada aplikasi yang terikat pada platform tertentu atau bertindak sebagai pembungkus untuk presentasi yang disediakan oleh platform. Contohnya adalah aplikasi yang berjalan di utas latar belakang untuk menampilkan pemberitahuan. Aplikasi semacam itu juga dapat ditulis dalam Flutter, tetapi ini tidak akan memberikan keuntungan khusus.
Kita sering ditanya apakah Flutter akan tetap bertahan di pasar. Ada banyak alasan mengapa kami menyatakan: Pertama, Google sendiri adalah pengguna setia Flutter, baik dalam pengembangan aplikasi konsumen dan program internal, khususnya, aplikasi mobile Google Ads yang baru dirilis (sebelumnya disebut AdWords) ditulis dalam Flutter. Google sepenuhnya mendukung Flutter dan melakukan segalanya untuk membuatnya sukses.
Kedua, karena fakta bahwa aplikasi besar biasanya dikembangkan untuk dua platform yang tidak terkait, perusahaan menganggapnya kurang berisiko, misalnya, pertama merilis aplikasi untuk iOS, dan membuat aplikasi Android nanti jika ada permintaan untuk itu. Dengan Flutter, Anda dapat secara bersamaan
merilis aplikasi untuk kedua platform . Dengan demikian, Anda tidak hanya mengurangi risiko karena identitas fungsi mereka, tetapi juga memperluas pasar potensial untuk aplikasi Anda. Android sangat diuntungkan dari ini.
Ada masalah potensial lain: Flutter adalah kerangka kerja yang relatif baru. Secara alami, Flutter perlu waktu untuk membuat alat yang diperlukan, memperluas fungsionalitas dan mengembangkan komunitas.
Platform saat ini memiliki fungsionalitas yang belum diimplementasikan Flutter. Pada saat yang sama, Google terus berupaya menambahkan fitur baru ke Flutter.Jika Anda ingin mempelajari Flutter lebih dalam, Anda dapat menggunakan artikel What's Revolutionary tentang Flutter dan Why Flutter menggunakan Dart . Anda juga dapat melihat hasil survei pengguna Flutter terbaru kami.Mulai dari mana
Jika Anda memutuskan untuk mencoba Flutter, berikut adalah beberapa tips berguna:- Panduan ini akan membantu Anda menginstal Flutter, mengkonfigurasi editor, dan membuat aplikasi pengujian pertama.
- Lihat video Flutter ini .
- , Android , iOS , React Native Xamarin .
- , : Building Layouts in Flutter , Add Interactivity , A Tour of the Flutter Widget Framework ( ).
- Flutter , FAQ .
- It's All Widgets . , . Flutter-.
- Flutter, Flutter Weekly .
- Google Codelabs Flutter , , , Flutter Udacity.
- .
Bergabunglah dengan komunitas Flutter di Twitter , Gitter, dan Stack Overflow . Saya sarankan berlangganan milis Flutter Dev . Atau, Anda dapat menemukan Flutter Meetup atau Study Jam lokal Anda dan mencari tahu apakah ada hackathon pengembangan ponsel terdekat yang bisa Anda ikuti.Kesimpulan
Jadi Flutter memungkinkan pengembangan aplikasi berkecepatan tinggi, yang meningkatkan produktivitas Anda dan membantu Anda membuat aplikasi berkualitas lebih baik. Ini adalah seperangkat alat ekspresif, sangat fleksibel dan sangat dapat disesuaikan yang memberikan pengembang kontrol penuh atas produknya. Flutter membuat aplikasi asli yang cepat dan stabil untuk iOS dan Android menggunakan basis kode tunggal.Flutter menghemat uang Anda dan mengurangi risiko. Ini gratis dan open source. Dengan ini, Flutter membantu Anda menghasilkan lebih banyak uang. Ini dimungkinkan karena Anda memasuki dua pasar sekaligus: Aplikasi Android dan iOS, dan membuat aplikasi yang lebih baik dalam waktu yang lebih singkat.Mungkin umpan balik yang paling bagus dari para pengembang adalah bahwa pengembangan ponsel dengan Flutter menyenangkan ! :
92% , Flutter, , . ,
1.0, !
, Flutter . , . , . , , Flutter SDK, .