Auzef Mobil Programlama 2024-2025 Bütünleme Soruları (Güz)
https://lolonolo.com/2026/01/23/mobil-programlama-2024-2025-butunleme-sorulari-guz/
Bu metin, Flutter ve Dart ekosistemine yönelik hazırlanan 2024-2025 dönemi mobil programlama sınav sorularını ve konu özetlerini içermektedir. Kaynaklar; uygulama mimarisi, pubspec.yaml üzerinden paket yönetimi ve nesne yönelimli programlama gibi temel teknik detayları kapsamlı bir şekilde ele almaktadır. Ayrıca SQLite ile yerel veri depolama, Provider ile durum yönetimi ve asenkron ağ istekleri gibi ileri düzey geliştirme süreçleri hakkında bilgi sunmaktadır. Doküman, performans analizi için kullanılan DartDevTools ve test süreçlerinde tercih edilen Mockito gibi yardımcı araçları da açıklayarak kapsamlı bir rehber işlevi görmektedir. Son olarak, tasarım standartlarını belirleyen Material Design bileşenleri ve Firebase entegrasyonu gibi modern uygulama geliştirme pratikleri üzerinde durulmaktadır.
https://lolonolo.com
Show More Show Less View Video Transcript
0:00
Merhaba herkese. Flutterla mobil
0:02
uygulama geliştirmenin sırlarını çözmeye
0:04
hazır mısınız? Hadi gelin bir Flutter
0:06
uygulamasını oluşturan temel parçalara
0:09
yani onun anatomisine şöyle bir yakından
0:11
bakalım. Bu uygulamanızın adeta kalbine
0:13
yapacağımız bir yolculuk olacak. Ah işte
0:16
geliştiricilerin sürekli karşılaştığı o
0:18
meşhur soru. Düşünsenize iki farklı
0:21
platform için iki ayrı kod yazmak demek.
0:24
İki kat iş, iki kat zaman, iki kat baş
0:27
ağrısı demek. Peki ya bunun daha
0:30
akıllıca bir yolu varsa? Tabii ki var.
0:33
Ve işte o cevap Flutter. Flutter'ın en
0:36
büyük olayı, en büyük gücü tam da bu
0:38
soruna çözüm olması. Tek bir kod
0:41
yazıyorsunuz ve bu kod hem Android hem
0:43
de iOS için sanki o platforma özel
0:46
yazılmış gibi hissettiren böyle yağ gibi
0:48
akan harika uygulamalara dönüşüyor. Peki
0:51
bir uygulamanın anatomisini nasıl mı
0:53
inceleyeceğiz? Yol haritamız oldukça
0:56
net. Önce uygulamanın planına yani
0:59
tarifine bakacağız. Sonra bu planı
1:01
hayata geçiren dili tanıyacağız.
1:03
Ardından o gördüğümüz arayüzü oluşturan
1:06
yapı taşlarına, verileri nasıl aklında
1:08
tuttuğuna ve en sonda da performansı
1:11
zirveye çıkaran o ince ayarlara
1:14
odaklanacağız. Hadi ilk adımla
1:16
başlayalım. Biliyorsunuz her harika
1:19
proje sağlam bir planla başlar. İşte
1:21
Flutter'da bu planın adı Pupspect.yyamam
1:24
dosyası. Bu dosyayı uygulamanızın
1:27
detaylı bir yemek tarifi gibi
1:28
düşünebilirsiniz. Gerçekten de öyle.
1:31
İçine hangi malzemelerin gireceğini yani
1:33
hangi kütüphaneleri, hangi resimleri
1:35
veya fontları kullanacağınızı tek tek
1:36
yazıyorsunuz. Flutterda bu tarife bakıp
1:39
tamam anladım. Bu malzemelerle harika
1:41
bir uygulama yapacağım. Diyor. Peki
1:44
diyelim ki tarifinize yeni bir malzeme
1:46
eklemek istediniz. Mesela harika bir
1:48
animasyon kütüphanesi. İşte olay bu
1:51
kadar basit. Sadece adını yazıyorsunuz.
1:53
Terminalde şu komutu çalıştırıyorsunuz
1:56
ve hop Flutter o malzemeyi internetten
1:58
bulup anında projenizin mutfağını
2:00
ekliyor. Planımız hazır. Malzemelerimiz
2:03
de raflarda yerini aldı. Şimdi bu planı
2:06
hayata geçirecek yani yemeği pişirecek
2:09
bir dile ihtiyacımız var. İşte o dil
2:11
Flutter'ın seçimi olan Dart. Kendisi
2:14
yine Google tarafından geliştirilmiş
2:17
oldukça modern ve güçlü bir dil. Dartin
2:20
geliştiricilere çok hassas bir kontrol
2:22
imkanı veren bazı akıllı anahtar
2:24
kelimeleri var. Mesela s ile bir verinin
2:26
türü hakkında ben eminim bu bir metin
2:29
diyebiliyorsunuz. Ya da getsenin
2:32
değiştiremeyeceği ama her seferinde
2:34
anlık olarak hesaplanan özellikler
2:36
oluşturabiliyorsunuz. Bu da kodunuzu hem
2:38
daha anlaşılır hem de çok daha güvenli
2:41
hale getiriyor. İşte bakın. Get anahtar
2:43
kelimesinin gücünü gösteren şahane bir
2:45
örnek. Bu kod WR adında sadece
2:48
okunabilen bir değer yaratıyor. Yani siz
2:51
ne zaman bu değere erişmeye çalışsanız o
2:53
anki left ve wood değerlerini toplayıp
2:55
size tap taze bir sonuç veriyor. En
2:57
güzeli ne biliyor musunuz? Dışarıdan
2:59
kimse gelip bu değeri yanlışlıkla bile
3:02
değiştiremez. Veri bütünlüğünü korumak
3:04
için mükemmel bir yöntem. Şimdi gelelim
3:07
işin en keyifli, en yaratıcı kısmına.
3:10
Yani kullanıcının gördüğü o ekranları
3:12
oluşturmaya. Flutter'ın bu konudaki
3:14
felsefesi o kadar basit ki daha iyice.
3:17
Nedir o felsefe? Her şeyi birer Lego
3:19
parçası gibi düşünün. Bakın bu cümle
3:22
Flutter'ı anlamanın resmen anahtarı.
3:24
Ekranda gördüğünüz bir düğme, yazının
3:26
etrafındaki boşluk hatta sayfanın tamamı
3:29
hepsi ama hepsi birer widget. Ve siz bu
3:32
Lego parçalarını yani widgetları alıp
3:34
içe koya koya hayalinizdeki arayüzü inşa
3:37
ediyorsunuz. Peki ekrandaki bir veri
3:39
değiştiğinde ne oluyor? düşünün. O kadar
3:41
uğraşıp yaptığınız Lego yapısının
3:43
tamamını yıkıp baştan mı yapacaksınız?
3:46
Hayır. Bu çok verimsiz olurdu. İşte
3:48
Flutter'ın güzelliği de tam burada
3:49
ortaya çıkıyor. Sadece değişen o küçücük
3:52
parçayı yani o tek bir widget'ı
3:54
güncelliyor ve bu sayede müthiş bir
3:56
performans sağlıyor. Bu da uygulamanızın
3:58
yıldırım gibi çalışması demek. Ve işin
4:01
güzel yanı her şeyi sıfırdan sizin
4:03
yapmanıza gerek yok. Flutter size
4:06
standart tasarımları kolayca
4:07
oluşturmanız için devasa bir hazır
4:10
widget kütüphanesi yani bir sürü hazır
4:12
lego seti sunuyor. Bu resmi katalog
4:15
geliştiriciler için adeta bir hazine
4:17
sandığı değerinde. Tamam. Harika bir
4:20
arayüz yaptık. Peki uygulamamız
4:22
bilgileri nasıl aklında tutacak? Yani
4:24
hafızası nasıl çalışacak? Gelin şimdi
4:27
verilerin cihaz üzerinde nasıl
4:28
saklandığına bir göz atalım. Burada
4:30
ihtiyacınıza göre seçebileceğiniz üç
4:32
temel yöntem var. Mesela kullanıcının
4:35
tema seçimi gibi küçük basit ayarları
4:37
saklamak için shared preferences en
4:40
hızlı ve kolay çözüm. Eğer bir kişi
4:42
listesi gibi daha karmaşık birbiriyle
4:44
ilişkili verileriniz varsa o zaman SQL
4:47
Lite veri tabanı çok daha güçlü bir
4:49
seçenek. Ama elinizde büyük bir resim
4:51
dosyası falan varsa o zaman en iyisi
4:53
doğrudan cihazın dosya sistemini
4:55
kullanmak. Scalite ile ilgili ufak ama
4:58
bence çok ilginç bir detay var. Tarih ve
5:01
saat gibi bu kadar yaygın kullanılan bir
5:03
veriyi saklamak için kendine özel bir
5:05
veri türü olup olmadığını hiç merak
5:07
ettiniz mi? Cevap sizi biraz
5:09
şaşırtabilir. İşte o ilginç detay. Hayır
5:12
yok. SQL Light'ın kendine ait bir tarih
5:15
saat veri türü bulunmuyor.
5:17
Geliştiriciler zaman bilgisini ya bir
5:19
metin olarak ya da bir sayı olarak
5:21
saklıyor. Neden mi? Çünkü SQI Lite'ın
5:24
tüm amacı olabildiğince basit, hafif ve
5:26
sunucusuz olmak. Zaten mobil cihazlar
5:29
için bu kadar ideal olmasının sebebi de
5:31
bu. Harika bir uygulama yapmak sadece
5:34
kodu yazıp bitirmekle olmuyor, değil mi?
5:36
Aynı zamanda onun kusursuz
5:38
çalıştığından, böyle yağ gibi aktığından
5:40
emin olmamız lazım. İşte geldik son
5:43
aşamaya. Test ve performans. Flutter
5:46
dünyasında sihirli bir rakam var. 3.
5:49
Peki ama bu rakam ne anlama geliyor? Bu
5:52
rakam Flutter'ın birbirinden tamamen
5:54
farklı üç çalışma modunu temsil ediyor.
5:57
Geliştirme yaparken anlık değişiklikleri
5:59
görmek için kullandığınız bir debug modu
6:01
var. Uygulamadaki performans sorunlarını
6:03
bir dedektif gibi bulmak için profile
6:05
modu var. Ve son olarak uygulamanızı
6:08
mağazaya göndermeye hazır olduğunuzda en
6:10
hızlı ve en optimize hali olan release
6:13
modu var. Peki uygulamanızın ne kadar
6:15
akıcı çalıştığını nasıl anlarsınız? İşte
6:19
performance view aracı tam olarak bunun
6:21
için var. ekran tazeleme hızını adeta
6:23
bir kalp ritmi, bir EKG gibi anlık
6:26
olarak gösteriyor. Bu sayede arayüzde
6:28
yaşanan en ufak bir takılmayı yani bizim
6:31
junk dediğimiz o sinir bozucu durumu
6:33
anında yakalayabiliyorsunuz.
6:35
Tabii test aşaması da hayati önemde.
6:38
Kodunuzun bir parçasını test ederken her
6:41
seferinde gerçek bir internet servisine
6:43
bağlanmak hem yavaş hem de güvenilmez
6:45
olabilir. İşte bunun yerine sanki
6:48
internetten geliyormuş gibi davranan
6:50
taklit yani sahte veri kaynakları
6:52
yaratıyorsunuz. Böylece testleriniz dış
6:55
etkenlerden hiç etkilenmiyor ve her
6:57
zaman tutarlı güvenilir sonuçlar
6:59
veriyor. Evet. Bir flutter uygulamasının
7:01
planından diline, yapı taşlarından
7:04
hafızasına ve son performans ayarlarına
7:06
kadar bütün anatomisini birlikte
7:08
incelemiş olduk. Artık bu temel bilgiye
7:11
sahipsiniz. Peki şimdi siz ne inşa
7:14
edeceksiniz? Aklınızdaki o harika proje
7:17
ne olacak?
#Education

