Ara Sınav (Vize) 2022-2023 20 soru

Mobil Programlama 2022-2023 Ara Sınav (Vize)

Kaynak: https://lolonolo.com/2022/11/23/mobil-programlama-2022-2023-vize-sorulari/

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

Mobil Programlama 2022-2023 Vize Soruları

20 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
DartDevTools içerisinde uygulama arayüzüne yerleşen objelerin nasıl konumlandıklarını gördüğümüz arayüzün adı (başlığı) nedir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Dart/Flutter DevTools içindeki Widget Inspector, uygulama arayüzündeki widget ağacını ve her bir öğenin ekranda nasıl konumlandığını görsel olarak incelemeyi sağlar.

Soru 2
Arayüzün yenilenmesi gerekiyorsa hazırlanan arayüz bileşeninin StatefulWidget türünde olması gerekir. StatefulWidget arayüz hiyerarşisinde performans açısından ele alınacak olursa, olması gereken yeri neresidir?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

setState çağrıldığında StatefulWidget ve altındaki tüm ağaç yeniden oluşturulur. Bu yüzden performans için StatefulWidget, güncellenmesi gereken bileşenlerin tamamını kapsayacak en alt seviyeye yerleştirilmelidir; kök elemanda olursa gereksiz yere tüm arayüz yeniden çizilir.

Soru 3
Sabit tanımlama final ve const anahtar kelimeleri ile yapılabilmektedir. Bu hususta aşağıdaki ifadelerin hangisi yanlıştır?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

const derleme zamanı sabitidir; değeri tanımlandığı satırda verilmek zorundadır ve sonradan atanamaz. Bu yüzden D yanlıştır. final ise çalışma zamanında bir kez atanabilen sabittir ve atandıktan sonra değiştirilemez.

Soru 4
Aşağıdaki değişken tanımlamalarından hangisi hem int hem de double türü değer saklayabilir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Dart'ta num türü, int ve double'ın ortak üst sınıfıdır; bu yüzden num x; hem tam sayı hem ondalıklı değer saklayabilir. var x = 0; ise türünü int olarak çıkarır ve sonradan double atanamaz.

Soru 5
Aşağıda belirtilen ifadelerden hangisi mobil platformları için geliştirilen işletim sistemlerinin kendi sundukları API üzerinden yazılım geliştirmeyi ifade eden mobil programlama türüdür?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Doğal (native) mobil programlama, her işletim sisteminin kendi sunduğu API ve dillerle (Android için Java/Kotlin, iOS için Swift/Objective-C) uygulama geliştirmektir. Cross-platform ise tek kod tabanıyla birden fazla platforma uygulama geliştirmeyi ifade eder.

Soru 6
Bir Flutter projesinde “lib” klasörü altında bulunan kod dosyasının uzantısı aşağıdakilerden hangisidir?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Flutter uygulamaları Dart diliyle yazılır ve lib klasöründeki kod dosyaları .dart uzantılıdır (ör. main.dart). .yaml uzantısı ise pubspec.yaml gibi yapılandırma dosyalarına aittir.

Soru 7
Aşağıdakilerden hangisi Navigator API içerisinde bulunulan sayfadan bir önceki sayfaya dönmeyi sağlayan fonksiyon çağrısıdır?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Navigator sayfaları yığın (stack) yapısında tutar: Navigator.push yeni sayfayı yığına ekler, Navigator.pop ise en üstteki sayfayı çıkararak bir önceki sayfaya dönülmesini sağlar.

Soru 8
Flutter’da sayfalar arası gezinti için temel kütüphanelerde gelen hangi arayüz bileşeni bize Navigator API’nın basit bir kullanımını sunmaktadır?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

MaterialApp widget'ı, routes, home ve initialRoute gibi parametreleriyle Navigator API'sinin basit kullanımını sağlar ve isimli rotalarla sayfalar arası geçişi kolaylaştırır. Scaffold ise tek bir sayfanın iskeletini (appBar, body vb.) oluşturur.

Soru 9
Flutter’da, “Center” isimli arayüz bileşeninin yapıcı(constructor) fonksiyonunun hangi parametresi Widget? türünde bir değer alır?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Center gibi tek bir alt bileşen alan widget'larda child parametresi Widget? türündedir. children ise Row/Column gibi birden çok alt bileşen alan widget'larda List<Widget> türündedir.

Soru 10
Arayüz bileşeni ağacında hiyerarşik olarak aşağıdakilerin hangisinin altında bir başka arayüz bileşeni görülemez?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Icon, yalnızca bir simge gösteren yaprak (leaf) bir widget'tır ve child ya da children parametresi yoktur; dolayısıyla altında başka bir widget bulunamaz. Row, Column, Container ve Scaffold ise alt widget'lar barındırabilir.

Soru 11
Dart programlama dilinde extends ile miras alma yoluyla türetilen bir sınıfta ebeveyn sınıfın özelliklerine ve metotlarına erişmek için hangi anahtar kelime kullanılır?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Dart'ta türetilmiş bir sınıftan üst (ebeveyn) sınıfın özellik ve metotlarına super anahtar kelimesiyle erişilir; örneğin super.metot(). this ise sınıfın kendi örneğini ifade eder.

Soru 12
Aşağıdakilerden hangisi Flutter projesinin hangi paketleri içerdiği gibi ayarlarının yapıldığı dosyanın adıdır?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

pubspec.yaml, Flutter projesinin adı, sürümü, bağımlı olduğu paketler (dependencies) ve asset'leri gibi ayarlarının yapıldığı yapılandırma dosyasıdır. main.dart ise uygulamanın giriş noktası olan kod dosyasıdır.

Soru 13
Point bir sınıf ise sınıf tanımlaması içerisinde Point(this.x, this.y); gibi bir kod parçacığı hangi işlevi yerine getirmektedir?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Point(this.x, this.y); Dart'ta kısa yapıcı (constructor) söz dizimidir: verilen parametreleri doğrudan sınıfın x ve y üye değişkenlerine atar. Bu, Point(x, y) { this.x = x; this.y = y; } yazmanın kısa halidir; bir örnek üretmez, örnek Point(1, 2) çağrısıyla üretilir.

Soru 14
Dart’ta miras alma yolu ile aktarılan fonksiyonların ezilerek baştan tanımlanması gerekiyorsa kullanılan annotation hangisidir?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Dart'ta üst sınıftan miras alınan bir metodu alt sınıfta yeniden tanımlarken (ezme/override) metodun üstüne @override annotation'ı yazılır. @deprecated bir öğenin kullanımdan kalkacağını belirtir; Dart'ta @overload diye bir annotation yoktur.

Soru 15
Aşağıdakilerden hangisi kullanıcı etkileşimi yapabilen interaktif arayüz bileşenlerinden biri değildir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

FloatingActionButton (dokunma), Switch (açma/kapama), TextField (metin girişi) ve Slider (kaydırma) kullanıcıyla doğrudan etkileşime giren widget'lardır. Container ise yalnızca boyut, renk, kenar boşluğu gibi düzen ve görünüm sağlayan bir kapsayıcıdır, kendi başına etkileşim sunmaz.

Soru 16
flutter doctor komutunun terminalde çalıştırılması sonucu “Connected device (3 available)” ifadesi çıktının son satırında veriliyorsa bu kurulum için ne söylenebilir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

flutter doctor çıktısındaki 'Connected device (3 available)' satırı, Flutter uygulamasının çalıştırılabileceği üç hedef cihaz/ortam bulunduğunu gösterir; örneğin bir emülatör, Chrome tarayıcı ve Windows masaüstü. Bunlar klavye-fare gibi çevre birimleri değil, uygulama çalıştırma seçenekleridir.

Soru 17
class TapboxA extends StatefulWidget{…} şeklinde tanımlanan bir arayüz bileşeni için @override ile yeniden yazılması gereken createState() fonksiyonunun geri dönüş veri türü hangisi olmalıdır?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

StatefulWidget'ta createState() metodu, widget'ın değişebilir durumunu tutan State nesnesini döndürür; örneğin State<TapboxA> createState() => _TapboxAState();. Arayüzü döndüren Widget türü ise State sınıfındaki build metodunun dönüş türüdür.

Soru 18
Aşağıdakilerden hangisi ile bir Flutter uygulaması çalıştırılamaz?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

flutter create komutu yeni bir Flutter projesi oluşturur, uygulamayı çalıştırmaz. Uygulama terminalde flutter run ile veya VS Code'da F5, 'Start Debugging' ya da 'Run Without Debugging' seçenekleriyle çalıştırılır.

Soru 19
Günümüzde mobil programlama neden daha çok önem kazanmıştır?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Günümüzde internete erişimin büyük kısmı mobil cihazlardan yapılmakta ve akıllı telefonlar iletişim, alışveriş, bankacılık gibi pek çok işte kişisel dijital asistan rolü üstlenmektedir. Bu yaygın kullanım mobil programlamayı daha önemli hale getirmiştir.

Soru 20
Dart programlama diline getirilen Null-Safety özelliği ne ifade etmektedir?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Null-safety ile Dart'ta değişkenler varsayılan olarak null olamaz; bu yüzden bir değişkenin kullanılmadan (örneğin bir atamanın sağ tarafında okunmadan) önce mutlaka bir değer atanmış olması gerekir. Null değer alabilecek değişkenler ise türün sonuna ? eklenerek açıkça belirtilir (ör. int? x).