Merhaba Sevgili Okurlar,
Bu yazımızda Flutter'da web ve mobil için uygulama geliştirirken kullandığımız kütüphanelere bağlı olarak ortaya çıkan derlenme sorununa çözüm bulacağız.
Birlikte bu sorunu çözmek için basit bir uygulama oluşturalım:
İlk olarak foo adında bir abstract class oluşturalım ve factory pattern'ini kullanalım. Factory pattern bize runtime'da doğru importu şarta bağlı olarak yapmamızı sağlayacaktır. Eğer html ise foo_web.dart dosyasını, eğer io ise foo.dart dosyasını uygulamaya import edecektir böylece platforma bağlı olarak dosya import edildiğinden derleme esnasında bir sorun çıkmayacaktır.
Şimdi foo_web ve foo_io dosyalarında foo'yu override edelim.
foo_locator dosyası oluşturup implemente edilmeyen durumlar için global funciton foo'yu override edelim.
main.dart dosyamızda foo'yu denemek için implementasyon yapalım.
VS Code kullananlar için platformu Chorme (Web+javascript olarak seçelim)
Debug Console baktığımızda "hello form web" yazdığını göreceksiniz bu sadece web importlarının yapıldığı anlamına gelmektedir.
Blog'da anlattığım uygulamanın GitHub linkini burada bulabilirsiniz.
Kaynaklar:
https://blog.gskinner.com/archives/2020/03/flutter-conditional-compilation-for-web.html
https://chtgupta.medium.com/stop-using-kisweb-the-right-way-to-implement-multi-platform-code-in-your-flutter-project-edcd67970aa3
Sağlıkla kalın.
Hiç yorum yok:
Yorum Gönder