
Yukarıdaki kod bloğunun ekran çıktısı aşağıdakilerden hangisidir?
Kaynak: https://lolonolo.com/2025/08/17/mobil-programlama-2024-2025-vize-sorulari-guz/
Mobil Programlama 2024-2025 Vize Soruları (Güz)
Günümüz mobil dünyasında, 2020 civarında akıllı telefon pazarının en baskın işletim sistemi olan “Android” gibi platformlar için uygulama geliştirmek büyük önem taşımaktadır. Flutter, bu ihtiyaca cevap veren, hem iOS hem de Android için tek bir kod tabanından yüksek performanslı uygulamalar oluşturmayı sağlayan modern bir çerçevedir. Bu makalede, Flutter’ın temelini oluşturan Dart programlama dili, widget mimarisi ve uygulama geliştirme sürecindeki temel kavramlar ele alınacaktır.
Flutter’ın gücü, arkasındaki Dart programlama dilinden gelir. Dart, “jenerik” (Generic) veri türlerini destekler; örneğin `List`, içine alacağı elemanın türünü belirterek (`List<String>`) tip güvenliği sağlar. Fonksiyon tanımlamalarında esneklik sunar; bir fonksiyonun geri dönüş türünü veya parametrelerin türünü belirtmek zorunlu değildir. Ancak, normal (positional) parametrelere fonksiyon çağrılırken değer girilmesi zorunludur; bu kuralın ihlali hataya neden olur. Dilin bir diğer pratik özelliği ise `…?` gibi “yayma operatörleridir” (spread operators); bu operatör bir listedeki içeriği, null olma ihtimaline karşı güvenli bir şekilde başka bir listeye kopyalamak için kullanılır.
Bir Flutter projesi oluşturmak ve yönetmek için çeşitli komutlar ve yapılar kullanılır. Örneğin, Windows masaüstü desteğini aktif hale getirmek için `flutter config` komutuna “–enable-windows-desktop” gibi parametreler eklenir. Her Flutter projesinde bulunan `import ‘package:flutter/material.dart’;` satırı, projenize Android uygulamalarında kullanılanlara benzer, Materyal Tasarım ilkelerine uygun arayüz bileşenleri sağlayan kütüphaneyi dahil eder. Uygulama içinde resim veya metin dosyaları gibi varlıklara (assets) erişmek için ise `package:flutter/services.dart’` kütüphanesindeki `rootBundle` yapısı kullanılır. Geliştiriciler, Flutter’ın en güncel ancak en kararsız özelliklerine erişmek için ise “Master” adı verilen sürüm kanalını tercih edebilirler.
Flutter’da arayüz oluşturmanın temel felsefesi basittir: Her şey bir widget’tır. Kullanıcı etkileşimi olmayan ve içsel durumu değişmeyen bir arayüz bileşeni tasarlamak için “StatelessWidget” sınıfından miras alınır. Her özel widget sınıfı oluşturulduğunda, arayüzü çizen `build` fonksiyonunu `@override` anahtar kelimesiyle yeniden yazmak zorunludur. Flutter’ın arayüz düzenleme sistemi katı kurallara dayanır: Bir widget ekrandaki konumuna kendisi karar veremez ve boyutunu ancak üst bileşenin verdiği kısıtlar dahilinde belirleyebilir. Bu hiyerarşik yapı nedeniyle, tüm widget ağacı işlenmeden arayüzün nihai halinin nasıl olacağı bilinemez. Bu yapıda, `Column` gibi dikey düzenleme widget’larında bulunan `crossAxisAlignment` parametresi, içerdiği elemanların “yataydaki yerleşimini” düzenler.
Uygulama içinde sayfalar arasında geçiş yapmak için Flutter’ın `Navigator API`’ı kullanılır. Bu API, `Route`, `Router` ve `Page` gibi temel bileşenlerden oluşur; “Screen” ise spesifik bir API bileşeni değil, genel bir tanımdır. `MaterialApp` widget’ının `routes` parametresi ise, rota isimlerini ve bu rotaları oluşturan fonksiyonları içeren bir `Map<String, WidgetBuilder>` veri türü alır. Flutter’daki widget’ların nasıl çalıştığını ve hangi parametreleri aldığını en detaylı şekilde öğrenmek için başvurulması gereken en güvenilir kaynak ise “Flutter API dokümantasyonudur”. Navigator 2.0 gibi yeni API’lar gelişmiş özellikler sunarken, `Scaffold` gibi temel düzen widget’ları çerçevenin en başından beri var olan temel taşlarıdır.
Flutter, modern ve esnek Dart dili üzerine kurulu, güçlü bir widget mimarisi sunarak mobil uygulama geliştirmeyi kolaylaştırır. Geliştiriciler, hiyerarşik düzenleme kurallarını ve zengin API setini anlayarak, hem Android hem de iOS platformlarında tutarlı ve yüksek performanslı kullanıcı arayüzleri oluşturabilirler.

flutter config --enable-windows-desktop komutu Flutter yapılandırmasında Windows masaüstü desteğini etkinleştirir. flutter create proje oluşturur, flutter doctor ise kurulum durumunu kontrol eder.



