Flutter, IDE Android Studio

Relative Import vs Package Import di Flutter

Terdapat dua cara dalam melakukan Import di Flutter atau Dart, yaitu dengan Relative import dan Package import. Contoh relative import: Contoh package...

Ikhwan Written by Ikhwan · 2 min read >
yukngoding_id_relativeimport

Terdapat dua cara dalam melakukan Import di Flutter atau Dart, yaitu dengan Relative import dan Package import.

Contoh relative import:

import 'file.dart';
import 'dir/file.dart';
import '../dir/file.dart';

Contoh package import:

import 'package:my_package/file.dart';

Selain kenyamanan programmer, mari kita coba list keuntungan dari setiap cara import

Keuntungan dari Relative Imports

1. Rekomendasi dari Dart team

Dart merekomendasikan kita untuk melakukan relative import (sumber)

2. Banyak digunakan

Dari 30 dart package yang populer, 3 package yang menggunakan package imports, 13 package menggunakan relative import, dan 14 package lainnya adalah satu file saja atau membagi file menggunakan part.

3. Terkelompok

Pengelompokan ini bisa terbagi menjadi 3 kelompok yaitu, dart libraries, package imports, dan relative imports. Dart menyarankan baris kosong antar kelompok, dan hal ini akan mempermudah programmer tentunya dalam membaca package-package yang diimport pada suatu file. Kita juga bisa menggunakan bantuan IDE terkait hal ini.

import 'dart:async';
import 'dart:io';

import 'package:other1/other1.dart';
import 'package:other2/other2.dart';

import 'file1.dart';
import 'file2.dart';
4. Konsisten dengan Exports

Menggunakan relative dan package secara bersamaan ketika melakukan export itu sangat memungkinkan:

export 'package:my_package/src/file.dart';
export 'src/file.dart';
  • Tapi biasanya kita melakukan export untuk file yang ada dibawah directory, jadi kita bakalan jarang menggunakan “..”
  • Dengan menggunakan cara yang sama untuk export membuat code kita lebih konsisten
5. Lebih cepat dalam rekomendasi

Ketika kita melakukan pengetikan import manual dengan “package”, kita harus memulai pencarian dengan keyword tersebut yang mana juga akan menampilkan package-package lain yang kita gunakan.

6. Lebih singkat

Tidak jarang kita melakukan import untuk file di directory yang sama, hal ini tentu akan membuat code importnya lebih singkat.

Package import:

import 'package:my_package/useCase/jump.dart';

Relative import:

import 'jump.dart';

Keuntungan dari Package Imports

1. Lebih mudah ketika ada pemindahan file

Ketika kita melakukan pemindahan file ke directory lain, kita cukup menambahkan atau mengurangi dircetory. Hal ini mungkin lebih mudah dilakukan dari pada memperbaiki “..” di relative import.

Kita juga terbantu dengan fungsi refactor yang disediakan IDE, atau jika refactor tidak berjalan dengan baik, setidaknya kita bisa juga menggunakan find all & replace karena text importnya bakalan persis sama dimanapun filenya digunakan. Berbeda dengan relative import.

2. Satu baris lebih singkat

Pada package import kita bakalan membagi importnya menjadi 3 kelompok. Tapi karena kita menggunakan package tentu importnya akan menjadi 2 saja, karena code kita akan terkelompok bersamaan dengan package lain.


Lints

Berikut dua rule yang disampaikan di dokumentasi:

1. directory src

Directory src di bawah lib biasanya diperuntukan untuk area private dari suatu library. Pengembang package akan sering melakukan perubahan pada file-file yang terdapat pada directory ini. Jadi melakukan import directory src memungkinkan untuk membuat code kita jadi error.

* Biasanya pengembang package melakukan export code agar pengguna tidak secara otomatis melakukan import file di directory src.

2. directory lib

Ketika kita melakukan test seperti unit test, tidak jarang kita melakukan import dari file code kita. Nah tidak diperbolehkan untuk mengakses kedalam ataupun keluar dari directory lib. Dart akan menganggapnya sebagai library atau sumber code yang berbeda, dan hal ini juga akan membinggungkan Dart dan juga kita sebagai programmer.

Oleh karena itu untuk mengakses file di directory lib dari directory test gunakanlah package import.

Kesimpulan

Mimin sendiri menggunakan relative imports di code di directory lib dan keduanya untuk code di directory test.

Tapi kenyamanan juga menjadi salah satu faktor juga ya, jadi dikembalikan kepada anda dan team untuk memilih cara import.

Sumber tulisan:

Oh iya di website ini ada tulisan menarik lainnya juga loh, seperti berikut:

yukngoding_id_webViewFlutter

Menggunakan WebView di Flutter

Ikhwan in Flutter
  ·   2 min read

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *