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…

Dart Programlama Dili ve Web Scraper

Dart Programlama Dili ve Web Scraper

Flutter’a başlayan yolculuğumda elbette Dart programlama dili de öğrenmem gerekiyordu ve her yeni teknolojiye giriş yapan geliştirici/mühendis gibi Dart programlama diline mobil uygulamada ihtiyacım olacak kadar aşina oldum. Fakat gerçek hayat uygulamalarında daha fazlası gerekiyordu. Örneğin uygulamanız için bir servis yazacaksınız. Dart, henüz bu konuda hazır olmasa da şimdiden Aqueduct gibi çözümleri bilmekte fayda var. Web desteği geldiğinde Dart, Flutter ile birlikte ciddi seviyede kullanıcı edinecektir. O gün gelene kadar kendimizi…

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…

Widget Günlükleri 5 – İleri seviye AppBar kullanımı

Widget Günlükleri 5 – İleri seviye AppBar kullanımı

Geçtiğimiz hafta Flutter’da Navigator üzerine konuşmuştuk. Widget günlüklerinde, şubatın artık gününde bir yazıyla karşınızdayım. Yazımızın bu konusunda Scaffold içerisinde bulunan önemli elementlerden biri olan AppBar’ı inceleyeceğim! Genellikle eğitim yazılarında AppBar içerisine yalnızca ‘title’ girilir fakat AppBar bunlardan daha fazlasına sahiptir ve AppBar üzerinde ‘actions’ dahi tanımlayabilirsiniz. AppBar, ‘title’, ‘actions’, ‘leading’ ve ‘bottom’ niteliklerine sahiptir. ‘title’ yalnızca bir Text widget’ı içerisine almaz. Bildiğiniz üzere Flutter’da her UI elementi bir Widget’tır. Yani ‘title’…

Widget Günlükleri 4 – Navigator Stratejisi

Widget Günlükleri 4 – Navigator Stratejisi

2020 yılının ilk ayından herkese selamlar! Bu sene her ay en az bir yazı eklemeyi planlıyorum bloguma ve bu doğrultuda ocak ayının ilk yazısını yazıyorum. Önceki yazımda CircleAvatar konusuna değinmiştim hatırlarsanız. 🙂 Aslında bu yazıda AppBar ve CircleAvatar’ın birlikte kullanımını anlatsam daha güzel olurdu lakin önceki yazıda söz verdiğim gibi bugün Navigator yöntemleri üzerine kısa fakat önemli bir yazı yazacağım. Hazırsanız başlayalım. Navigator, mobil uygulamanız içerisinde yer alacak sayfaların birbirleri arasındaki…

Widget Günlükleri 3 – CircleAvatar

Widget Günlükleri 3 – CircleAvatar

Widget Günlükleri 2 – Dismissible yazısını yazdığımdan beri 1 aydan uzun zaman geçmiş. Bu uzun zaman diliminde Flutter framework ile ilgili yaptığım çalışmaları derinleştirdim ve öğrendiğim bazı şeyleri yakın zaman içerisinde bu blog üzerinde yazmayı ve paylaşmayı planlıyorum. Şimdilik, bildiklerimin en basitiyle başlayayım: CircleAvatar. CircleAvatar, profil sayfalarının, kişisel bilgilerin yer aldığı sayfaların vazgeçilmezi. En basit tabiriyle yuvarlak bir alan oluşturup içerisine resim alır. CircleAvatar, içerisine backgroundColor, backgroundImage, child, radius parametreleri alır.…

Widget Günlükleri 2 – Dismissible

Widget Günlükleri 2 – Dismissible

Flutter, cross platform mobil uygulama geliştirme framework’ü olarak çokça yol aldı. Bu süreç içerisinde birçok geliştiricinin dikkatini çekmeyi başardı ve aynı zamanda başka bir alanda bulunup, mobil uygulama geliştirmeye merak salan kişiler için, sunduğu özellikler bakımından, iyi bir başlangıç kiti oldu diyebiliriz. Bugünki yazıda Flutter’da Dismissible widget’ını konu alacağız. Dismissible, bir listenin içerisinde bulunan elementlere “swipe” yani kaydır aksiyonu kazandırmakta. Bir ListView.Builder içerisinde yer alması gerekir. Key ve OnDismissed kesinlikle bulunması…

Knapsack problem – Sırt çantası problemi

Knapsack problem – Sırt çantası problemi

Knapsack problemi, basitçe sırt çantası problemi veya torba problemi olarak adlandırılabilir. Bu problemde, bir torbanın istenen durumlara göre maksimum verim alabileceği şekilde içerisine eşyaların yerleştirilmesi konu edinilir. Örneğin maksimum kazanç veya maksimum sayıda eşyanın bir torbanın içerisine yerleştirilmesi istenir. Bu örnekte torbanın ağırlığına göre maksimum kazanç ile toplamda 10x değerinde 3 eşya yerleştirilebilirken, maksimum eşya durumunun gerçekleşmesini istediğimizde 5x değerinde 5 eşya yerleştirebildiğimizi varsayalım. Bu durumda eğer daha değerli eşyaları taşımak…

Widget Günlükleri 1 – Kaydırılabilir Metin

Widget Günlükleri 1 – Kaydırılabilir Metin

Google’ın sunduğu Flutter, cross-platform mobil uygulamalar geliştirmenize olanak sağlayan bir framework. Bu konudan daha önce bahsetmiştik. Şu zamanlarda basit projeler geliştirirken, aynı zamanda yeni bir framework olan Flutter’da kullandığım widget’ları buraya yazmaya karar verdim ve ortaya bu blog serisi çıktı. Peki, bir metin içerisinde bilgi verirken, gelen veri dinamik olarak değişiyorsa ve sayfaya sığmayacak duruma gelirse ne yapacağız? Bir ScrollView kullanacağız! Tabi ScrollView(…) biçiminde değil. Flutter’a biraz aşinaysanız, alt bileşenler çoğunlukla…

Flutter’a ilk dokunuşumda deneyimlediklerim

Flutter’a ilk dokunuşumda deneyimlediklerim

Flutter, Google tarafından geliştirilen ve Dart programlama dilini kullanan, cross-platform mobil uygulamalar geliştirmenize olanak sağlayan bir framework. Hibrit bir şekilde hem Android’e, hem de iOS’a odaklanarak uygulama geliştirmenize imkan sağlayan Flutter, daha çok UI tarafında sunduğu tasarımsal özelliklerle ve yüksek performansıyla ön plana çıkıyor. Cross-platform uygulama geliştirmeye olanak sağlayan framework’ler son zamanlarda oldukça popülerleşti. 2011 yılında Microsoft tarafından duyurulan Xamarin ile başlayan hibrit geliştirme modeli, 2013 yılında Ionic, 2015 yılında ise…