8 plus Flutter dibandingkan dengan React Native

Pengembangan ponsel semakin bergantung bukan pada pengembangan asli, tetapi pada penggunaan kerangka kerja yang membantu membuat aplikasi untuk berbagai platform sekaligus. Hari ini saya ingin mengatakan beberapa kata tentang Flutter, yang secara bertahap mulai memenangkan pasar dari React Native. Detail - di bawah potongan.



Ketika proyek untuk mengembangkan aplikasi seluler dimulai, perlu untuk memutuskan platform mana yang akan kita program. Seringkali pertanyaan ini dipengaruhi oleh pelanggan sendiri, yang ingin melihat perangkat lunak yang dibuat secara native untuk setiap platform, atau, sebaliknya, ingin menghemat uang dan meminta untuk mengembangkan pada React Native.

Di situs web proyek, Anda dapat mengetahui bahwa Flutter secara aktif menggunakan tidak hanya Google itu sendiri, tetapi juga beberapa perusahaan lain. Misalnya, Flutter telah menulis aplikasi The New York Times, serta versi seluler eBay dan Aliexpress. Tetapi secara umum, daftar tersebut tidak terlihat sangat mengesankan, karena tidak lebih dari 20 perusahaan.
gambar
Namun demikian, pengalaman pengembang dari perusahaan kami menunjukkan bahwa dalam beberapa kasus Flutter lebih baik dan lebih nyaman untuk membuat aplikasi seluler. Pikiran kolektif Neti berjumlah 8 plus dari kerangka kerja yang lebih muda ini.

Performa


Aplikasi yang dikembangkan dengan flutter berjalan lebih cepat daripada menggunakan React Native. Keunggulan kecepatan dicapai melalui mesin kami sendiri dan penggunaan bahasa pemrograman lain. Tidak seperti React Native, yang bekerja dengan jembatan dan bahasa Java Script, Flutter memungkinkan Anda untuk dengan cepat menyelesaikan masalah aplikasi, terutama yang terkait dengan antarmuka pengguna. Kompiler asli sudah dibangun ke dalam kerangka kerja, dan kode yang ditulis dalam Dart berubah menjadi instruksi asli untuk prosesor ARM.

Ngomong-ngomong, tes perbandingan yang menarik dilakukan oleh orang-orang dari InVerita. Artikel mereka tentang Medium membandingkan kinerja aplikasi jadi pada perangkat iPhone 6 dan Xiaomi Redmi Note 5 asli.

gambar

Seperti yang Anda lihat, tes Gauss di iOS berjalan di Flutter lebih cepat daripada di Swift, dan RN menunjukkan jeda 20 kali!

gambar

Dalam kasus Android, Flutter membutuhkan waktu 20% lebih banyak untuk menyelesaikan tes daripada Java dan Kotlin, tetapi masih bekerja 15 kali lebih cepat daripada RN.

Ukuran aplikasi


Sebagai hasil dari paragraf sebelumnya, aplikasi yang dibuat berdasarkan Flutter dan ditulis pada Dart mengandung lebih sedikit komponen perantara. Mengkompilasi instruksi ARM asli memungkinkan Anda untuk menyimpan tidak lebih. Akibatnya, aplikasi biner sendiri membutuhkan ruang hingga dua kali lebih sedikit pada drive perangkat daripada saat mengembangkan pada React Native.

Animasi cepat


Dalam arti tertentu, plus ini mengikuti dari yang sebelumnya. Kami memutuskan untuk menggunakan Flutter untuk aplikasi yang memiliki banyak animasi bawaan. Faktanya adalah bahwa Flutter secara stabil menunjukkan 60 FPS, yang berarti bahwa pengguna tidak harus melihat gambar berkedut, seperti yang sering terjadi dengan React Native.

Bahasa Pemrograman yang Diketik


Dasar Flutter adalah Dart, bahasa pemrograman yang diketik sudah populer di kalangan penggemar. Pada Dart, pengkodean berubah menjadi pemrograman berorientasi objek ... dan di sini, tentu saja, kita dapat mengingat TypeScript dan berpendapat bahwa itu juga diketik. Tapi, sayangnya, pada akhirnya, itu ditranskompilasi dan masih berubah menjadi JavaScript yang tidak diketik. Artinya, semua keuntungan TS tetap pada tingkat kenyamanan encoder dan tidak memengaruhi kinerja. Dart, sebaliknya, diketik secara asli. Bahasa pemrograman dikembangkan secara aktif, didukung oleh komunitas. Anda dapat menulis lebih banyak kode struktural pada Dart, yang berarti Anda dapat membuat aplikasi yang lebih kompleks dan struktur hierarkis.

Dokumentasi yang luar biasa


Bagi mereka yang ingin berurusan dengan platform baru di Internet, ada tutorial video, kemungkinan untuk bekerja dengan kode online dipikirkan. Komunitas yang dipimpin oleh Google telah mengembangkan instruksi dan panduan komprehensif. Selain itu, jaringan bahkan memiliki resep yang sudah jadi untuk beralih dari React Native ke Flutter. Anda bisa melihatnya di sini . Tentu saja, ada dokumentasi untuk React Native juga, tetapi seringkali tidak berguna karena deskripsi seperti "removeClippedSubviews - Ini dapat meningkatkan kinerja gulir untuk daftar besar." Komunitas Flutter memiliki pendekatan dokumentasi yang jauh lebih serius.

UI keseragaman


Keuntungan React Native yang terkenal adalah kemampuan untuk melakukan pengembangan untuk beberapa platform sekaligus. Namun, tidak ada yang menjamin bahwa tanpa menyelesaikan file Anda akan segera mendapatkan antarmuka yang sama. Sebaliknya, aplikasi yang ditulis dalam Flutter, terlihat dan berfungsi sama di iOS dan Android. Programmer kami tidak pernah menulis ulang kode untuk membuat aplikasi berfungsi di iOS seperti di Android. Dalam kasus React Native, semuanya berbeda. Perbaikan semacam itu harus dilakukan dengan keteraturan yang patut ditiru.

Dukungan untuk sejumlah besar platform


Flutter sudah mendukung Android, iOS dan Web. Dilihat oleh diskusi di komunitas, dukungan untuk MacOS, ChromeOS, dan Windows akan segera tersedia. Dan, yang paling menarik, Flutter sudah mendukung platform Google Fuchsia di masa depan. Jadi setiap pengembangan bisa segera porting ke OS baru.

Alat pengembang


Hal terakhir yang ingin saya perhatikan adalah DevTools yang dikembangkan. Flutter menawarkan ekosistem alat pengembang yang bagus. Anda dapat melihatnya di sini . Ngomong-ngomong, Facebook sedang mencoba melakukan sesuatu yang serupa, tetapi sejauh yang bisa kita lihat, RN hanya memiliki DevTools versi beta sejauh ini, dan secara fungsional mereka tidak mencapai mitra Flutter.

Contoh kode


Misalnya, di bawah ini adalah kode "Halo, Dunia!" untuk React Native dan Flutter frameworks

// React Native
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';

export default class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text>Hello world!</Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center'
  }
})

Dan di sini adalah bagaimana kode ini akan terlihat di Flutter

// Flutter
import 'package:flutter/material.dart';

void main() {
  runApp(
    Center(
      child: Text(
        'Hello, world!',
        textDirection: TextDirection.ltr,
      ),
    ),
  );
}

Apakah Flutter punya kontra?


Tentu mereka. Flutter adalah platform muda. Tidak ada solusi siap pakai yang cukup untuk itu. Sebagai perbandingan, React Native yang sama sudah memiliki lebih banyak templat, resep, opsi implementasi yang sudah jadi.

Menulis UI pada Flutter membutuhkan lebih banyak waktu. Dan penulisan kode Dart lebih lama. Dalam React Native, aplikasi dibuat sebagai konstruktor dari komponen web. Flutter masih membutuhkan pemrograman menyeluruh.

Selain itu, Flutter membutuhkan keterampilan pemrograman yang lebih dalam. Dalam kasus React Native, Anda dapat menitipkan pengembangan ke spesialis dengan pengetahuan Java Script. Dengan Dart, segalanya menjadi lebih rumit, karena bahasa ini memiliki ambang masuk yang lebih tinggi daripada JS. Programmer harus memiliki lebih banyak pelatihan mendalam.

Tetapi pada saat yang sama, lowongan untuk pengembang di Flutter masih cukup kecil. Belum ada kepercayaan dari pihak perusahaan Rusia tentang platform baru ini. Namun, ini tidak menghalangi kami untuk melakukan bagian pengembangan pada kerangka ini. Dan hasilnya sejauh ini lebih dari positif. Jika Anda memiliki pengalaman berkembang di Flutter, silakan bagikan tayangan Anda di komentar.

All Articles