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

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

Flutter’da bulunan, state yönetimi ve objelerin yönetimini sağlayan keys, Flutter widgetlarının ID’sidir. Stateless ve Stateful başta olmak üzere tüm widget tiplerinin sahip olduğu bir niteliktir. Başlangıçta çok işinize yaramasa da ilerleyen zamanlarda kompleks UI elementleriyle, animasyonlarla çalışırken ihtiyacınızın olacağı bir sınıftır. Yazının devam eden kısımlarında key, anahtar olarak bahsedilecektir. Anahtarlar, liste tipi widgetların elementlerini yeniden düzenlemek için kullanılır. Bu düzenleme setState ile yapılabilir fakat her insert/remove gibi operasyonlarda devasa büyüklükteki bir…

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…

Dart web server oluşturmak [Rehber]

Dart web server oluşturmak [Rehber]

Dart programlama dili ile web server oluşturmayı konu alacağım uzun soluklu yazıma hoşgeldiniz. Okumaya başlamadan önce çayınızı, kahvenizi hazırlayın. Dart programlama dilinin temelinden itibaren yola çıkacağımız bu yazıda bazı kütüphaneleri de beraberinde kullanarak bir web server nasıl oluşturulur, nasıl deploy edilir elim döndüğünce anlatacağım. 🙂 Dart diline bir bakış Dart programlama dilinin asıl kullanım amacı nedir? Dart, kendi websitesinde de belirttiği üzere bir client optimized programlama dilidir. Peki bu ne anlama…

Hive kullanımı & TypeAdapter ile çalışmak

Hive kullanımı & TypeAdapter ile çalışmak

Önceki yazılarımda bahsettiğim, Flutter uygulamalarda key-value biçiminde çoklu değer tutabilen Hive veritabanının kullanımı konusunda bir giriş yapmıştık fakat devamını getirememiştik. Hive veritabanıyla çalışırken primitif tipleri veritabanına sıralı biçimlerde veya key-value biçiminde ekleyebilirsiniz. Fakat eğer Hive kullanıyorsanız asıl amacınız TypeAdapter ile çalışmaktır. Peki nedir bu TypeAdapter? Bir Hive sınıfı oluşturmak ve bu sınıfı Hive veritabanına yazmak istiyorsunuz diyelim. Elinizde varolan bir sınıfı TypeAdapter kullanarak Hive’ın anlayacağı bir şekle getirebilirsiniz. Eğer otomatik olarak…

Flutter Engage etkinliğinin ayrıntıları belli oldu

Flutter Engage etkinliğinin ayrıntıları belli oldu

Flutter Engage etkinliğine dair etkinlik takvimi belli oldu! 3 Mart 2021 tarihinde gerçekleşecek olan etkinlikte konuşmacılar ve etkinlik konuları açığa çıktı. Beta sürümlerini takip edenler bilir ki, RaisedButton, FlatButton gibi buton widget türleri yerine ElevatedButton gibi yeni butonlar geliyor. Hem Flutter hem Dart tarafında yer alan birçok değişikliğin ele alındığı bu etkinliğin takvimi şu şekilde: Başlangıç: 9.30 AM – PST ( aynı gün akşam TSİ 8.30 ) Başlangıçta yeni ürünlerin tanıtılacağı…

Linkvertise nedir? Linkvertise nasıl kullanılır?

Linkvertise nedir? Linkvertise nasıl kullanılır?

Linkvertise nedir? En basit tabiriyle bir link kısaltma servisidir. 2019’un başında Marc Aurel Winter tarafından Almanya’da kurulan link kısaltma servisi Linkvertise, yayıncılara ve içerik üreticilerine platformlarında sunduğu linklere kısaltma hizmeti vererek üreticilerin yüksek seviyede gelir elde etmesini amaç edinir. Linkvertise.net, en güvenilir URL kısaltıcı servisler arasında gösterilir. Birçok link çeşidini kısaltmanızı ve verdiğiniz linklere uygun olarak tıklanma başına size para öder. İnternetten para kazanmanın bu kadar çeşitlendiği dönemde gelin Linkvertise nasıl…

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…

Linked list nedir? Bağlı liste örnekleri

Linked list nedir? Bağlı liste örnekleri

Linked list, Türkçe adıyla bağlı liste, bir değerin yanında kendinden sonraki veya önceki değerleri gösteren referans değerlerinin yer aldığı ver yapısına verilen isimdir. Yığın (Stack), Kuyruk (Queue) gibi soyut veri yapılarını implement etmek için kullanılır. Bağlı liste yapıları en basit tabiriyle veriyi yönetme ve barındırma biçiminiz olabilir. Gerçek uygulamalarda sıklıkla kullanılan Yığın ve Kuyruk kavramlarını uygulama içerisinde yazarken bağlı listeden yararlanabiliriz. Bağlı listenin birçok çeşidi bulunmaktadır. Bunlar: Tek yönlü bağlı liste,…

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

SEO nedir? Nasıl uygulanır?

SEO nedir? Nasıl uygulanır?

SEO (Search Engine Optimization), websitelerin Google, Yandex gibi arama motorları tarafından kolaylıkla indekslenebilmesini sağlayan bir optimizasyon çeşididir. Bu optimizasyonu yaptıktan sonra arama motorları websitenizi veya blogunuzu anlamlandırmaya ve içeriklerinizi uygun sonuçlarda gösterebilmeye başlar. Eğer çok spesifik bir alanda yazıyorsanız ve bu alanda içerik üreten başka internet kullanıcıları yoksa arama motorlarında websiteniz indekslendikten sonra hemen ön sıralara çıktığınızı görebilirsiniz. Fakat genel konular hakkında yazılar yazıyorsanız SEO optimizasyonunun kusursuz olması gerekmektedir. Adım adım…

Yeni WhatsApp gizlilik sözleşmesi ne anlama geliyor?

Yeni WhatsApp gizlilik sözleşmesi ne anlama geliyor?

WhatsApp, geçtiğimiz günlerde yeni gizlilik sözleşmesini Şubat 2021‘de aktif edeceğini ve kullanıcılarının bu gizlilik sözleşmesini onaylamayı zorunlu tutan bir güncelleme yayınladı. Avrupa Birliği ülkeleri dışındaki ülkelerde zorunlu olarak kabul edilmesi beklenen bu yeni gizlilik sözleşmesi ne anlama geliyor? WhatsApp gizlilik sözleşmesi Yeni gizlilik sözleşmesiyle beraber WhatsApp tam anlamıyla Facebook ürünlerine entegre oluyor. Facebook, Instagram platformlarında WhatsApp kullanıcılarının verilerini toplayacak olan Facebook ne tür veriler toplayacağını da önceden belirtmek durumunda. Bu toplanan…

WordPress’e Adsense reklamları eklemek

WordPress’e Adsense reklamları eklemek

WordPress bloglarına Adsense reklamları eklemek kolay ve zahmetsiz bir süreçten oluşuyor fakat Adsense onayı alabilmek bundan daha zor. Son zamanlarda dijital işler üzerinden gelir elde etme ile ilgili farklı yöntemler ortaya çıktı. Kimisi Youtube’da içerik üreticisi, kimi Freelancer çalışan, kimi de ürettiği dijital değeri satmaya odaklanan işlere yöneldi. Bunlardan en kârlısı ve en zararlısı hangisidir konusuna hiç girmeyeceğim. Benim gibi blog yazarı iseniz, internet üzerinden Adsense ile gelir elde etmek mümkün.…

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

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…