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…

Veri yapıları – Bağlı Liste II

Veri yapıları – Bağlı Liste II

Veri yapılarında bağlı liste yöntemi, verileri düzenli halde tutmanın en önemli yollarından biridir. Daha önce şu yazımda bağlı listenin ne olduğunu açıklamıştım ve bağlı liste oluşturmanın, bağlı listeye veri eklemenin nasıl olacağını gösteren bir kod dökümanı paylaşmıştım. Bu yazıda ise bağlı listeden nasıl veri silineceğini gösteren küçük bir kod dökümanı paylaşacağım. Tek yönlü bağlı listede, bir işaretçi yalnızca kendinden sonraki adresi gösterdiğinden, tek yönlü bağlı listede bir indis silmek bir geçici…

Çalışan tüm processlere ait bilgiler nasıl elde edilir?

Bu post içerisinde bilgisayar üzerinde çalışan processlerin bazı bilgilerinin nasıl ekrana basılacağını göstereceğim. Bu işlemler için Windows.h ve Psapi.h kütüphanelerini projeye eklemek önemlidir. Processe dair şu bilgiler ekrana basılacaktır: Process ID’si (PID), Processin ve tüm modüllerinin adı, Processin versiyonu, Processin modeli (Native veya WoW64), Process ve modüllerinin handle değerleri, Min. ve Max. working set boyutları. Bu bilgilerin nasıl api yardımıyla alınacağını merak ediyorsanız:

System Installation Date’i alma yöntemleri

System Installation Date’i alma yöntemleri

Son günlerde aldığım bir ödev sonrasında saç baş yolduracak saatler yaşadım. Windows üzerinde sistemin yüklenme tarihini C/C++ dillerini kullanarak çekmem ve ekrana basmam gerekiyordu. Bunun birden çok yöntemi var fakat hiç kimse kod üzerinden yapılması gerekenleri anlatmamış veya bilmiyor. İnternette bulduğum basit çözümü şöyle göstereyim: Yukarıdaki komut, cmd ekranında size istenen sonucu veriyor. ‘systeminfo’ programı içerisinde birçok bilgiyi barındırıyor ve yeri geldiğinde bu bilgilerle kodlama yapmak işinize yarayabilir. Bunları kullanabilmek için…

2019 yılı, kendinizi değiştirmek için bir aracı olsun!

2019 yılı, kendinizi değiştirmek için bir aracı olsun!

Yeni yıl herkes için büyük beklentileri içinde barındırır. Herkes daha fazla mutlu olabilmeyi düşler. Bu mutluluk da kimileri için kilo vermek, kimileri için bir üniversitede istediği bölümü kazanmak, kimileri için de daha fazla aylık gelir anlamına gelebilir. Bu yukarıdaki ilişkiye bakarsanız mutlu olmanın yolu çok basittir! Mutlu olmanın yolu, bir şeyleri alışkanlık haline getirip onu yapmaktan zevk duymamızdır. Nasıl mı? Gençler, akşamları ve hafta sonları ders çalışmaktan, saatlerce okulda bulunmaktan memnun…

MessageBox kullanımı ve sistem bilgilerinin alınması

MessageBox kullanımı ve sistem bilgilerinin alınması

MessageBox fonksiyonunun C++ konsol projesi üzerinde nasıl oluşturulduğu ve kullanımına dair küçük bir örneği sistem bilgilerinin alınması üzerinden gerçekleştirdim. MessageBox, gösterilecek mesaj için bir kutucuk ortaya çıkarır. Parametreleri: İlk parametre, NULL olması durumunda pencerenin bir parent’ı olmadığını ifade eder, ikinci parametre, yazılacak içeriğin değişkenini belirtir, üçüncü parametre, MessageBox başlığı için girdi ister, dördüncü parametre ise MessageBox üzerinde buton, ikon gibi şeyler eklemeye yarar. Ayrıca MessageBox, üzerinde tıklanan butona göre bir integer…

MemoryStatus ve MemoryStatusEx arasındaki fark ve kullanımı

MemoryStatus ve MemoryStatusEx arasındaki fark ve kullanımı

Merhabalar. Bugünlerde aldığım bir dersten ötürü Windows.h kütüphanesini öğrenme ve uygulama imkanım oluyor. İnternette Microsoft dökümanları dışında kaynak olmadığından ötürü vakit buldukça öğrendiğim şeyleri buraya aktarmaya çalışacağım. MemoryStatus ve MemoryStatusEx MemoryStatus ve MemoryStatusEx aslında ayrı birer struct yapısı. Bu struct yapıları, bilgisayarda bulunan hafıza alanları ile ilgili bilgiler tutar. MemoryStatus, x86 sistemler için yazılmışken, MemoryStatusEx(tended), x64 sistemler için oluşturulmuştur. x64 sistemler için oluşturulan struct yapısı x86 sistemler için de geçerli sonuçlar…

UDP kullanarak ping işlemi nasıl yapılır?

Bu yazıda UDP(User Datagram Protocol) kullanarak basit bir ping işlemi nasıl yapılır kodlarını paylaşacağım. Socket programlamada bilindiği üzere iki taraf gerekmektedir. Bir taraf sunucu ve bir taraf client olmalıdır. Aşağıda Python programlama dilinde yazılmış basit bir UDP tabanlı ping işlemi gerçekleştiren programı bulabilirsiniz. Client.py dosyasının içeriği: import socket import sys import time try: socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) socket.settimeout(5) except socket.error: print ‘Failed to create socket’ sys.exit() host = ‘127.0.0.1’ port =…

Projelerde IOTA’yı kullanmak – 2

İlk yazımızda ( Projelerde IOTA’yı kullanmak – 1 ) IOTA’yı, IOTA js kütüphanesini nasıl kullanacağımızı, node.js üzerinde nasıl çalıştıracağımızı aktarmıştık. Bu yazıda ise IOTA js kütüphanesinin bir uygulamasını anlatacağım. Bir işlemin ( transaction ) yapısını parçalara ayırabilmek yazacağınız bir IOTA kullanan uygulama için önemlidir. Bu yüzden bir işlemin yapısını anlamak önemlidir. Bu linkten bir işlemin anatomisini inceleyebilirsiniz. IOTA.js kütüphanesinden getTransactionObjects fonksiyonu aracılığıyla bir işlemin yapısını tamamıyla çekebilir ve işleme yazılan mesajı ekrana…

WWDC 18 neler getirdi?

WWDC 18 neler getirdi?

Her yıl düzenlenen WWDC ( Worldwide Developers Conference ) etkinliğinin 2018 ayağını geride bıraktık. Beklendiği gibi Apple, yeni işletim sistemlerini ve bu işletim sistemlerinin özelliklerini, hünerlerini sergiledi. Tabi bu yeni işletim sistemleri demek geliştiriciler için farklı kitlerin ve yazılımsal desteklerin çıkması da demek. Kısaca iOS, watchOS ve macOS’a neler gelmiş gözatalım. iOS 12 Ekleme: iOS 12 Beta 1’i 5 Haziran’da iPhone 6s cihazıma yükledim ve herhangi bir sorun çıkarmadı üstelik telefon…

Projelerde IOTA’yı kullanmak – 1

Projelerde IOTA’yı kullanmak – 1

Bu yazıda hedef kitle IOTA ile geliştirmeye ve aynı zamanda programlamaya yeni giriş yapacak kişilerdir. IOTA’nın ne olduğu hakkında bilgisi olmayanları şöyle alalım. IOTA’nın aslında bir shitcoin olmadığını ve sunduğu olanakları test etmenin bir çok kolay yolu var. Bunlardan birisi de testnet’i kullanarak sıfır değerli bir transaction ( işlem ) oluşturmak. Bunun için gerekenler: Node.js 8+ Node Package Manager ( NPM ) Kod düzenleyici ( Notepad++, Atom vs. ) Terminal ( cmd…

Walden kitabından bir alıntı

Toprağa bakıp da bir meyve bahçesiyle çayır hayal etmek için, hangi güzel meşelerin ya da çamların kapının önünde duracağına, harap olmuş her bir ağacın en iyi nerede kullanılabileceğine karar vermek için bir öğle üstü yeterdi ve daha sonra hepsini kendi haline, nadasa bıraktım; çünkü insan kendi haline bırakabileceği şeylerin sayısı oranında zengindir. Henry David Thoreau – Walden