Üç Ders 2025 20 soru

Mobil Programlama 2025 Üç Ders

Kaynak: https://lolonolo.com/2025/09/09/mobil-programlama-2025-uc-ders-sinav-sorulari/

📖 Konu özeti (sınav öncesi tekrar)

Mobil Programlama 2025 Üç Ders Sınav Soruları

Mobil Programlama 2025 Üç Ders Sınav Soruları

Giriş

Mobil programlama, günümüz teknoloji dünyasının merkezinde yer alır ve bu alanda 2020’li yılların başlarında en yaygın kullanılan işletim sistemi “Android” olmuştur. Flutter, bu mobil dünyaya tek bir kod tabanıyla hem Android hem de iOS için modern uygulamalar geliştirmeyi sağlayan bir kullanıcı arayüzü (UI) geliştirme kitidir. Flutter bir programlama dili değildir; uygulamalar “Dart” programlama dili kullanılarak yazılır.

Flutter Projesinin Temelleri ve Kurulum

Bir Flutter projesi, çeşitli yapılandırma dosyaları ve komutları ile yönetilir. Örneğin, projenin Windows masaüstü platformunda da çalışmasını sağlamak için `flutter config` terminal komutu kullanılır. Projenin bağımlı olduğu paketlerin belirli bir sürümünün kullanılmasını zorunlu kılmak için ise `pubspec.yaml` dosyasındaki `dependency_overrides` bölümü düzenlenir. Uygulamanın internet gibi sistem özelliklerine erişebilmesi için, Android tarafında `AndroidManifest.xml` dosyasına gerekli izinlerin eklenmesi zorunludur.

Flutter Widget Mimarisi

Flutter’da arayüz, widget adı verilen yapı taşlarından oluşur. Durumu değişmeyen ve kullanıcı etkileşimi almayan statik bir arayüz bileşeni oluşturmak için `StatelessWidget` sınıfından miras alınır. Arayüzün düzenlenmesinde ise çeşitli layout widget’ları kullanılır. `GridView`, öğeleri kaydırılabilir bir ızgara (tablo) görünümünde düzenler. Bir sayfanın temel görsel iskeletini (başlık çubuğu, ana gövde vb.) oluşturan `Scaffold` widget’ının ise `appBar` ve `body` gibi parametreleri vardır, ancak `home` adında bir parametresi yoktur. Sayfa aşağı kaydırıldığında başlık kısmının gizlenmesi gibi gelişmiş kaydırma efektleri için ise `Sliver` widget’ları kullanılır.

Durum Yönetimi ve Navigasyon (State Management & Navigation)

Uygulama içinde verilerin yönetilmesi ve sayfalar arası geçiş, mobil programlamanın en önemli konularındandır. `Provider` gibi durum yönetimi kütüphanelerinde, veri modelinde bir değişiklik olduğunda arayüzü güncelleyen widget’ları haberdar etmek için `notifyListeners()` fonksiyonu çağrılır. `setState` metodu ise, durumu değişen widget’ın altındaki widget’lara yeni veriyi genellikle “yapıcı fonksiyonları” (constructor) aracılığıyla aktarır. Sayfalar arası geçişte ise Navigator API’ı kullanılır. Bu API `Route`, `Page` ve `Router` gibi temel bileşenlerden oluşur; “Screen” ise spesifik bir API bileşeni değil, genel bir kavramdır. `Scaffold` widget’ı da bir sayfa düzeni aracıdır, Navigator 2.0 API’ına özgü bir bileşen değildir.

Dart Dili ve İleri Konular

Flutter’ın arkasındaki güç olan Dart dili, modern ve esnek bir yapıya sahiptir. Fonksiyon tanımlarken parametrelerin veya geri dönüş türünün belirtilmesi zorunlu olmasa da, bir fonksiyon çağrılırken “normal (zorunlu) parametrelere değer girilmesi” zorunludur. Dart, mevcut sınıflara yeni fonksiyonlar eklemeyi sağlayan “genişletme metotları” (extension methods) ve sadece okunabilir özellikler tanımlamayı sağlayan “getiriciler” (getters) gibi ileri seviye özellikler de sunar.

Performans ve Hata Ayıklama

Uygulamanın performansı ve kararlılığı kritik öneme sahiptir. Flutter uygulamasının geliştirme ortamında oluşturulan paket boyutu, marketten indirilen optimize edilmiş boyuttan genellikle daha büyük olur. Uygulamanın çalışma zamanı davranışlarını, bellek kullanımını ve performansını takip etmek için ise “DartDevTools” adı verilen kapsamlı araç seti kullanılır. Veritabanı işlemleri için ise, iOS ve Android’de yerel olarak gelen ve ayrı bir servis gerektirmeyen sunucusuz bir veritabanı olan “SQLite” yaygın olarak kullanılır.

Sonuç

Flutter ile mobil uygulama geliştirmek, güçlü Dart dilinin özelliklerini, esnek widget mimarisini ve zengin API setlerini bir arada kullanmayı gerektirir. 2021 yılı itibarıyla Android ve iOS gibi platformları destekleyen ancak henüz “HarmonyOS” gibi yeni sistemleri resmi olarak desteklemeyen Flutter, platformlar arası uygulama geliştirmede günümüzün en popüler araçlarından biri olmaya devam etmektedir.

Mobil Programlama 2025 Üç Ders Sınav Soruları

Mobil Programlama 2025 Üç Ders Sınav Soruları

20 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
Kullanıcı etkileşimi olmayacak kendi arayüz bileşenimizi tasarlamak istiyorsak hangi sınıftan miras almamız uygun çözümdür?
CDoğru cevap
Açıklama
Flutter’da, durumu (state) değişmeyen ve kullanıcı etkileşimiyle yeniden çizilmesi gerekmeyen statik arayüz bileşenleri oluşturmak için `StatelessWidget` sınıfından miras alınır.
Soru 2
Mobil Programlama 2025 Üç Ders Sınav Soruları 2. SORU-min
Android işletim sisteminde İnternet erişimine sahip olabilmemiz için yukarıdaki kod parçacığı aşağıdaki dosyalardan hangisine yazılmalıdır?
EDoğru cevap
Açıklama
Bir Android uygulamasının internet, kamera, konum gibi sistem özelliklerini kullanabilmesi için gerekli izinlerin, uygulamanın ana yapılandırma dosyası olan `AndroidManifest.xml` dosyasına “ etiketi ile eklenmesi gerekir.
Soru 3
GridView düzenleyici arayüz bileşeni için aşağıdaki tanımlardan hangisi uygundur?
ADoğru cevap
Açıklama
`GridView` widget’ı, Flutter’da öğeleri iki boyutlu, kaydırılabilir bir ızgara düzeninde (satırlar ve sütunlar halinde) göstermek için kullanılır.
Soru 4
Flutter uygulamasının performansı hakkında aşağıdakilerden hangisi doğrudur?
ADoğru cevap
Açıklama
Geliştirme ortamında oluşturulan ham APK veya IPA paketleri, tüm mimarileri ve kaynakları içerdiği için büyüktür. Ancak uygulama marketleri (Google Play, App Store), kullanıcıya sadece kendi cihazına uygun, optimize edilmiş ve daha küçük boyutlu bir paket indirir.
Soru 5
Bir Flutter uygulamasının çalışma zamanı davranışlarını takip etmek için kullanılan araç setinin adı aşağıdakilerden hangisidir?
DDoğru cevap
Açıklama
DartDevTools, Flutter ve Dart uygulamaları için performans profili çıkarma, bellek kullanımını inceleme, widget ağacını görselleştirme ve hata ayıklama gibi işlemlerin yapıldığı kapsamlı bir araç setidir.
Soru 6
Sqlite ile ilgili olarak aşağıdaki ifadelerden hangisi yanlıştır?
CDoğru cevap
Açıklama
Bu ifade yanlıştır. SQLite, sunucusuz (serverless) bir veritabanı motorudur. Ayrı bir servis olarak çalışmaz; uygulamanın kendi prosesi içinde bir kütüphane olarak çalışır ve veritabanı dosyasına doğrudan erişir.
Soru 7
Flutter’da sayfanın üst kısmındaki başlık (AppBar) bölümünün altında bir liste varsa ve sayfa aşağı kaydırıldığında başlık kısmının gizlenmesi isteniyorsa her iki bileşeni de aşağıdaki hangi widget türünden yapmak gerekir?
DDoğru cevap
Açıklama
Flutter’da bu tür gelişmiş ve birbirine bağlı kaydırma efektleri oluşturmak için `Sliver` widget’ları kullanılır. Sayfa `CustomScrollView` ile oluşturulur ve içine `SliverAppBar`, `SliverList` gibi bileşenler eklenir. İngilizce “Sliver” kelimesinin Türkçe okunuşu “Silver”a benzediği için bu şekilde yazılmıştır.
Soru 8
“–enable-windows-desktop” ifadesi Windows bir işletim sistemi için Flutter projesi yazmayı mümkün kılmaktadır. Bu ifade hangi terminal komutuna parametre olarak yazılır?
DDoğru cevap
Açıklama
Flutter kurulumunda masaüstü gibi ek platform desteklerini aktif hale getirmek için `flutter config –enable-` komutu kullanılır. Windows için bu komut `flutter config –enable-windows-desktop` şeklindedir.
Soru 9
Aşağıdakilerden hangisi 2021 yılında Flutter’ın desteklemediği bir ortam (işletim sistemi) adıdır?
CDoğru cevap
Açıklama
2021 yılı itibarıyla Flutter; Android, iOS, Windows, Linux, macOS ve Web platformlarını kararlı olarak desteklemekteydi. Huawei’nin HarmonyOS’u ise doğrudan ve resmi olarak desteklenen platformlar arasında yer almıyordu.
Soru 10
Dart programlama dili için aşağıda verilen ifadelerden hangisi yanlıştır?
DDoğru cevap
Açıklama
Bu ifade yanlıştır. Dart dilinde, bir fonksiyonun “normal” (isteğe bağlı olmayan, zorunlu) parametreleri varsa, o fonksiyon çağrılırken bu parametrelere mutlaka bir değer atanması gerekir. Sadece isteğe bağlı (optional) parametreler boş bırakılabilir.
Soru 11
String sınıfı için genişletme metotları (Extention methods) yazmak istiyorsak bu methodları yazacağımız kod bloğunu aşağıdakilerden hangisi doğru tanımlamaktadır?
CDoğru cevap
Soru 12
Aşağıdakilerden hangisi Navigator 2.0 API ile gelen bileşenlerden biri değildir?
EDoğru cevap
Açıklama
`Router`, `Page`, `RouterDelegate` ve `RouterInformationParser`, Flutter’daki Navigator 2.0 olarak bilinen bildirimsel (declarative) yönlendirme sisteminin temel bileşenleridir. `Scaffold` ise bir sayfanın temel görsel düzenini oluşturan bir layout widget’ıdır ve yönlendirme API’sinin bir parçası değildir.
Soru 13
Mobil Programlama 2025 Üç Ders Sınav Soruları 13. SORU-min
Dart Programlama dilinde bir sınıf içerisinde yukarıdaki kodun işlevini aşağıdakilerden hangisi doğru ifade etmektedir?
ADoğru cevap
Soru 14
2010-­2020 yılları arasındaki istatistiklere göre 2020 civarında akıllı telefon pazarında en fazla kullanılan işletim sistemi hangisidir?
EDoğru cevap
Açıklama
2020 yılı ve civarında, dünya genelindeki akıllı telefon pazar payı istatistiklerinde Google’ın Android işletim sistemi, yüzde 70’in üzerindeki bir oranla açık ara en yaygın kullanılan işletim sistemi konumundaydı.
Soru 15
Aşağıdakilerden hangisi Flutter Navigator API’ında bulunan temel bileşenlerden biri değildir?
BDoğru cevap
Açıklama
Flutter’ın yönlendirme (navigation) sisteminde `Navigator` widget’ı, `Route` nesnelerinden oluşan bir yığını yönetir. `Page` ise bir `Route`’u bildirimsel olarak tanımlar. `Router` da Navigator 2.0’ın bir parçasıdır. “Screen” (Ekran) ise genel bir kavram olup, API’da bu isimle anılan temel bir bileşen değildir.
Soru 16
Flutter’da provider kütüphanesindeki uygulama seviyesi durum yönetiminde notifyListeners() fonksiyon çağrısı ne zaman yapılmaktadır?
BDoğru cevap
Açıklama
Provider state management yaklaşımında, `ChangeNotifier` sınıfından türetilmiş bir veri modelinin (state) içindeki veriler değiştiğinde, bu değişikliği dinleyen `Consumer` widget’larına haber vermek ve kendilerini yeniden çizmelerini tetiklemek için `notifyListeners()` fonksiyonu çağrılır.
Soru 17
Scaffold bileşeni için aşağıdaki ifadelerden hangisi yanlıştır?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Scaffold'un appBar, body, floatingActionButton gibi parametreleri vardır ve klasik Android uygulama ekranı iskeletini oluşturur; widget ağacında bulunması zorunlu değildir. home parametresi ise Scaffold'a değil MaterialApp'e aittir, bu yüzden A yanlıştır.

Soru 18
Aşağıdaki ifadelerden hangisi Flutter Çerçevesi (Framework) için yanlış bir bilgidir?
EDoğru cevap
Açıklama
Bu ifade yanlıştır. Flutter, bir programlama dili değil, Google tarafından geliştirilen bir kullanıcı arayüzü (UI) geliştirme kitidir (SDK). Flutter uygulamaları ise Dart programlama dili kullanılarak yazılır.
Soru 19
Mobil Programlama 2025 Üç Ders Sınav Soruları 19. SORU-min
Yukarıdaki kod parçasında “setState” içerisinde “_active” değeri güncellenmiş ve bu değere göre hiyerarşide içteki bir widget arkaplan rengini seçecektir.
Hal böyle iken, setState metodu arayüz bileşenlerinin oluşturduğu ağaçta güncellenecek arayüz bileşeninden daha dış seviyede bulunuyorsa, arayüz güncellenmesinde değişen veri içteki arayüz bileşenlerine (widget) aktarılma yöntemi aşağıdakilerden hangisidir?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Flutter'da veri, widget ağacında yukarıdan aşağıya yapıcı (constructor) parametreleriyle aktarılır. setState dıştaki widget'ta çağrıldığında o widget yeniden build edilir ve güncel _active değeri içteki widget'a yapıcı fonksiyonu aracılığıyla parametre olarak geçirilir.

Soru 20
Bir paketin belli bir sürümünün kullanımı zorunluluğu varsa bunu belirtmek için pubspec.yaml dosyasında aşağıdaki başlıklardan hangisi kullanılır?
BDoğru cevap
Açıklama
Bir projenin bağımlılık ağacında versiyon çakışmaları olduğunda veya test amacıyla belirli bir paketin sadece istenen sürümünün kullanılmasını zorunlu kılmak için `pubspec.yaml` dosyasında `dependency_overrides` bölümü kullanılır.