Flutter Future nedir? Nasıl kullanılır?

Flutter Future nedir? Nasıl kullanılır?

Flutter uygulamalarında asenkron kod yazmak için kullandığımız Future veri tipiyle ve async anahtar kelimesiyle birlikte HTTP istekleri, yerel veritabanı işlemleri, CRUD operasyonları, dosya işlemleri ve buna benzer işlemler Flutter’da bulunan single thread yapısını bloke etmeden gerçekleştirilebiliyor. Asenkron işlem ve senkron işlemlerin tanımlarını inceleyelim. Senkron işlem: Senkron işlemler, tamamlanana kadar diğer operasyonları bloke eder ve işlenmesini engeller. Asenkron işlem: Asenkron işlemler, tamamlanana kadar diğer operasyonları engellemez ve işlenmelerini engellemez. Future nedir? Future,…

Dart Null Safety nedir?

Dart Null Safety nedir?

Dart Null Safety nedir? Yakın tarihte, 2021’in ilk ayları, Dart programlama diline Null Safety özelliği ekleniyor ve bu özellik ile birlikte kod yazım biçimi majör değişiklik geçirecek. Bu değişikliğin yanında birçok veri tipinin bazı özellikleri ‘deprecated‘ hale gelecek. Flutter uygulamalarında yeni sürümlerde doğrudan kod parçacıklarını etkileyen bu değişikliğe yakından bakalım. Null Safety nedir? Null Safety, bir değişkenin oluşturulduğu andan itibaren null olamayacağını belirtir. Bu durumda bir değişkene bir değer atamanız veya…

Yazılım Tasarım Prensipleri DRY ve KISS

Yazılım Tasarım Prensipleri DRY ve KISS

Bu yazının içerisinde yazılım tasarım prensiplerinden olan DRY (Don’t Repeat Yourself) ve KISS (Keep It Simple, Stupid) üzerine bahsedeceğim. DRY’nin genel amacı yazılan kodun kendisini tekrar etmeme üzerine kuruludur. KISS ise kod parçacıklarının basit ve sade tutulmasını amaçlar. DRY DRY, sistem içerisinde bulunan her bilgi veya lojiğin tekrar edilmesini engellemeye çalışır. Aynı işi yapan fonksiyonları farklı yerlerde tekrar yazmak yerine, tek bir benzer fonksiyonun her yerde kullanılmasını amaçlar. Bu şekilde eğer…

Flutter StatefulWidget nedir?

Flutter StatefulWidget nedir?

Flutter StatefulWidget nedir? Bir önceki yazımda StatelessWidget‘ın ne olduğuna ve onunla neler yapıp, yapamadığımıza değinmiştim. StatefulWidget’ın ne olduğunu ve StatelessWidget ile aralarındaki farklardan bahsedeceğim bu yazıda aynı zamanda StatefulWidget için kullanım alanları ve örnekler sunacağım. Bunun yanında kurumsal olarak yaptığım projelerden edindiğim tecrübeleri de size aktaracağım. StatefulWidget, bir widget içerisindeki elementlerin değiştiği veya gelecekte değişebileceği durumlarda kullanılacak root widget’tır. Bu sınıf widget’lar içerisinde StreamBuilder, FutureBuilder gibi asenkron çalışan ve Future verileri…

Flutter StatelessWidget nedir?

Flutter StatelessWidget nedir?

Flutter Stateless Widget nedir? En çok sorulan sorulardan ilk beşe rahatlıkla oynayacak bu soruya bu yazımda yanıt vermeye çalışacağım. Daha sonraki yazılarımda ise Stateful Widget’a ve Stateful Widget’ın Stateless Widget ile olan farkında değinmeye çalışacağım. Şimdilik Stateless Widget nedir, hangi durumlarda kullanılır bunu öğrenelim. 🙂 Eğer Flutter Framework’u yeni öğreniyorsanız Flutter’a ilk dokunuşumda deneyimlediklerime göz atmanızda fayda var. StatelesWidget, durumu değişmeyecek ve ekranda bir kere çizildikten sonra değişime uğramayacak Widget’ların sınıfıdır.…

Flutter Hive kullanımı

Flutter Hive kullanımı

Flutter uygulamalarınızda lokal veritabanı çözümleri arıyorsanız Shared Preferences, Sqflite gibi çözümlere denk gelmişsinizdir. Hive veritabanı ise bu çözümler arasında en hızlısı ve en uygunu. Bu yazıda Flutter Hive kullanımı ile ilgili bilgiler aktarmaya çalışacağım. Daha önce Sqflite kullandığım to-do list uygulamasına bakmak istiyorsanız bu linki, Shared Preferences kullanımını merak ediyorsanız bu linki kullanabilirsiniz. Hive Tanıtımı Hive veritabanının sunduğu en büyük avantaj, büyük verileri yazma ve okuma hızının diğer veritabanlarına kıyasla çok…

Flutter Shared Preferences kullanımı

Flutter Shared Preferences kullanımı

Bu yazımda Flutter üzerinde Shared Preferences kullanımı üzerine biraz bahsedeceğim. Shared Preferences verilerinizi basit yapılar üzerinde telefonda lokal olarak saklamanızı sağlayan bir pakettir. Verilerinizi (key,value) biçiminde saklar ve key üzerinden bu değere ulaşmanıza olanak sağlar. Oldukça basit kullanımı olan Shared Preferences, iOS’ta User Defaults olarak bilinir. Shared Preferences, yalnızca bool, double, int, string ve list<String> değişken tiplerini lokal veritabanına kaydetmenize ve okumanıza izin verir. Yalnızca kritik olmayan verileri saklamanız gereken bu…

Flutter ile to-do list uygulaması yazmak

Flutter ile to-do list uygulaması yazmak

Flutter’da karmaşık fonksiyonlara sahip to-do list uygulamalarını kısa sürede yazmak gerçekten kolay! Dismissible ile basit bir to-do list yazdığım bir önceki yazımda Dismissible widget’ı ile yazdığım, veritabanı içermeyen to-do list uygulamasını görüntüleyebilirsiniz. Bu yazımda ise Sqflite paketini kullanarak Flutter ile to-do list uygulaması nasıl yapılır kısa ve öz bir şekilde anlatacağım. Veri Sınıfı Kullanıcıdan alacağınız verinin sınıfını ve içerisindeki objeleri önceden tanımlamış olmak önemli. Sınıfınız tarih bilgisi tutacak mı? Yalnızca başlıktan…

HTTP status kodları ne anlama gelir?

HTTP status kodları ne anlama gelir?

Bugünki yazımda HTTP status kodlarının ne anlama geldiğini ve hangi durumları belirttiğine dair genel bir yazı yazacağım. Tüm HTTP status kodlarını yazmaktansa genel bazı kodları açıklamak ve bu kodların genel başlığının ne anlama geldiğini ufak ufak belirteceğim. Tüm kodların anlamları için bu linki kullanabilirsiniz. HTTP status kodları 1xx, 2xx, 3xx, 4xx ve 5xx başlıkları altında toplanır. Bu başlıkların ilk numaralarının genel bir anlamı vardır. Status Code 1xx – Bekle Status kod…

Android Package Visibility Nedir?

Android Package Visibility Nedir?

Bu yazımda Android Package Visibility nedir, ne tür kısıtlamalar getirir bunları konuşacağız. Android 11‘in çıkışı ile birlikte Google, Android uygulamaların yüklü olduğu cihazlardaki diğer Android uygulamalarla olan etkileşimlerine Android Package Visibility ile birlikte sınırlamalar getirdi. <queries> elementini kullanarak yazdığınız uygulamanın hangi uygulamalarla etkileşime girebileceğini AndroidManifest dosyası içerisinde belirtiyorsunuz. Peki Google neden böyle bir özelliği Android 11 ve sonrası ( API level 30 ) için zorunlu tuttu? Aslında bunun bir güvenlik güncellemesi…

Flutter ve Oyun Kütüphaneleri

Flutter ve Oyun Kütüphaneleri

Selamlar! Bu yazımda Flutter ekosisteminde yer alan oyun yazmanıza yardımcı olacak, animasyonlar oluşturmanıza imkan verecek kütüphanelerden ve oyun motorlarından bahsedeceğim. Bunun yanında Flutter framework’ü bir mobil/desktop oyununu sunmak için ne kadar uygun bunu tartışacağız. 🙂 Flutter’da kullanıma hazır oyun kütüphanelerinden bahsedelim önce: SpriteWidget SpriteWidget, Flutter için oluşturulmuş 2D animasyonlar oluşturmanıza yardımcı bir kütüphanedir. 2D animasyonların yanında sunduğu texture, particle, sprite gibi objeleri eklemenize yardımcı olacak ve bunları yönetmenizi sağlayacak fonksiyonları ile…

FutureBuilder kullanırken karşılaşılan sorunlar

FutureBuilder kullanırken karşılaşılan sorunlar

Flutter’da FutureBuilder ile asenkron bir şekilde networking yapıp, dönen sonucu kolaylıkla Widget içerisinde gösterebiliyoruz. Bu kadar kolay bir Widget’ın kullanımında doğal olarak bazı sorunlar gerçekleşebiliyor. Örneğin birden fazla çağrılabiliyor. Bu durumda nasıl bir aksiyon almalıyız bu yazımda bunu anlatacağım. Öncelikle FutureBuilder neden bir çok defa çağrılıyor? setState() çağrıldığı durumlarda build() fonksiyonu yeniden tetikleniyor ve ekrandaki widget’lar yeniden derleniyor. Kısacası State’i güncelleyen kod parçacıkları bu duruma sebebiyet veriyor. Bunu iki farklı şekilde…

Flutter’da Memory Leak nasıl tespit edilir?

Flutter’da Memory Leak nasıl tespit edilir?

Merhabalar. Flutter ile ilgili bilgilendirici yazılara bir süredir ara vermiştim fakat yeniden başlıyorum. 🙂 Bu yazının konusu Memory Leak nedir ve Flutter’da nasıl tespit edilir bunu anlatmaya çalışacağım. Memory Leak, programın eriştiği ve kullandığı belleğin, bir kısmına artık ihtiyacı olmamasına rağmen hala hafızada yer tutmasına denir. Bunun neticesinde de programda mantıksal olarak hatalar meydana gelebilir veya açığın büyüklüğüne bağlı olarak programda yavaşlıklar gerçekleşir. Kodlayan kişinin framework’u tanımamasından ötürü ortaya çıkar genellikle.…

Flutter’da ListView Kullanımı

Flutter’da ListView Kullanımı

Bir önceki yazıda hatırlarsanız FutureBuilder kullanımını incelemiştik. Bu yazının konusu ise ListView ve özellikleri. ListView, çoklu verilerinizin düzenli bir şekilde görünmesini sağlar. Bir ScrollView içerisinde yer almasına gerek yoktur çünkü ListView’in kendisi kaydırılabilirdir. 🙂 ListView, forEach yapısında verilerin ekrana basılması şeklinde de özetleyebiliriz. Genellikle bir builder’ı vardır, eğer yoksa bir children olarak bu verileri içerisine alabilir. Bu veri tipleri arasında özellikle bir padding eklemeye gerek yoktur. ListView, bu işi sizin için…

Flutter’da FutureBuilder Kullanımı

Flutter’da FutureBuilder Kullanımı

Bir başka Dart/Flutter yazıma hoşgeldiniz. Bugünki konu FutureBuilder üzerine. Flutter‘da sıklıkla kullanacağınız bu Widget’ı açıklamak ve örneklerle aksiyonlarını göstermek istiyorum. Başlayalım. FutureBuilder asenkron çalışan bir Widget’tır ve bu konuda kendine has bir yapısı olduğunu diyebiliriz. FutureBuilder öncelikle 2 tane parametre alır içerisine. Bunlar: Context bildiğimiz üzere uygulamanın ekranında bulunan Widgetlar’ın yerini belirleyen, Widget Tree’de yer alan her elementin barındırdığı bir değişkendir. Widget Tree’de olmazsa olmazımızdır. AsyncSnapshot ise yapacağımız future işleminin dönütünü…

Flutter Firebase Firestore – GET

Flutter Firebase Firestore – GET

Merhabalar! Bu yazı serisinde Firebase Firestore’u Flutter uygulamalarımızda nasıl kullanacağımızı anlatacağım. Kurulum ve konfigürasyon aşaması internette birçok kaynakta bulunmakta. Bu yüzden kurulumla uğraşmayıp, fonksiyonlar ve yöntemler üzerinden kısa bir yazı serisi yazmayı planlıyorum. Bu yazıda GET metotları üzerine konuşacağız. Bir sonraki yazılar ise PUT, DELETE ve UPDATE üzerine olacak. Kullandığımız kütüphane FlutterFire. Bu kütüphane içerisinden cloud_firestore eklentisini, Firebase ile işlem yapacağımız her .dart dosyasına eklemek durumundayız. Bir dökümanın verilerini çekmek Bir…