Flutter Öğreniyorum #5 (try/catch/if {}/if...[])

Çok uzun bir aradan sonra tekrardan merhaba. Bugün sizler ile Flutter Öğreniyorum blog serimize devam edeceğiz.
Geçen blog girdisinde fonksiyonların ne olduğundan bahsetmiştik. Okumadıysanız buradan ulaşabilirsiniz.

Öncelikle 'if' üzerinden başlayalım. if (Türkçe manası ile 'Eğer') çoğu yazılım dilinde karşımıza çıkan bir methoddur. Lâkin Flutter üzerinde if'in normal bir kullanımı var diyemem.

İkinci blogdan hatırladığımız üzere Flutter iki farklı kısımdan oluşuyor. Bir kısmı Widget kısmı diğer yarısı ise Fonksiyon kısımları. Widget içerisinde herhangi bir şekilde herhangi bir komutu çalıştıramazsınız. Bir komut çalıştırmak için fonksiyona ihtiyacınız vardır.

1) Öncelikle Widgetlarda if nasıl çalışır onu öğrenelim:
Diyelim ki bir uygulamanız var ve ekranında bir kaç yazı yazıyor ama bu yazı üzerinde 'CidQu' yazıyor ve siz bunu kullanıcının değiştirmesini istiyorsunuz, eğer kullanıcı tuşa basarsa bu yazının CidQu yerine Chell olarak değişmesini istiyorsunuz. Normal bir yazılım dilinde elde edilecek kod şu şekildedir:

Python:
Python:
if (user.pressed()):
    return 'Chell'
else:
    return 'CidQu'

Ama burada Widgetlar ile uğraştığımızdan dolayı böyle bir kod yazacak yerimiz yok. Bu yüzden Widget If var!

1674683393569.png


Burada örnek bir kodumuz var, bu kod içerisinde bir Text var (Nasıl yapıldığını #3. blogda göstermiştim.) Bu Text CidQu adlı değeri ekrana yansıtıyor. Çok basit bir kod, peki bir tuşa basıldığı zaman orada yazan değerin 'Chell' olarak değişmesini nasıl sağlayacağız?

Widget if şu şekilde kullanılıyor.

Kod:
if (tus == 'basildi') ...[
    Text('Chell')
] else ...[
    Text('CidQu')
]

Burada diğer yazılım dillerinden farklı olarak bir süslü parantez veya iki nokta yok, burada üç nokta sonrasında ise köşeli parantez var, bunun olmasının sebebi Widgetların fonksiyonlardan ayrılması içindir.
Öncelikle bir değişken oluşturalım ve ona bir başlangıç değer verelim
1674683528125.png

Daha sonrasında ise bu değişkenin değişmesini sağlayacak bir tuş ekleyelim.
1674683688941.png

Örnek bir tuş oluşturdum ve bu tuşa basıldığında dugme isimli değişken false iken true olarak değişecek.
Şimdi ise textlerimizi değiştirelim.
1674683749389.png

Eğer dugme değişkeni false ise ekranda CidQu yazacak ama eğer tuşa basıldıysa ve bu değişken true olarak değiştiyse ekranda Chell yazmaya başlayacak.
Aslında Widget If, normalden o kadar da farklı değil, sadece bilinmesi gereken küçük detayları var.

2) Fonksiyonlarda If
Fonksiyonlardaki if ise, Javascript'in birebir aynısı, zaten Dart/Flutter tamamen Javascript'in aynısı. Neyse.
Fonksiyonlar içerisinde if else kullanımı için süslü parantez kullanıyoruz. Örnek olarak Javascript'e bakalım.

Javascript:
JavaScript:
if(dugme = false) {
    console.log('Bu düğmeye daha basılmamış');
} else {
    console.log('Bu düğmeye biri basmış');
}

Şimdi ise Dart/Flutter'daki haline bakalım.

1674684100820.png


Gördüğünüz gibi birebir aynısı diyebilirim, Javascript'e aşinaysanız Dart kullanırken problem yaşamayacaksınız.

3) try, catch
Bu da aynı Javascriptteki gibi, hatta yine aynısı :(
Fonksiyonlar bir hata oluştuğunda kendisi direkt olarak kapatır, bundan dolayı yapılmakta olan işlem yarıda kalır uygulamalar çökme yaratabilir. Bunun önüne geçmek için try komutu kullanılır, bu komur sizin yazmış olduğunuz kodu deneyecek ama eğer ki bir hata oluşursa bu hatayı size söyleyip B planına geçecek, B planı ise catch ile yakaladığınız kısım. Önce nasıl yapıldığını öğrenelim günlük hayattan örnekler vereceğim.

Javascript:
JavaScript:
try {
    //URL Açma kodları
} catch (hata) {
    console.log('Bir hata oluştu, işte hata kodu! $hata');
}

Şimdi ise Dart/Flutter'daki haline bakalım.

1674684339278.png


Günlük hayattan size try/catch örneği vereyim. Diyelim ki bir veri tabanınız var, veritabanınızda bir çok değişken var. Lakin uygulama çalışırken o değişkenlerden birisini yanlışlıkla veritabanından sildiniz. Normal bir durumda uygulamanın kendisini kapatıp/çökmesi gerekir. Ama siz 'Eğer sunucudaki verileri almayı beceremezsen, boş bir değişken koy' diyebilirsiniz. try/catch'i bunun için kullanabilirsiniz. Veya normalde olmasını ön görmediğiniz bir hata oluşması durumunda kullanıcıyı uğraştırmadan catch komutu ile uzaktan hatayı kendinize iletebilirsiniz. (Bu işlemi kullanıcıdan habersiz yaparsanız KVKK'nın 5.maddesini çiğneyebilirsiniz dikkatli olun. Detaylı Bilgi İçin Tıkla)

Bu günlük bu kadar diyeyim. Anlatımım çok iyi olmayabilir, aklınıza takılan soruları sorabilirsiniz. Bir sonraki ne zaman gelir bilmiyorum ama geldiği zaman daha derinlere ineceğiz, gerçek bir şekilde yazılıma başlama vakti geldi. Şimdilik kendinize iyi bakın, hoşça kalın.

P.S: Geçen blog girdisinde Kaymakginar fotoğrafları kod bloğu içerisinde paylaşmamı istemişti, lâkin Technopat Forumda, Dart/Flutter desteği bulunmuyor bundan dolayı kodlar çok boğuk gözüküyor, çok büyük bir kod bloğu olmadığı için bir daha ekstradan paylaşmadım. Yetkililere sesimizi iletelim bizi duyup da eklerler umarım.

Yorumlar

Gösterilecek yorum bulunamadı.

Blog girdisi detayları

Ekleyen
CidQu
Okuma süresi
3 dakika okuma
Görüntüleme
667
Son güncelleme

Yazılım kategorisindeki diğer girdiler

CidQu adlı kullanıcının diğer girdileri

Bu girdiyi paylaş

Geri
Yukarı