Auzef Mobil Programlama 2025-2026 Vize Soruları (Güz)
https://lolonolo.com/2026/09/14/mobil-programlama-2025-2026-vize-sorulari-guz/
auzef, Bilgisayar Programcılığı, Mobil Programlama, Web Tasarım Ve Kodlama
Show More Show Less View Video Transcript
0:00
Herkese merhaba. Mobil programlama
0:01
vizesi kapıya dayandı değil mi? Hiç
0:03
panik yapmayın. Bu derinlemesini
0:05
incelemede, bu harika anlatımda sınav
0:08
öncesi tam da ihtiyacınız olan şeye
0:09
odaklanıyoruz. Flutter ve dart. Yani
0:12
çapraz platform geliştirmenin o muazzam
0:14
mimarisine. Aslında bunu sıfırdan bir
0:16
bina inşa ediyormuşuz gibi
0:17
düşünebilirsiniz. Adım adım gideceğiz.
0:19
Mantığını tam olarak oturtacağız ve
0:21
inanın bana o karmaşık görünen yapılar
0:23
bir anda netleşecek. Hazırsanız lafı hiç
0:26
uzatmadan temelleri atmaya başlayalım.
0:28
Lolo Nolo platformuna hoş geldiniz. Bu
0:31
dersimizde mobil programlama 2025-2026
0:34
vize soruları, güz konularını, çıkmış
0:37
sorularını ve detaylı açıklamalarını
0:39
derinlemesine inceliyoruz. Peki bugünkü
0:42
yol haritamızda yani tabiri caizse ders
0:45
programımızda neler var? Hızlıca bir göz
0:47
atalım. Birinci durağımız Flutter
0:49
Devrimi. Sonra proje yapılandırması
0:52
diyeceğiz. Oradan dart dilinin
0:53
temellerine geçeceğiz. 4. sırada olmazsa
0:56
olmaz widget kuralı var. Beşincisi
0:59
mizampaj ve etkileşim ve son olarak da
1:01
uygulama navigasyonuyla işi
1:03
toparlayacağız. 1inci bölüm Flutter
1:06
Devrimi. Düşünsenize akıllı telefonlar
1:09
hayatımıza girdi ve yazılım dünyasında
1:12
kelimenin tam anlamıyla bir devrim
1:13
yarattı. Artık cebimizdeki cihazlara
1:16
sonradan uygulama yükleyebiliyorduk.
1:18
İşte bu durum o hepimizin bildiği her
1:20
gün kullandığı uygulama mağazaları
1:22
ekosistemini doğurdu. Harika bir şey
1:25
değil mi? Ama yazılımcılar için arka
1:27
planda tam bir kabus yaşanıyordu.
1:29
Düşünün, iOS için oturup ayrı kod
1:31
yazıyorsunuz. Android için bambaşka bir
1:34
kod. İşte tam bu noktada Google sahneye
1:36
çıktı ve Flutter'ı duyurdu. Flutter ne
1:39
yaptı? Sektördeki bu devasa baş ağrısını
1:41
tek bir kod tabanı yani single codase
1:44
mantığıyla çözdü. Sadece bir kez kod
1:47
yazıyorsunuz ve yazdığınız o kod iOS'ta,
1:49
Android'de hatta Windows ve Linux'ta
1:51
bile tıkır tıkır çalışıyor. Gerçekten
1:54
inanılmaz bir çözüm. İkinci bölüm, proje
1:57
yapılandırması.
1:59
Şimdi kod yazmaya başlamadan önce ortamı
2:02
bir hazırlamamız lazım, değil mi?
2:04
Diyelim ki projeyi yapılandıracaksınız
2:06
veya Windows masaüstü geliştirme
2:07
özelliklerinin kilidini açmak
2:09
istiyorsunuz. Terminale yazacağınız o
2:11
sihirli yegane komut flutter confin
2:13
komutudur. Unutmayın sınavlarda bu
2:15
başlangıç yapılandırma komutları
2:17
hocaların sormayı en çok sevdiği
2:19
yerlerdir. Ortama hazırlayan ilk
2:21
kıvılcım budur ve tabii ki pubspeyam
2:25
dosyası. Aslında bu dosya için
2:27
projenizin kalbi hatta ana planı
2:29
diyebiliriz. Geliştiriciler olarak
2:31
pub.dev adresinden bulduğumuz o harici
2:33
kütüphaneleri tam olarak buraya
2:35
ekliyoruz. Ama sadece kütüphaneler
2:37
değil, projenizde kullanacağınız
2:38
resimler, o havalı özel fontlar yani
2:41
genel anıyla varlıklar, assets hepsi
2:43
burada tanımlanıyor. Sonra kod yazarken
2:45
bu görselleri çağırmak istediğinizde
2:47
altyapıda asset bundle dediğimiz sistem
2:49
devreye giriyor. Kısacası popsyyam
2:51
dosyası olmadan uygulamanıza dışarıdan
2:53
çöp bile sokamazsınız. Bu dosyanın ne
2:56
işe yaradığını bilmek Flutter'ı
2:57
anlamanın gerçekten yarısıdır. Sınavda
2:59
banko çıkabilecek bir yer. Benden
3:01
söylemesi. 3. bölüm. Dart dilinin
3:04
temelleri. Artık binanın planlarından
3:07
çıktık. Biraz da inşaat malzemelerine
3:09
bakalım. Yani dart diline. Dart'ta
3:11
koleksiyon yapıları gerçekten çok esnek.
3:14
Eğer verilerinizi tıpkı bir sözlük gibi
3:16
bir anahtar ve ona karşılık gelen bir
3:18
değer yani key value çiftleri şeklinde
3:20
tutmak istiyorsanız adresiniz kesinlikle
3:22
map yapısıdır. Mesela öğrenci numarası
3:25
anahtarınız olur. Öğrencinin adı da
3:27
değeriniz. İkinci temel yapımı isa list.
3:30
Listeler generik yani generik türler
3:32
olarak geçer. Ne demek bu? Yani bir
3:34
listenin içine sadece sayılar
3:35
doldurabileceğiniz gibi türünü genel
3:37
bırakırsanız tamamen farklı veri
3:39
tiplerini de aynı listede
3:40
tutabilirsiniz. Sınavda bu iki yapının
3:42
yani map ve listin farkı mutlaka
3:44
karşınıza çıkacaktır. O yüzden burayı
3:46
iyi oturtalım. Peki ya kodumuz çökerse
3:50
dart dili burada bizi kurtaracak harika
3:52
güvenlik önlemlerine sahip. Güvenli söz
3:55
dizimi yani safe syntax gerçekten hayat
3:57
kurtarıyor. İlk kahramanımız No Such
4:01
Method. Diyelim ki kodunuzda yanlışlıkla
4:04
silinmiş veya hiç olmayan bir fonksiyonu
4:06
çağırdınız. Normal bir dil anında hata
4:08
verir, programı çökertir. Ama sınıfınıza
4:11
no such metot fonksiyonunu eklerseniz bu
4:13
bilinmeyen çağrıları havada yakalar ve
4:15
çöküşü engeller. Bir de üç nokta ve soru
4:18
işareti. Üç nokta ve soru işareti var.
4:21
Buna güvenliği yayma yani save spread
4:23
operatörü diyoruz. Listeleri
4:25
birleştirirken eklemeye çalıştığınız
4:27
liste boşsa yani nala programın
4:30
paniklemesine izin vermeden o adımı
4:32
sakince atlar. Bu zeki güvenlik
4:34
numaraları sınav kağıdında kesinlikle
4:36
çok şık duracaktır. 4. bölüm widget
4:39
kuramın. Flutter'da her şey bir
4:41
widgetır. Bu cümleyi mutlaka
4:43
duymuşsunuzdur. Basit gibi duruyor ama
4:45
bu flutter evreninin kelimenin tam
4:47
anlamıyla altın kuralı. Ekranda
4:49
gördüğünüz bir yazı, tıkladığınız bir
4:51
buton, arka plan rengi, uygulamanın
4:53
iskeleti hatta inanamayacaksınız ama bir
4:56
nesnenin diğerine olan uzaklığı bile bir
4:58
widgetir. Bir lego seti düşünün.
5:00
Yaptığınız o devasa şatonun kendisi de
5:03
onu oluşturan en minik parça da aslında
5:06
aynı malzemedendir. İşte tasarımın her
5:08
parçasının bu Lego bloklarından yani
5:11
widgetlardan oluştuğunu kavramak
5:13
flutter'ı çözmek demektir. İyi güzel de
5:16
kendi Lego parçamızı, kendi özel
5:18
widget'ımızı nasıl yapacağız? Tabii ki
5:20
önce özel widget sınıfımızı
5:22
oluşturuyoruz ama asıl olay ikinci
5:24
adımda. Build fonksiyonunu mutlaka at
5:27
override etmek zorundasınız. Bu bir
5:29
tercih değil, zorunluluk. Neden mi?
5:32
Çünkü Flutter motoru ekrana ne
5:34
çizeceğini sormak için sürekli olarak bu
5:36
build fonksiyonuna bakar. Orijinaline
5:38
ezip kendi tasarımınızı oraya
5:40
koymazsanız ekranda kocaman bir hiçlik
5:42
görürsünüz. Üçüncü adımda da zaten bu
5:45
fonksiyonun içine butonlarımızı falan
5:46
koyup ekranda neyin çizileceğini
5:48
tanımlıyoruz. Eğer sınavda widget
5:50
oluşturmanın zorunlu kuralı nedir diye
5:52
sorulursa hiç düşünmeden build
5:54
fonksiyonunu override etmektir.
5:56
Yapıştırın geçin. 5. bölüm. Mizampaj ve
5:59
etkileşim. Mizampaj dediğimizde yani
6:02
ekrandaki öğeleri yerleştirirken
6:04
başrolde iki aktör var. Konteyner ve
6:07
row. Bunları nerede kullanacağımızı
6:09
birbirine karıştırmamak çok önemli. Eğer
6:12
bir objeye arka plan rengi verecekseniz,
6:15
kenarlarına boşluk yani padding
6:17
ekleyecekseniz veya bir çerçeve, bir
6:19
border çizecekseniz elinizdeki yegane
6:22
araç konteynerdır. Bir kutuyu şık bir
6:24
şekilde paketlediğinizi düşünün. Ama
6:26
diyelim ki bir ikonunuz var ve yanına
6:29
bir yazı koyup bunları yatay bir
6:31
düzlemde sıralamak istiyorsunuz. İşte
6:33
orada konteyner havlu atar. Birden fazla
6:36
objeyi yatayda yan yana hizalamak için
6:38
mutlaka row yani satır widgetini
6:41
kullanmalısınız. Sınavdaki tasarım
6:43
sorularında bu konteyner ve row ayrımına
6:45
çok dikkat edin. Geldik çoğu kişinin
6:48
düştüğü o meşhur klasik sınav tuzağına.
6:51
Kural çok net. Üst seviyedeki
6:53
kısıtlamalar yani constraints her zaman
6:56
boyutu dikte eder. Ne demek bu? Diyelim
6:58
ki en dıştaki bir konteyn dediniz ki
7:01
senin genişliğin tam 50 piksel,
7:03
yüksekliğin de 50 piksel olacak. Eğer
7:05
onun bir üstündeki ebeveyn widget ona,
7:07
"Hayır kardeşim sen tün ekranı
7:09
kaplayacaksın." diye bir emir veriyorsa
7:11
o konteyner paşa paşa tüm ekranı kaplar.
7:14
Sizin o özenle verdiğiniz 50'ye 50
7:16
değerinin hiçbir hükmü kalmaz.
7:17
Flutter'ın fizik kuralları böyledir.
7:19
Emir her zaman büyük yerden, üst
7:21
vicitten gelir. Tasarımı bitirdik,
7:23
kutuları yerleştirdik. Peki kullanıcı
7:25
ekrana dokunduğunda ne olacak? Normal
7:28
şartlarda basit bir kutunun tıklanma
7:29
özelliği falan yoktur. Onu etkileşimli
7:32
hale getirmek için objeyi gesture
7:34
detector dediğimiz widget ile güzelce
7:36
sarmalıyoruz ve böylece on tap yani
7:38
dokunma fonksiyonunu tetikliyoruz.
7:40
İkinci maddemiz ise tamamen hayat
7:42
kurtaran pratik bir ipucu. Uygulamalarda
7:45
sürekli listeler yaparız. Yan yana
7:46
ikonlar, metinler koyarız, değil mi?
7:48
Bunları tek tek row'larla, paddinglerle
7:50
sıfırdan yapmakla uğraşmak yerine hazır
7:53
bir material bileşeni olan list style
7:55
kullanmak çok daha mantıklıdır. İkonu,
7:57
yazıyı bir arada tutan, hizalamasını
7:59
kendi halleden bu hazır yapı sektörde de
8:01
sınavlarda da en çok karşınıza çıkacak
8:04
şeylerden biridir. 6. bölüm, uygulama
8:07
navigasyon. Bir uygulamanın içinde
8:09
odalar arası geçiş yapar gibi sayfalar
8:12
arası gezinmeyi yönetmek için Navigator
8:14
API kullanıyoruz. Bu sistemin dör tane
8:17
temel bileşeni var. 1. gideceğimiz yol
8:20
olan route. 2. Bu yolları organize eden
8:23
router. 3. Bu geçiş işlemini aktif
8:26
olarak yapan navigator. Ve 4. sonunda
8:28
ulaştığımız hedef yani page sayfa. Siz
8:32
ana sayfadan profil sayfanıza geçerken
8:34
arka planda tıkır tıkır işleyen
8:36
mekanizma tam olarak budur. Bu dörtlü
8:39
hiyerarşiyi sırasıyla aklınızda tutmak
8:41
sınavda size kesinlikle hayat öpücüğü
8:43
verecektir. Son olarak bu navigasyon
8:46
sisteminin uygulamanın ana kökünde nasıl
8:48
tanımlandığına bakalım. Karşımıza iki
8:51
farklı yaklaşım çıkıyor. Eğer
8:53
uygulamanızın sayfaları sabitse basit
8:55
geçişler yapıyorsanız material app
8:57
içindeki routes parametresini
8:59
kullanırsınız. Bakın burada yine dartın
9:01
map yapısı selam veriyor bize. String
9:03
bir isim veriyorsunuz mesela slash
9:05
profil. Karşılığında da o sayfayı
9:07
çizecek widget builderı koyuyorsunuz.
9:09
Ama eğer rotalarınız parametre alıyorsa
9:12
kullanıcının giriş yapıp yapmadığına
9:14
göre dinamik kurallar gerekiyorsa o
9:16
zaman daha kompleks yönlendirmeler için
9:18
on generate root fonksiyonunu
9:20
kullanmalısınız. Bu kuralı hem material
9:22
app'te hem de iOS stili dediğimiz
9:24
Cupertino app üzerinde rahatlıkla
9:26
tanımlayabilirsiniz. Tüm bu
9:27
konuştuklarımız bizi çok net ve
9:29
gerçekten güçlü bir sonuca ulaştırıyor.
9:32
Gelecek kesinlikle tek bir kod tabanında
9:34
yatıyor. Farklı platformlar için aynı
9:37
işi tekrar tekrar defalarca yapmak artık
9:40
tamamen tarih oldu. Flutter ve Dart
9:42
ikilisi sayesinde bugün üzerinden
9:44
geçtiğimiz bu widget kuralını,
9:46
navigasyon mantığını ve o emir komuta
9:48
zincirindeki kısıtları iyi
9:50
kavradığınızda inanın bana sadece mobil
9:53
cihazların değil tüm dijital ekosistemin
9:55
mimarlarından biri olacaksınız. Peki siz
9:58
bu gücü elinizde tutmaya hazır mısınız?
10:01
Bu anlatımda incelediğimiz bu dersin ve
10:03
yıla ait çıkmış soruları kendiniz deneme
10:05
sınavı formatında çözmek, eksiklerinizi
10:08
kapatmak ve kendinizi detaylıca test
10:10
etmek için lolonolo.com adresini ziyaret
10:13
edebilir, açıklama kısmında yer alan
10:15
bağlantıya tıklayabilirsiniz. Başarılar
10:17
dilerim.
Jobs & Education

