Flutter: Flutter upgrade edildikten sonra projede gerekli olabilecek revizyonlar
Herkese merhaba, bugün ki yazımda sizlere eski flutter versiyonuna (Flutter 1.17.5 veya daha eskileri gibi) sahip projenizi flutter’ı güncelledikten sonra karşınıza çıkabilecek sorunları minimize edebilmek için yapmanız gereken bazı işlerden bahsedeceğim.
Öncelikle bu hatalar veya sorunlar hepinizde çıkmamış olabilir eğer sürekli güncel tutuyorsanız. Fakat bazı durumlarda bazı projelerimizi kullanmış olduğumuz eklenti veya kütüphanelerden dolayı güncel flutter sdk’sı ile geliştiremiyor ve bir süre sonra bir kaç üst versiyona geçmek durumunda kalabiliyoruz. İşte bu durumlar da bazen sorunlar çıkabiliyor.
Benim durumum da üzerinde çalışmış olduğum proje için bir süredir Flutter 1.17.5 versiyonu ile geliştirme yapmak zorunda kalmıştım. Ama artık Flutter 1.22.4 versiyonuna geçmiş bulunmaktayım 🤩🤔🕺🏻
Gelin beraber karşıma çıkan sorunlara ve çözümlerine bakalım 💪😉
Flutter’ı en güncel versiyonuna upgrade ettikten sonra iOS ve Android tarafında ayrı ayrı native olarak yapmanız gereken bir kaç iş vardır. Bunları beraber ele alalım.
Android
Güncellemeden sonra projenizi run etmek istediğinizde projenin android tarafının güncel olmadığına dair kırmızı bir uyarı alabilirsiniz. Ve flutterEmbedding ile alakalı bazı eklemeler ve değişiklikler yaparak platform bazlı andriod tarafı da güncelemeniz istenebilir. Bu durum da yapmanız gerekenler şu şekildedir.
👉 Android proje package’ının altında bulunan bazı dosyalar içersinde yapılan değişiklikler:
- Manifest dosyası (AndroidManifest.xml) içersinde bulunan application tagine ait android:name field’ı kaldırıldı.
- Yine aynı dosya içersinde application tagi içersinde bulunan ve splash ile ilgili işlerin yapıldığı activity tagi içersinde bulunan ve name değeri io.flutter.app.android.SplashScreenUntilFirstFrame olan meta-data kaldırılıp yerine iki yeni meta-data eklenmelidir.
- Manifest dosyasında son olarak application tag’i içersine flutterEmbedding ile alakalı yeni bir meta-data eklenmelidir.
- Manifest dosyasına splash screen ile alaklı kısımda eklemiş olduğumuz meta-data tag’i içersinde styles.xml dosyası içersinde NormalTheme adında bir style kullanmış olduk. Bundan dolayı styles.xml dosyası içersine bu yeni style’ı eklememiz gerekmektedir.
- Son olarak ise MainActivity dosyasında bazı ekleme ve çıkarmalar yaparak son hali aşağıdaki gibi olacak şekilde güncellemek gerekmektedir.
Referans almış olduğum sayfada 👇 opsiyonel olarak bu MainActivitiy dosyasının opsiyonel olarak silinebileceği belirtilmiş ama ilerde bir gün Flutter tarafında bazı fonsiyoneliteleri native taraf ile haberleşerek yapmamız gerekirse yani Channel kullanmamız gerekirse (bluetooth, cihazın şarzına ulaşmak vb.), bu dosyaya itiyacımız olacak ve o zaman daha farklı şekilde modifiye etmemiz gerekeceği için şu aşamada silmemeyi tercih ettim.
Gerekli detaylı bilgi için 👇
iOS
Android tarafında olduğu gibi iOS tarafında da run etmek istediğimizde PodFile ile ilgili güncellemeler yapmamız gerektiği uyarı olarak söylenmektedir.
👉 Podfile için yapmış olduğum değişiklikler:
- Öncelikle ilk aşama olarak PodFile (yedeğini sonraki işlemler için tutmak gerekebilir eğer projeye eklemiş olduğunuz pod konfigrasyonu var ise) ve PodFile.lock dosyalarını ios klasörü altından sildim.
- Eğer sizin kullanmanız gereken pod konfigrasyonları yok ise bu aşamada sadece run etmeniz ile beraber sildiğiniz dosyalar yerine yeni format ile oluşturulmuş yeni dosyalar oluşturulacaktır ve başka bir sorun yoksa uygulamanız sorunsuz çalışacaktır.
- Eğer sizin PodFile içersine eklemeniz gereken konfigrasyonlar var ise bazı sorunlar ile kaşılaşacaksınız. Bu durumda da yedeğini aldığınız dosya içersine bu konfigrasyonları nasıl eklemiş iseniz aynı şekilde copy-paste yaparak oluşan yeni dosyaya eklemeniz yeterli olacaktır.
- Bütün bu işlemler doğru ve eksiksiz yapıldıktan sonra eğer başka bir sorun yok ise run ettiğimizde uygulamamız başarılı bir şekilde çalışacaktır.
Son olarak eğer projenizde flutter_svg paketini kullanıyorsanız ve versiyonu 0.18.0 versiyonundan öncekilerden biri ise bu kütüphaneyi de pubspec.yaml dosyası içersinde güncellemeniz gerekmektedir.
Bu işlemler ve kullanmış olduğunuz paketlere göre dart analysis de görünen bazı depracated uyarıları giderildikten sonra proje run edildiğinde Flutter’ın güncel versiyonu ile herhangi bir sorun olmaksızın çalışacaktır. 🥳✌️
Sonuç olarak bu yazımda sizlere Flutter’ı eski bir versiyondan güncel versiyone çektikten sonra oluşabilecek bazı sorunları çözmek için sizlere yardımcı olmaya çalıştım.Umarım bu yazı sizler için faydalı olmuş ve başınıza gelen bazı küçük sorunlar için sizlere yardımcı olmuşumdur. 💪😉
Zaman ayırıp okuduğunuz için teşekkür ederim.
Herhangi bir sorunuz varsa buraya yorum yaparak veya bana Twitter ve Linkedln hesabımdan ulaşarak sorabilirsiniz. Görüşmek üzere 👋