Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- "Yasal Etek" kanalında yayınlanan bu eğitim videosunda, bir eğitmen Flutter kullanarak alışveriş listesi uygulaması geliştirme sürecini adım adım göstermektedir.
- Video, alışveriş listesi uygulamasına yeni sebze ve meyve ekleme işlemini konu almaktadır. İlk bölümde uygulamanın kaydırma özelliğini düzeltme, model klasörüne to_json metodu ekleme, HTTP post işlemi ile sunucuya veri gönderme ve servis metodunu oluşturma işlemleri anlatılırken, ikinci bölümde item ekleme işleminde yaşanan hatalar ve bunların çözümü ele alınmaktadır.
- Eğitim içeriğinde marul, avokado ve patates gibi örneklerle yeni sebze ve meyvelerin listeye nasıl ekleneceği gösterilmekte, ayrıca hata durumunda snack bar mesajı gösterme, scaffold key'i tanımlama ve context kullanımı ile hata ayıklama süreçleri de detaylı olarak açıklanmaktadır.
- Alışveriş Listesi Uygulamasına Yeni Sebze ve Meyve Ekleme
- Bu videoda alışveriş listesi uygulamasına yeni sebze ve meyveleri eklemek için HTTP POST işlemini uygulayarak servise veri gönderme işlemi tamamlanacak.
- Projede sayfa kaydırma sırasında bottom navigation bar'ın ilgili item'ı selected yapmaması sorunu düzeltiliyor.
- PageView kaydırma işlemi sırasında sayfanın hangi yerinde olduğunu takip etmek için state metodunda yeni bir liste ekleniyor.
- 01:22Sayfa Kaydırma Sorununu Çözme
- Kaydırma miktarı konsola yazdırılarak sayfanın hangi kısmında olduğunu takip edebiliyoruz.
- Bottom navigation bar için tam sayıya ihtiyaç olduğu için page değerinin round işlemi uygulanıyor.
- Sayfanın tam ortasına gelip bırakıldığında bottom navigation bar'da ilgili item'ı yer değiştirmesi sağlanıyor.
- 02:19Performans Optimizasyonu
- Sayfanın değerine eşit bir integer current index tanımlanarak gereksiz yere selected indeksi değiştirip yeniden build etme gereksinimi engelleniyor.
- Bu şekilde uygulama kaydırma işlemlerine karşı daha performanslı hale geliyor.
- Kaydırma işlemlerinde doğru bottom navigation item'ı seçili hale getiriliyor.
- 03:30JSON Dönüşümleri
- Model klasörünün altındaki item dart dosyasına yeni bir toJason metodu ekleniyor.
- FromJason metodu map'den map olarak gelen datayı objeye çevirirken, toJason metodu objenin içindeki name, string gibi poportileri JSON'a çeviriyor.
- Convert library import edilerek toJason metodu oluşturuluyor.
- 04:33Servis Metodu Oluşturma
- HTTP klasörünün altındaki items servis dosyasına veri göndermemizi sağlayacak addItem metodu yazılıyor.
- Metoda string olarak JSON parametresi tanımlanıyor ve post metodu çağrılıyor.
- Header kısmına content type application/json yazarak sunucuya formun datasının JSON formatında olduğunun bilgisi gönderiliyor.
- 05:40Servis Metodunun Tamamlanması
- Response'dan dönen status code'a bakılarak 201 Created durumu kontrol ediliyor.
- Servis metodu her bir create işlemi sonrasında kaydedilen item'ı dönüyor.
- FetchItem'dan hatırlanarak sunucu hatalarına karşı exception üretiliyor ve kullanıcıya bildiriliyor.
- 07:31Servis Tanımlama ve Kaydetme İşlemi
- Shopping this page sayfasında servis tanımlanıyor ve state metodunda servis initialize ediliyor.
- Flot in action button'nın onPress metodunda show diyalogdan dönen item name'i navigation pop metodu ile döndürüp item name'i kaydediyoruz.
- Item name boş değilse item service'in addItem metodunu çağırarak kaydetme işlemi yapılıyor.
- 08:45Model Düzenlemesi ve Test
- Item modelinde id parametresi opsiyonel hale getiriliyor çünkü sunucu id'yi oluşturup döndürecek.
- Shopping is page'e geri dönülerek item oluşturuluyor ve addItem'a item toJason yazarak JSON formatında gönderiliyor.
- Uygulama yeniden başlatılarak marul, avokado ve patates gibi sebze ve meyveler ekleniyor ve listeye ekleniyor.
- 10:45Hata Yönetimi
- Ekleme işleminde hata oluşursa yeni bir snack bar açmak için try ve catch bloğu ekleniyor.
- Scaffold of context show snack bar ile üretilen exception mesajı snack bar kısmında gösteriliyor.
- Scaffold'a yeni bir key eklemek gerekiyor ki exception ile ilgili hata mesajı düzgün görüntülenebilsin.
- 12:38Scaffold Key Sorunu ve Çözümü
- Scaffold'un key kısmına scaffold key'i tanımlayarak ve scaffold of context scaffold key current state show snack bar metodunu çağırarak problem çözülebilir.
- Item service add item metodunu asenkron tanımlamış ancak önüne "a" yazmadığı için item metodu dönmeden set state'i çağrıldığı için liste yeniden yüklenmiyor ve yeni itemlar eklenmiyordu.
- Kod bloğu tamamlanmış olduğu için exception sonrasında snack bar gösterilmiyordu.
- 13:36Hata Mesajı ve Çözüm
- Scaffold'un of context'te hata alındığında, scaffold'un kardeş bir kardeşini bulamadığını ve context'in olmadığını belirtiyor.
- Konsolda key crm state şeklinde sıkıntının nasıl çözüleceği hakkında bilgi veriliyor.
- Video sonunda izleyicilerden videoyu beğenmeleri ve kanala abone olmaları isteniyor.