Flutter tarafını hiç düşünmedim ancak şyle baksan olaya. Zamanında c# tarafında Plugin based uygulama yapmıştım . Bu pluginleri uygulamaya ekliyorsun ve uygulamaya bunları eklendiğinde o UI kısmını oluşturabiliyor. Plugin yerine add-on diye de arama yapabilirsin. İki çeşidi var. Biri sadece fonksiyonel olarak diğeri de UI olarak. Bugün seminerde buranın en Büyük firmalarından birinin domain architecti geldi, onlar da micro front-end kullanıyormuş. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Merhabalar, Çalıştığım firmada mimari değişikliklere gittik. Web tarafında micro front-end yaklaşımını uyguladım ve güzel bir yapı ortaya çıktı. Web de Webpack Module Federation kullandım projeyi neredeyse 30-35 parçaya bldük. Burada her şey yolunda gidiyor hiçbir sıkıntı yok. Mobil tarafta Flutter kullanıyoruz burayı da Micro front-end yaklaşımına çevirmek istiyorum. Fakat araştırmalarım sonucunda pek de sağlıklı sonuçlara varamadım. Amacım projeyi küçük projelere blmek ve Git kısmındaki conflict problemi, proje geliştirirkenki bundle süresi, dependency problemleri, kod karmaşıklığı gibi problemleri ortadan kaldırmak istiyorum. Bu konuda daha nce çalışan arkadaşlar var mı?Native olur React Native olur Flutter olur fark etmez uyguladıkları yntemi anlatabilirlerse Flutter tarafına uyarlamaya çalışabilirim. Bir kaç mobil projelerinde ekranları dependency olarak eklemişler ama bu benim istediğimi karşılamıyor. Ekranları dependency olarak eklediğimde projeyi blüyorum problemsiz bir şekilde ama bu sefer 2 dependency aynı dependency'i farklı versiyonlarda kullandığında problemler ortaya çıkıyor. Bu konuyla ilgili bilgi sahibi bile değilsek beyin fırtınası yapabileceğimizi düşünüyorum. Şu an elde tutulur tek seçenek dependency yntemi. MhmdAlmz tarafından 23/Oca/23 10:01 tarihinde düzenlenmiştir Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

@unbalanced abi dependency olarak ekleyip aslında Route ile halledebiliyorum işi. Her modülü dependency olarak ekleyip Route Path vererek uygulamayı parçalara ayırınca dependency problemi baş ağrıtıyor. Mesela X bir proje Flutter 2 ile geliştirilirken Y projesi ya da modülü Flutter 3 hatta flutter 4 ile geliştirilebilir. Dependency olarak eklediğimizde bu sefer herkesi Flutter X versiyonuna zorlamamız gerekecek. X projesi Flutter 2 ile geliştirilirken Flutter 3 e geçemeyebilir kullandığı dependency den dolayı. Ya da daha farklı sebepler. Bu durumda çzüm bulamıyoruz yoksa navigation ile ekranları ynetip ekibi blebiliriz. Bu bahsettiğin mimar Micro Front-end'i mobil de mi kullanmış web de mi? major versiyon degisikligini nasil tolere edeceksin ki hocam? 0x0480 takilin madem

Hocam yakında bir youtube kanalı açma düşüncem var zaten ama vakit ayırabilir miyim açıkcası bilmiyorum :( Onun dışında zor :P Soru-Cevap olur da ders bir tık zor :D Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Flutter 3.7'de de konu ile ilgili gelişme grmedim hocam.

@unbalanced abi dependency olarak ekleyip aslında Route ile halledebiliyorum işi. Her modülü dependency olarak ekleyip Route Path vererek uygulamayı parçalara ayırınca dependency problemi baş ağrıtıyor. Mesela X bir proje Flutter 2 ile geliştirilirken Y projesi ya da modülü Flutter 3 hatta flutter 4 ile geliştirilebilir. Dependency olarak eklediğimizde bu sefer herkesi Flutter X versiyonuna zorlamamız gerekecek. X projesi Flutter 2 ile geliştirilirken Flutter 3 e geçemeyebilir kullandığı dependency den dolayı. Ya da daha farklı sebepler. Bu durumda çzüm bulamıyoruz yoksa navigation ile ekranları ynetip ekibi blebiliriz. Bu bahsettiğin mimar Micro Front-end'i mobil de mi kullanmış web de mi? Flutter tarafında nasıl çzülür bilmiyorum, dart çok gelişmiş bir dil değil c# gibi ya da. net platformu gibi. Dediğin olayın.. net tarafında karşılığına dll Hell deniyor. Mesela üstte anlattığım olayda farklı pluginler aynı bir kütüphanenin farklı versiyonlarını referans ediyor. İşte bunları bir şekilde ayırmak lazımdı aksi halde dll Hell denilen çakışma oluyor çünkü uygulama hangisini yükleyeceğini bilmiyorum. O sebeple biz dll'leri imzalıyoruz. Bu imzalama sonucu publictoken diye unique bir İdye sahip oluyor dll Onu grmek için sn. exe -T dlldosyası ni çağırdığı da şyle bir şey greceksin MySql. Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d İşte buradaki Publicleytoken bu dll'in imzalanmış olduğunu ve dll Hell gibi bir problem yaşanmasını engelliyor. Çünkü MySQL. data DLL 6.6.5 versiyonun imzası bu token o yüzden sen ikinci bir versiyon çıkardığında mesela 6.7.0, bunu imzaladığında token farklı değer olacak. Bu sayede iki assembly'i tek bir uygulamada kullanabiliyorsun. Flutter da bunun çzümü var mı bilmem, yani paketlerde bir imzalama işi varsa olabilir belki? Adam sylemedi nerelerde micro front-end kullandıklarını siteleri digitec. ch ve galaxus. ch Mobil uygulamaları da var ama istersen mail atıp sorabilirsin. Adam mail adresini vermişti, istersen bulayım mail atıp sorabilirsin. Yardımcı olur sanırım Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

@unbalanced, dependency ovveride işime yaramıyor. Herkese X versiyonunu kullanmak zorundasınız diyemem . Bunu flutter 3.4 çıktığında yapmıştık dart SDK dependency_overrides ekliyorduk. Şu an native büyük proje geliştiren firmaların mimar ya da senior çalışanlarına ulaşmaya çalışıyorum. Bir kaç kişiyle bu konuyu grüştüm monolith ilerlediklerini sylediler. @makets bu da işimi grür mü sanmıyorum hocam. Sonuçta tek uygulama çıkacağından oraya flavor eklesem bile tüm micro appler aynı dependency kullanmak zorunda kalıyor. Bana sanki mobil tarafta Code Push tarzı bir şeye ihtiyaç duyuyorum gibi. Ama bu da Flutter yapısına ters. React Native gibi arada bir Javascript Engine yok. Enteresan ya byle bir şeyin olmaması :D :D Koca koca uygulamaların hepsi monolith mi gerçekten :SS Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

@unbalanced abi dependency olarak ekleyip aslında Route ile halledebiliyorum işi. Her modülü dependency olarak ekleyip Route Path vererek uygulamayı parçalara ayırınca dependency problemi baş ağrıtıyor. Mesela X bir proje Flutter 2 ile geliştirilirken Y projesi ya da modülü Flutter 3 hatta flutter 4 ile geliştirilebilir. Dependency olarak eklediğimizde bu sefer herkesi Flutter X versiyonuna zorlamamız gerekecek. X projesi Flutter 2 ile geliştirilirken Flutter 3 e geçemeyebilir kullandığı dependency den dolayı. Ya da daha farklı sebepler. Bu durumda çzüm bulamıyoruz yoksa navigation ile ekranları ynetip ekibi blebiliriz. Bu bahsettiğin mimar Micro Front-end'i mobil de mi kullanmış web de mi? Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

@end Web kısmında Webpack Module Federation ile çzüyorsun hocam. Hatta projenin %10 u vue, %20 si next. js %30 u zırt framework %5'i bilmem ne yapıp birleştirebiliyorsun. Burada tek sıkıntı son kullanıcı bundle dosyalarını atıyorum redux için 19.0.1, 18.0.8 bilmem kaç ayrı ayrı indiriyor. Onun dışında stabil her şey. @unbalanced mail atabilirim abi olabilir. Sitelerini inceledim bazı kısımları farklı bir yerden geliyor onlar da Webpack Module Federation kullanmış. Ama projenin %90 ı düz next. js anladığım kadarıyla. Web kısmı ile ilgili bir konudan bahsetmiş olabilir. Dart da dependency ynetimi de javascript gibi abi senin de bildiğin gibi :P. Bahsettiğin gibi DLL vs yemez sanırım dart tarafında. Yese bile sadece nüne geçmiş olurum sonuçta mobil de tek bir apk/ipa çıktısı olacağı için yine dependency problemi olacaktır diye düşünüyorum. Biraz daha araştırayım bakalım neler çıkacak. Bir şeyler bulursam yine de konu altında çzümü anlatırım. Farklı fikirlere de açığım tabi :P MhmdAlmz tarafından 23/Oca/23 23:42 tarihinde düzenlenmiştir Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Monolith dedin aklıma geldi. Dünkü konuşmacı da monolith kullandığını sylemişti. Ama hangi dille yazıyorlar ne yapıyorlar bilmiyorum, ondan bahsetmedi. Ama sunum gelince sana sunumu yollarım Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Parçaya blmek dediğin için Android tarafında multi module olarak adlandırdığımız şeyi kastettiğini düşünüyorum github da rnekleri var. Mobil uygulama geliştirilir.

Şu an küçük parçaları dependency olarak eklemeye karar verdim. Ekranları da route map ile shell app de çağıracağım. Dependency conflict problemine bir çzüm bulamadım maalesef. Override dependency işime yaramaz. Dependency override edersem bu sefer bazı küçük parçalar çalışmayabilir. Şimdilik hazırlayacağım dkümanda bu konudan bahsedeceğim. Şu an için farklı bir çzüm maalesef yok. Yine de bir şey bulursam buralardayım :D Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Konuyla ilgili açık bir issue grdüm: https://github.com/flutter/flutter/issues/46979

@end Web kısmında Webpack Module Federation ile çzüyorsun hocam. Hatta projenin %10 u vue, %20 si next. js %30 u zırt framework %5'i bilmem ne yapıp birleştirebiliyorsun. Burada tek sıkıntı son kullanıcı bundle dosyalarını atıyorum redux için 19.0.1, 18.0.8 bilmem kaç ayrı ayrı indiriyor. Onun dışında stabil her şey. @unbalanced mail atabilirim abi olabilir. Sitelerini inceledim bazı kısımları farklı bir yerden geliyor onlar da Webpack Module Federation kullanmış. Ama projenin %90 ı düz next. js anladığım kadarıyla. Web kısmı ile ilgili bir konudan bahsetmiş olabilir. Dart da dependency ynetimi de javascript gibi abi senin de bildiğin gibi :P. Bahsettiğin gibi DLL vs yemez sanırım dart tarafında. Yese bile sadece nüne geçmiş olurum sonuçta mobil de tek bir apk/ipa çıktısı olacağı için yine dependency problemi olacaktır diye düşünüyorum. Biraz daha araştırayım bakalım neler çıkacak. Bir şeyler bulursam yine de konu altında çzümü anlatırım. Farklı fikirlere de açığım tabi :P tamam hocam, slidelari henüz paylasmadilar, orada adam email adresini vermisti. O zaman paylasirim. Dart icin bu dependency olayini kolay kolay czebilecegini sanmiyorum. Burda benzer bir problem icin mümkün degil demisler https://stackoverflow.com/questions/62238875/flutter-different-dependency-versions-for-different-platforms ama dkümantasyona baktim, iki sey gzüme carpti bu linkten transmogrify 'e bakar misin, orda kendi host ettigin paketi veriyorsun, belki dependency ile ilgili farkli calisiyordur bir de dependency override diye bir kisim var. Burda iki farkli pakette kullanilan ayni bagimliligin farkli versiyonlari icin zorlama yaptiriyor benim anladigim kadariyla. Yani a ve b paketi, http paketinin farkli versiyonunu kullaniyor diyelim, sen a paketindeki versiyonu kullanmak istiyorsun diyelim bu dependency override ile a paketindeki http versiyonuna zorluyorsun bu belki sana czüm olabilir ve yine dikkat edersen orda da transmogrify kullanilmis dependency_overrides yaninda. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Ondan anlamam da flutter zel ders verirsen saatlik, ücreti mukabilinde alırım. :) seni 4 kere dverim yarın