Flutter da tüm constant'ları bir dosyada tutmanın en iyi yolu nedir?
Java ve C#'da her tanım bir sınıfın içinde olmalıdır, bu nedenle yalnızca statik üyelerin var olduğu sınıflar yaygın olarak kullanılır.
Dart'ın üst düzey işlevleri, değişkenleri ve sabitleri vardır, bu nedenle yalnızca bir şeyi tanımlamak için bir sınıfa ihtiyacınız yoktur. İstediğiniz bir namespace ise kitaplık(library) daha uygundur. Kitaplıklar içe aktarma öneklerini ve birleştiricileri show/hide destekler. Bunlar, kodunuzun tüketicisinin ad çakışmalarını kendileri için en iyi şekilde işlemesini sağlayan güçlü araçlardır.
Bir fonksiyon veya değişken mantıksal olarak bir sınıfa bağlı değilse, onu en üst düzeye koyun. Ad çakışmalarından endişe ediyorsanız, ona daha kesin bir ad verin veya önekle import edilebilen ayrı bir library'e taşıyın.
Doğru kullanım:
DateTime mostRecent(List<DateTime> dates) {
return dates.reduce((a, b) => a.isAfter(b) ? a : b);
}
const _favoriteMammal = 'weasel';
Yanlış kullanım:
class DateUtils {
static DateTime mostRecent(List<DateTime> dates) {
return dates.reduce((a, b) => a.isAfter(b) ? a : b);
}
}
class _Favorites {
static const mammal = 'weasel';
}
Örnek Uygulama:
constants.dart adında yeni bir dosya oluşturun.
Aşağıda görüldüğü gibi constantlarınızı bildirin.
const succesMessage=" İşlem başarılı.";
// Api related
const apiBaseURL = "https://baseurl.com";
const userLoginApi = "login";
const userSignupApi = "signup";
// Shared Preference keys
const kDeviceName = "device_name";
const kDeviceUDID = "device_id";
// Asset Constants
const navBarLogoImage = "assets/images/home_images/sample.png"
Stil kurallarında belirtildiği gibi constantlarınızı isimlendirirken lowerCamelCase
biçimlendirmesini kullandığınızdan emin olun. bkz: navBarLogoImage
Ardından, sabitlere erişmesi gereken herhangi bir dart dosyasının en üstüne aşağıdaki import ifadesini ekleyin:
import 'constants.dart' as constants;
constants.dart
dosyanız farklı bir dizindeyse , import ifadenizde constants.dart
yolunu belirtmeniz gerektiğini unutmayın.
Absolute path örneği:
import 'package:<your_app_name>/common/constants.dart' as constants;
Artık bu sözdizimi ile sabitlerinize kolayca erişebilirsiniz:
String a = constants.succesMessage;
References:
https://dart.dev/guides/language/effective-dart/design
https://dart.dev/guides/language/effective-dart/style
https://stackoverflow.com/questions/54069239/whats-the-best-practice-to-keep-all-the-constants-in-flutter
https://flutteragency.com/keep-all-the-constants-in-flutter/#:~:text=The%20preferred%20solution%20is%20to,new%20dart%20file%20named%20Constants.
Top comments (0)