Flutter’da Firebase ile Auth işlemleri

Flutter’da Firebase ile Auth işlemleri

Flutter 2’nin çıkışıyla beraber Flutter öğrenilmeye ve sektör tarafından benimsenmeye başlandığı şu günlerde muhtemelen eskiye nazaran daha çok kişi Flutter ile ilgili döküman arıyor, Stackoverflow’da geziyor ve pub.dev üzerinden paketleri inceliyor. Bu çoğalan ilgiden, Firebase de nasibini alacaktır ve Firebase gibi servislerin geliştiriciler arasında daha da popüler olacağını tahmin edebiliyorum. Bu yüzden Firebase ile ilgili yazılarıma devam etmem gerekiyor ve bugünün konusu Authentication işlemleri. Firebase’de mail ile kayıt olmaktan tutun, cep…

Flutter HTTP paketi

Flutter HTTP paketi

Flutter HTTP paketi, Flutter uygulamalarında kullanılabilecek en temel paketlerden biridir. HTTP paketiyle birlikte API uzantılarına istek atabilir veya kendi kurduğunuz sunucunun içerisine CRUD işlemleri yapabilirsiniz. HTTP paketi uygulamanızın dış dünyayla olan ilişkisini güçlendirir. 🙂 Kullanmak için Android’te Manifest içerisinde INTERNET PERMISSION isterken, iOS tarafında izin istemenize gerek yoktur. WorldClockAPI üzerinden HTTP istekleri nasıl gönderilir göstermeye çalışacağım. Gördüğünüz üzere WorldClockAPI Post isteğini kabul etmediği için bir mesaj döndürdü. Get isteğini kabul ettiği…

Flutter’da pürüzlü gradient – shader sorunu

Flutter’da pürüzlü gradient – shader sorunu

Flutter uygulamalarında bazen resimleri veya kullandığınız Widget’ların üzerine ekstra görsellik ve ufak dokunuşlar eklemek istediğinizde shader veya gradient gibi nitelikleri kullanıyor olarak bulabilirsiniz kendinizi. Fakat sonrasında pürüzlü ve yumuşak olmayan, sert geçişlere sahip Gradient renklerle karşılaşabilirsiniz. Bunu çözmenin çok basit bir yolu vardır. Her gradient kullanımından önce titreşimi true yaparak gradient renk kullandığınız her Widget içerisinde yer alan renklerdeki pürüzü bu şekilde giderebilirsiniz. Buna shader mask olarak oluşturduğunuz resimler de dahil!…

Flutter Safe Area nedir?

Flutter Safe Area nedir?

Flutter uygulamalarında düzgün ve farklı cihazlara uygun arayüzler tasarlarken ve kodlarken bazı Widget’lardan yararlanırız. Örneğin LayoutBuilder Widget’ı ile birlikte dinamik bileşenler oluşturabilirken, Safe Area Widget’ı ile birlikte de her cihazın kullanılmaması gereken alanlarına uygun Scaffold oluşturabilirsiniz. Safe Area nasıl kullanılır? Safe Area kullanımı oldukça basittir. Bu widget ile işletim sisteminden ve cihaz tipinden bağımsız olarak ekran üzerinde kullanılmaması gereken alanlara saygı gösteren bir sayfa oluşturabilirsiniz. Öncelikle bir Scaffold oluşturun ve body…

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,…

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…

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 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…

Widget Günlükleri 6 – Dropdown Menu

Widget Günlükleri 6 – Dropdown Menu

Merhabalar. Mart ayının Flutter yazısıyla karşınızdayım. Bugünki yazımızın konusu açılır menüler yani dropdown menüler ile ilgili olacak. Bir önceki ayın yazısını henüz okumadıysanız sizi AppBar kullanımı ile karşılayalım. Dropdown nesneler web alanında gayet popüler. Kullanıcıya bir seçim yaptırmak için kullanılabilecek dropdown menüler aynı zamanda navigasyon için dahi kullanılabilir. Tasarımsal olarak sizin tercihinize kalmış bu tabi. 🙂 Kişisel olarak opsiyon belirtme amacıyla kullanmayı tercih ediyorum. Bir dropdown menü oluşturmak için önce dropdown…