Ulasan Google Flutter - Mengapa Pengembang Aplikasi Seluler Suka Flutter

Mengapa pembuat aplikasi menyukai Flutter? Karena Flutter luar biasa.

Flutter melayani bisnis (dengan menawarkan biaya pengembangan yang wajar) dan pengembang (dengan menawarkan kegunaan dan kecepatan yang tinggi). Itulah mengapa beberapa perusahaan besar beralih ke Flutter, seperti Google Ads, Alibaba, Reflectly, dan masih banyak lagi.

Google telah melakukan pekerjaan yang hebat dalam membangun Flutter, dan mereka terus membuat kerangka kerja ini menjadi lebih baik.

Dalam posting ini, saya akan memberikan gambaran singkat tentang Flutter dan fasilitas baru, dan saya akan berbicara tentang mengapa kerangka kerja ini layak untuk digunakan. Selain itu, saya akan membahas apa yang mungkin menghambat perusahaan besar untuk mengadopsi Flutter.

Tapi hal pertama yang pertama.

Apa Inti dari Flutter?

Berikut beberapa hal tentang Flutter yang mungkin sudah Anda ketahui:

  • ini adalah toolkit lintas platform sumber terbuka
  • aplikasi ditulis dalam bahasa pemrograman Dart
  • itu memiliki mesin grafis sendiri (Skia)
  • ini mendukung tiga platform secara resmi: iOS, Android, dan web (dalam versi beta)
  • secara tidak resmi - ini juga mendukung desktop

Google memperkenalkan versi pertama Flutter pada akhir Feb 2018. Mulai April 2020, 1,12 rilis tersedia.

Apa yang spesial dari Flutter?

Flutter menggabungkan kualitas aplikasi asli dengan fleksibilitas pengembangan lintas platform.

Sebenarnya, banyak alat lintas platform memungkinkan Anda menulis kode satu kali dan menggunakannya di iOS dan Android. Namun tidak semua dapat membuat tampilan yang sama seperti aplikasi asli.

Tapi itulah yang dilakukan Flutter: alih-alih menjadi pembungkus di atas komponen UI asli (seperti React Native dan Xamarin), Flutter menggambar UI dari awal.

Flutter mempertahankan pengalaman dan nuansa asli aplikasi, dan Anda tidak perlu mengkhawatirkan kinerjanya di platform apa pun.

Selain itu, karena Flutter adalah kerangka kerja sumber terbuka, pengembang mana pun dapat mengubahnya di GitHub dan mengirim permintaan penggabungan. Dan jika Anda melihat popularitas Flutter - 90,4K bintang GitHub , 12k fork , dan 18.445 komit - Anda akan mendapatkan ide bahwa developer menyukai Flutter dan berkontribusi untuk membuatnya lebih baik.

Bagaimana Cara Kerja Flutter?

Flutter tidak dikompilasi langsung ke aplikasi iOS atau Android . Aplikasi diluncurkan berdasarkan kombinasi mesin rendering (dibangun di atas C ++) dan Flutter (dibangun di atas Dart). Semua file yang dihasilkan dengan cara ini dilampirkan ke setiap aplikasi dan perangkat lunak rakitan SDK untuk platform tertentu.

Ini seperti pengembangan game: game tidak mengalokasikan kerangka kerjanya, dan fungsionalitas dilakukan dengan mesin game. Sama untuk software Flutter - semua aplikasi yang berbasis Flutter SDK mengganti bagian framework asli dengan elemen Flutter.

Meskipun dapat memengaruhi ukuran aplikasi akhir, kinerjanya masih cukup baik - rendering dibuat dengan kecepatan hingga 120 FPS .

Karena kompilasi asli untuk prosesor ARM, rendering sederhana, dan sekumpulan widget dan alat terintegrasi, Flutter membuat proses pengembangan lebih sederhana.

Plus, ia menawarkan beberapa fitur yang sangat enak seperti Hot Reload .

Begini cara kerjanya:

Saat Anda mengklik tombol Hot Reload, semua perubahan kode akan langsung ditampilkan di gadget, emulator, dan simulator. Aplikasi terus bekerja dari tempatnya sebelum Anda melakukan hot reload: kode diperbarui, tetapi eksekusi terus berlanjut.

Mengapa Memilih Flutter untuk Aplikasi Lintas Platform?

Versi Flutter baru akan terus keluar dengan fitur yang lebih canggih. Tetapi sudah ada banyak fitur yang disempurnakan yang dengan sempurna menjelaskan mengapa Flutter sangat disukai.

Pertama , pengembangan lintas platform dengan Flutter, bertentangan dengan kepercayaan populer, tidak memperburuk perangkat lunak.

Flutter hadir dengan semua widget asli untuk antarmuka Android dan iOS seperti Material Design dan Cupertino. Selain itu, framework dapat mengubah perilaku elemen terpisah untuk membuat UX serupa bagi pengguna aplikasi.

Kedua , Flutter memungkinkan penerapan kompilasi file diskrit dalam mode pengembang. Kompilasi JiT mempercepat pengembangan dan debugging perangkat lunak.

Ketiga , Flutter memungkinkan backend yang fleksibel dan dapat diskalakan.

Ini mendukung plugin seperti Firebase, SQLite, dan sebagainya (pub.dev akan membantu Anda menemukan yang Anda butuhkan). Firebase membuat infrastruktur aplikasi dapat diskalakan, tanpa server, dan redundan.

Jadi, jika Anda mengerjakan aplikasi yang membutuhkan database waktu nyata atau fungsi cloud, Flutter mendukung Anda.

Dan yang terakhir: Flutter sangat mudah dipelajari .

Sejak awal, pengembang Google menetapkan tujuan untuk menurunkan penghalang masuk. Mereka dengan hati-hati menyusun dokumentasi dan sumber daya yang dapat digunakan pengembang. Ia bahkan memiliki bagian khusus yang dapat Anda gunakan untuk mulai mempelajari kerangka kerja tergantung pada spesialisasi Anda:

  • Flutter untuk pengembang Android
  • Flutter untuk pengembang iOS
  • Flutter untuk pengembang React Native
  • Flutter untuk Xamarin.Forms devs
  • Flutter untuk pengembang web

Karena dokumentasi mendetail Flutter, Anda akan mengetahui cara menulis kode di Dart meskipun Anda hanya memiliki pengalaman dengan alat grafik Unity untuk membuat game Android.

Flutter 1.12 (Versi Terbaru) dan Keuntungannya

Mari kita lihat fitur-fitur keren apa yang diperkenalkan Flutter dalam versi terbaru 1.12:

Mode Gelap iOS

Mulai sekarang, Flutter mendukung tampilan dan nuansa iOS 13, termasuk dukungan mode gelap lengkap di widget Cupertino. Dan ini bukan hanya tentang menukar latar belakang tetapi mengadaptasi warna lainnya agar cocok.

Dukungan add-to-app

Peningkatan besar lainnya adalah pembaruan Add-to-App, yang untuk mengintegrasikan Flutter ke aplikasi iOS / Android yang sudah ada.

Versi baru Flutter mendukung penambahan satu instance Flutter layar penuh ke aplikasi, bersama dengan:

  • Integrasi API yang distabilkan di Java, Kotlin, Objective-C, dan Swift
  • Dukungan untuk menggunakan plugin dalam modul Flutter
  • Mekanisme integrasi tambahan melalui kerangka kerja Android AAR dan iOS

Dukungan web beta

Saluran master, dev, dan beta Flutter baru memberikan dukungan yang lebih baik untuk web. Mau contoh?

Inilah Rivet , proyek pendidikan yang menggunakan Flutter dan Firebase untuk membuat versi web aplikasi mereka.

Dart 2.7

Versi baru kerangka kerja ini memperkenalkan Dart 2.7.

Pembaruan ini meningkatkan pengalaman berfungsi dengan Dart 2.5 tentang cara string aman menangani kemampuan dan proses ekstensi. Ini membantu pengembang mencegah kesalahan saat variabel mendapatkan nilai nol dan mengurai bilangan bulat dalam sebuah string.

Dan berikut beberapa fitur lain dari versi Flutter terbaru:

  • dukungan desktop macOS (alfa)
  • debugging multi-perangkat
  • pengujian citra emas
  • Peningkatan versi Android
  • memperbarui DartPad

Itu Bagus, Tapi Bukan Tanpa Masalah: Apa yang Menahan Pengembang?

Flutter sangat keren: mudah dimulai, mudah digunakan, dan disajikan oleh perusahaan teknologi besar. Namun berikut adalah alasan mengapa Pengembang Senior Anda mungkin tidak berbagi optimisme Anda.

Popularitas Dart (rendah)

Tidak seperti Java / Kotlin untuk Android atau Swift / Objective-C untuk iOS, Dart belum memiliki popularitas tinggi. Dan itu sangat tidak mungkin.

Dart tidak terlalu sulit untuk dipelajari, dan ada banyak tutorial (seperti ini), tetapi beberapa pengembang tetap menggunakan Java dan alat-alat familiar lainnya.

Pada saat yang sama, Anda tidak dapat menggunakan Flutter dan tidak menggunakan Dart: bahkan fitur mematikan Flutter - Hot Reload - tidak akan berfungsi tanpa Dart.

Tidak mendukung semua perangkat

Anda tidak dapat membuat aplikasi untuk perangkat iOS 32-bit seperti yang lebih lama dari iPhone 5s. Sama untuk desktop Windows: Anda tidak dapat menjalankan Flutter di laptop 32-bit Anda.

Dan pengembang Flutter tidak berencana untuk memperbaikinya karena "ini akan melibatkan banyak pekerjaan."

Jadi jika Anda ingin membuat kode dengan Flutter, Anda harus memiliki perangkat x64-bit atau meningkatkan yang Anda gunakan sekarang.

Jumlah perpustakaan terbatas

Meskipun ada banyak Flutter libs seperti fl_chart (untuk menggambar grafik di Flutter), path_provider (digunakan untuk mencari file di Android / iOS), flutter_sliding_tutorial dan banyak lagi, jumlahnya masih terbatas.

Ini tidak sulit untuk dijelaskan: Flutter adalah kerangka kerja yang relatif baru, dan pengembang belum memiliki cukup waktu untuk mengembangkan perpustakaan sebanyak yang ditawarkan oleh bahasa asli.

Namun, perpustakaan yang paling penting sudah ada, dan yang baru terus bermunculan.

Aplikasi Flutter berukuran lebih besar

... dibandingkan dengan aplikasi asli yang dikembangkan. Tim Flutter mengukur ukuran aplikasi minimal (tanpa Komponen Material, hanya satu widget Center, yang dibuat dengan flutter build apk --split-per-abi), dibundel dan dikompresi, menjadi 4,3 MB untuk ARM, dan 4,6 MB untuk ARM 64 .

Aplikasi dasar sekarang ~ 4MB di Android dan ~ 10MB di iOS.

Keahlian yang terbukti sedikit

Flutter mungkin disukai oleh pengembang, tetapi perusahaan besar tidak terburu-buru untuk berhenti membuat aplikasi asli (atau React Native) dan beralih ke Flutter.

Bagi kebanyakan perusahaan, masalah terbesar adalah kebaruan Flutter. Dart lebih baru dari Java atau C #, dan Flutter sendiri adalah merek baru.

Tentu saja, ada banyak aplikasi sumber terbuka Flutter, termasuk yang besar seperti Google Ads atau Hamilton (lihat daftar lengkapnya di sini), namun tidak terlalu banyak.

Dan tidak ada yang ingin menjadi orang yang mengadopsi kerangka kerja baru hanya untuk beralih ke pengembangan asli beberapa bulan kemudian.

Namun yang lebih penting adalah Flutter adalah jalur yang Anda jalani sendiri:

  • tidak banyak praktik terbaik yang dikonfirmasi (setidaknya di proyek skala besar)
  • selalu ada kesempatan Anda yang pertama menghadapi masalah khusus ini
  • sedikit harapan seseorang akan membantu Anda - Anda harus mengambil setiap langkah dengan hati-hati dan siap menghadapi konsekuensinya

Tempat Menggunakan Flutter

Pertama-tama, lebih baik menggunakan Flutter untuk permulaan MVP saat Anda memiliki waktu dan uang yang terbatas untuk memverifikasi model bisnis.

Aplikasi Flutter lebih murah *:

  • * dibandingkan dengan biaya dua aplikasi asli
  • tim pengembangan 40% lebih kecil
  • proses linier
  • Anda dapat menghabiskan lebih banyak waktu untuk mengerjakan fitur aplikasi

Dengan memilih proyek Flutter, Anda mengurangi jumlah jam pengembangan. Pengembangan flutter tidak membutuhkan banyak waktu dibandingkan dengan native.

Berikut contohnya. Katakanlah Anda membuat aplikasi mirip Instagram untuk dua platform. pengembangan iOS akan mengambil, kira-kira, sekitar 700 jam, Android - juga 700H .

Dengan Flutter, Anda akan mencakup kedua platform dan menghemat waktu: 700 jam Android + 700 jam iOS vs. 700 jam Flutter.

Anda menghemat banyak waktu yang dapat dihabiskan untuk hal lain, seperti memoles fitur.

Membungkus

Jika Anda membuat aplikasi dalam waktu terbatas dengan anggaran terbatas, Flutter pasti patut dicoba.

Ini sebagus kelihatannya, dan dengan setiap pembaruan baru, pengembang Google menambahkan lebih banyak alat untuk pengembangan lintas platform.

Tentu saja, kerangka kerja ini mungkin tampak tidak biasa bagi pecinta C # dan Java, tetapi bukan berarti itu akan memaksa Anda keluar dari zona nyaman. Setelah menguasai perbedaan sintaks kecil, Anda akan segera melihat bahwa pengembangan UI berjalan beberapa kali lebih cepat dibandingkan dengan pengembangan asli.

Dan jika Anda berhasil, dan jika Flutter bertahan, itu bisa memberi Anda pengalaman dan peluang pengembangan seluler yang menarik di masa depan.