Auzef Mobil Programlama 2025-2026 Final Soruları (Güz)
https://lolonolo.com/2026/01/25/mobil-programlama-2025-2026-final-sorulari-guz/
Bu kaynaklar, Dart programlama dili ve Flutter çerçevesi üzerine odaklanan kapsamlı bir mobil uygulama geliştirme müfredatını ve sınav sorularını içermektedir. Metinlerde, Dart dilindeki kapsülleme kuralları ve Isolate yapısı gibi performans odaklı teknik detayların yanı sıra, Flutter'ın bildirimsel (declarative) arayüz felsefesi açıklanmaktadır. Ayrıca, uygulamalarda veri depolama, test süreçleri ve Firebase entegrasyonu gibi profesyonel geliştirme aşamalarına dair pratik bilgiler sunulmaktadır. Paket yönetimi, kod karartma ve navigasyon stratejileri gibi konular, teknik bir sınav formatında detaylandırılarak öğrencilerin yetkinlikleri ölçülmektedir. Sonuç olarak bu içerik, modern mobil yazılım ekosisteminin hem teorik temellerini hem de uygulama standartlarını özetleyen bir rehber niteliğindedir.
https://lolonolo.com
Show More Show Less View Video Transcript
0:00
Mobil uygulamaların tam kalbine inmeye,
0:02
onların sırlarını çözmeye hazır mısınız?
0:05
Hadi dalalım. Kendimize de rehber olarak
0:07
ne alacağız biliyor musunuz? Bir
0:08
üniversitenin final sınavına. Hani o
0:10
kullandığımız akıcı, hızlı, sağlam
0:12
uygulamalar var ya işte onların nasıl
0:15
yapıldığını hiç merak ettiniz mi?
0:17
Aradığınız cevaplar tam olarak burada.
0:20
Hadi gelin bu sınavın sorularına
0:21
birlikte cevaplayalım ve dart ile
0:23
Flutter'ın temel yapı taşlarını tek tek
0:25
keşfedelim. Şimdi her harika uygulama
0:29
sağlam bir bina gibidir, değil mi?
0:31
Temelleri çok sağlam olmalı. İşte
0:33
Flutter'da da o temel dart dili. O zaman
0:36
ne yapıyoruz? İşe en temelden yani
0:38
dart'ın o kendine has o zarif
0:40
kurallarını inceleyerek başlıyoruz.
0:42
Kapsülleme dediğimiz şey aslında çok
0:44
basit. Kodunuzun iç mekanizmasını bir
0:47
nevi kara kutu gibi korumak. Dışarıdan
0:49
kimse karışamasın, düzeni bozmasın diye.
0:52
Peki Dart bunu nasıl başarıyor? İşte
0:55
işin ilginçleştiği yerde tam olarak
0:57
burası. Şimdi bakın aradaki farka bir
0:59
bakın. Çoğu dil ne yapıyor? Public yaz,
1:02
private yaz, böyle uzun uzun anahtar
1:04
kelimelerle uğraşıyor. Darts diyor ki
1:07
gerek yok bunlara. Bir değişkenin ya da
1:10
fonksiyonun adının başına küçücük bir
1:12
alt çizgi koyuyorsunuz. Bitti. O artık
1:14
özel. Bu kadar basit. Ne bir kelime
1:16
fazla ne eksik. İşte Dart'ın gücü bu
1:19
sadeliğinde gizli. Ve işte Dart'ın bir
1:22
başka zekice hamlesi. Şu gördüğünüz
1:25
Oratörü.
1:27
Düşünün iki tane listeyi
1:28
birleştireceksiniz ama yay listelerden
1:31
biri boşsa yani nal ise çoğu dilde
1:34
kodunuz patlar, hata verir. Ama
1:36
Dart'taki bu operatör adeta şöyle
1:38
konuşuyor. Dur bakalım panik yok. Önce
1:40
bir kontrol edeyim. Eğer bu listede bir
1:43
şeyler varsa alıp diğerini eklerim. Ama
1:45
boşsa hiç dert değil. Görmezden gelip
1:47
yoluma devam ederim. İşte bu küçücük ama
1:50
inanılmaz akıllı dokunuş kodunuzu
1:53
hatalara karşı zırh gibi koruyor. Tamam,
1:56
Dart'ın temel kurallarını cebimize
1:57
koyduk. Şimdi gelelim Flutter'ın asıl
2:00
şov yaptığı yere, kullanıcı arayüzüne.
2:03
Ve şunu söyleyeyim, Flutter'ın bu
2:04
konudaki felsefesi resmen bir devrim. Ve
2:09
işte karşınızda Flutter evreninin adeta
2:12
temel fizik kanunu. Arayüz, durumun bir
2:15
fonksiyonudur. Kulağa karmaşık mı geldi?
2:18
Aslında inanılmaz basit. Şu demek. Senin
2:21
verin neyse ekranın o. Verin değiştiği
2:24
anda ekranın sihirli bir dokunuşla pıt
2:26
diye ona dönüşür. Bu kadar. Bakın
2:29
eskiden işler nasıldı. Emirsel yöntemde
2:32
bilgisayara sanki bir aşçıymış gibi tek
2:35
talimat verirdik. Git o butonu bul.
2:37
Şimdi onun yazısını gönderildi yap.
2:39
Sonra da rengini yeşile boya. Böyle adım
2:42
adım. Ama Flutter bildirimsel yaklaşımla
2:44
bir mimar gibi davranıyor. Biz sadece
2:47
planı veriyoruz. Bak durum gönderildi
2:49
olduğunda ekranda yeşil renkli
2:51
gönderildi yazan bir buton istiyorum. Bu
2:53
kadar. Geri kalan bütün o ameleliği
2:56
inşaatı flutter kendisi hallediyor. E
2:58
sonuç ne oluyor? Çok daha az kod, sıfıra
3:00
yakın hata ve tabii ki pırıl pırıl temiz
3:03
bir zihin. Harika bir arayüz yaptık.
3:05
Tamam ama ya performans çünkü
3:08
unutmayalım dünyanın en şahane görünen
3:10
uygulaması bile sürekli donuyorsa kimse
3:13
kullanmaz değil mi? İşte şimdi
3:15
Flutter'ın bu en büyük engeli nasıl
3:17
açtığını göreceğiz. Ya bunu kesin
3:19
yaşamışsınızdır. Bir butona tıklarsınız
3:22
uygulama böyle bir yanlığına donar buz
3:24
keser. Hah işte onun sebebi uygulamanın
3:27
bütün o arayüz işlerini yürüten ana
3:29
beyninin aynı anda bir de arkada ağır
3:31
bir hesaplama yapmaya çalışması. Yani
3:33
tek bir beyin var ama iki tane zorlu işi
3:36
aynı anda yapmaya çalışıyor. E tabii
3:38
kitleniyor. Ve işte Flutter'ın bu soruna
3:40
dahiane çözümü. Isolate. Şimdi Isolate'i
3:44
şöyle hayal edin. Ana mutfağınız var.
3:46
Bir de ondan tamamen ayrı kendi tezgahı,
3:49
kendi fırını olan ikinci bir mutfak daha
3:50
var. İnternetten büyük bir dosya
3:52
indirmek gibi ağır zaman alan işleri o
3:55
ikinci mutfağa yani Isolate'e
3:57
yolluyorsunuz. O orada kendi kendine
3:59
çalışıp dururken sizin ana mutfağınız
4:01
yani kullanıcı arayüzünüz tıkır tıklır
4:04
işlemeye devam ediyor. Sonuç donma yok,
4:06
takılma yok, akıp gidiyor. Geleneksel
4:09
thread dediğimiz yapılar aynı mutfak
4:11
tezgahını paylaşan iki sakar aşçı
4:14
gibidir. Her an birbirlerinin işine
4:16
karıştırıp ortalığı batırabilirler. Ama
4:19
isolate'ler öyle değil. Onlar tamamen
4:21
yalıtılmış, kendi özel alanlarında
4:23
çalışıyorlar. Birbirlerine asla
4:25
dokunmuyorlar. İletişim kurmaları
4:28
gerektiğinde ne yapıyorlar peki? Güvenli
4:30
bir şekilde mektup gönderir gibi
4:31
mesajlaşıyorlar. İşte bu yapısı
4:33
sayesinde uygulamanız beklenmedik
4:35
hatalardan korunuyor. Adeta kaya gibi
4:38
sağlam oluyor. Harika. Uygulamamız artık
4:42
hem çok şık görünüyor hem de çok hızlı
4:44
çalışıyor. Sırada ne var? Veriler. Yani
4:47
bilgileri nereye kaydedeceğiz?
4:49
Kullanıcının karanlık mod seçeneğinden
4:51
tutun da indirdiği kocaman bir dosyaya
4:54
kadar her bilgi türü için doğru bir
4:56
depolama çözümü var. Bu tablo aslında
4:59
olayı çok güzel özetliyor. Kuralımız çok
5:02
basit. Kullanıcının karanlık modu açtım
5:04
demesi gibi küçük böyle anahtar değer
5:07
çifti şeklindeki basit ayarlar için
5:09
share preferences en iyisi. Ama işin
5:11
içine bir fotoğraf, bir ses kaydı ya da
5:13
bir veri tabanı gibi daha büyük, daha
5:15
karmaşık dosyalar giriyorsa o zaman
5:17
adresimiz path provider. Onunla cihazın
5:20
gerçek dosya sistemine ulaşıyoruz. Yani
5:22
her iş için doğru aleti seçmek önemli.
5:25
Tabii günümüzde verilerin çoğu nereden
5:27
geliyor? İnternetten, APİ'dan,
5:29
genellikle de Jason formatında. İşte
5:32
burada da dartın kendi içindeki Jason
5:34
decold fonksiyonu devreye giriyor. Bu
5:36
fonksiyon o karmaşık görünen metin
5:38
yığınını alıp kodunuzun hemen anlayıp
5:40
kullanabileceği canlı dart nesnelerine
5:42
çeviriyor. En basit, en etkili yol bu.
5:46
Evet, uygulamayı yazdık, hızlandırdık,
5:48
verileri de hallettik. Artık sona
5:50
yaklaşıyoruz ama belki de en kritik
5:53
adımlara geldik. Her şeyin tıkır tıkır
5:55
çalıştığından emin olmak ve tabii ki
5:58
onca emeğimizi koruma altına almak.
6:00
Burada hızlıca çok karıştırılan bir
6:02
konuyu netleştirelim. Paket eklenti
6:05
farkı. Paket dediğimiz şey tamamen dart
6:08
dilinde yazılmış platformdan bağımsız
6:10
bir kod parçası. Matematiksel bir
6:12
hesaplama kütüphanesi gibi
6:13
düşünebilirsiniz ama eklenti bambaşka
6:16
bir şey. O telefonun kamerası, GPS'i,
6:19
parmak izi okuyucusu gibi donanımlarına
6:21
erişmek için bir köprü. Yani dart
6:23
kodunuzla telefon kendi işletim sistemi
6:26
arasında konuşmayı sağlıyor. Peki
6:28
yazdığınız kodun doğru çalıştığından
6:30
nasıl emin olacaksınız? Elbette test
6:33
ederek. İşte Flutter'da testlerin
6:35
kalbinde bu basit ama inanılmaz güçlü
6:38
bir komut var. Expect. Yaptığı iş tam
6:40
olarak şu: "Benim beklediğim sonuç
6:42
buydu. Peki gerçekleşen sonuç ne? bu
6:45
ikisini karşılaştırıyor. Eğer aynıysa
6:48
testten geçtiniz demektir. Bu kadar
6:50
basit ama inanın hayat kurtarır. Ve
6:53
geldik son adıma. Uygulamanızı markete
6:55
yüklemeden önceki son güvenlik
6:57
kalkanınız. Kod karartma. Flutter Build
7:00
komutuna ekleyeceğiniz küçücük bir Dash
7:02
of Fascate parametresi var ya işte o
7:05
yazdığınız bütün o anlamlı kodları
7:07
alıyor ve onları kimsenin anlayamayacağı
7:09
anlamsız sembollerden oluşan bir
7:11
labirente dönüştürüyor. Bu resmen
7:13
kodunuzun DNA'sını karıştırıp onu
7:16
meraklı gözlerden kötü niyetli
7:17
kişilerden koruyan dijital bir zır.
7:20
Evet, sınavı başarıyla geçtik. Hadi
7:22
hızlıca bir özet yapalım. Aklımızda ne
7:25
kalmalı? Dart'ın o zarif alt çizgisi,
7:28
Flutter'ın temel kanunu, arayüz eşittir
7:30
durumun fonksiyonu, uygulamayı
7:32
dondurmayan isolate'ler ve son olarak
7:35
expect ile test etmenin obficate ile
7:38
korumanın verdiği o müthiş güven hissi.
7:41
İşte bu kadar. Artık bir flutter
7:43
uygulamasının en temel, en önemli
7:45
sırlarını biliyorsunuz. Elinizde yapı
7:47
taşları var. Şimdi asıl soru şu. Siz bu
7:50
yapı taşlarıyla neyi inşa edeceksiniz?
7:52
Hangi harika fikri hayata
7:54
geçireceksiniz? Top artık sizde.
#Education

