Flutter ve Dart Mülakat Soruları
Herkese merhaba :) Şu anda bir çok insanın Flutter üzerine iş arayışı bulunmakta ve bu teknolojide iş bulup kendini ilerletmek istemektedir. Tabii ki iş ararken özellikle yazılım sektöründe IK adımından bir sonraki adım genelde teknik sınav veya teknik mülakat olmaktadır. Teknik mülakatta genel yazılım soruları (OOP nedir? Microservis nedir? vb.)dışında adayın başvuru yaptığı teknolojiye özgü sorularda sorulmaktadır.
Bu yazımda araştırdığım kadarıyla Flutter mülakatlarında sorulma ihtimali olan soruları derledim.
S1-) Flutter hangi dil kullanılarak geliştirilmektedir?
C1-) Dart dili ile geliştirilmektedir.
S2-) Dart dili hakkında kısa bir bilgi?
C2-) 2011 yılında Google tarafından piyasaya sürülen Object Oriented Programming (Nesne Yönelimli Programlama) prensiblerine göre geliştirilen açık kaynak kodlu programlama dilidir. Dart dili ile Mobil, Web ve Masaüstü uygulamalar geliştirmek mümkündür.
S3-) Flutter 2.0 ile gelen önemli özellikler nelerdir?
C3-)
· Flutter ile geliştirilen projenin sadece mobilde değil masaüstü ve web’de de çalışması.
· Null Safety özelliğinin getirilmesi.
S4-) Null Safety nedir?
C4-) Bir değişkenin oluşturulduğu andan itibaren null olamayacağını belirtir.Bu durumda bir değişkene değer atamanız veya nullable type olarak belirtmeniz gerekir
S5-) List<String?> ile List<String>? arasındaki fark nedir?
C5-) List<String?> Liste null değil item null List<String>? de ise Liste null item null değil.
S6-) this anahtar kelimesinin constructor’da kullanma amacı nedir?
C6-) this anahtar kelimesi ile constructor’a değer ataması sağlayabiliriz.
String? param1;
VModel? param2;
MyClass(this. param1, this.param2)
S7-) ?? operatörü ne işe yarar
C7-) Değişkenin değeri null ise kontrolü yapılır.
String value= nullBaslangicDeger?? ‘Değer’ eğer nullBaslangicDeger’I null ise ‘Deger’ değerini değişkene atar.
S8-) JSON’u ayrıştırma nasıl yapılır?
C8-) dart:convert kütüphanesi kullanarak jsonDecode ve jsonEncode kullanarak JSON işlemi yapılabilir.
S9-) Widget nedir?
C9-) Flutter’da herşey widget’tır. Widget ise kullanıcı arabirimi elemanlarıdır.
S10-) Stateless widget İle Stateful widget arasındaki fark nedir?
C10-) Stateless widget başlatıldıktan sonra sabit kalıp değişmeyecek widgettır. Stateful ise şartlara göre değişebilen widgetlardır.
S11-) Stateful widget yaşam döngüsü nedir?
C11-)
- createState()- StatefulWidgeta’da hemen çağrılan ve Statepencere öğesi için bir nesne döndürmesi gereken bir yöntem.
- initState() — Statewidget oluşturulduktan sonra nesnede çağrılan ilk yöntem.
- didChangeDependencies()- initState()Widget ilk oluşturulduğunda hemen çağrılır.
- build() — StatelessWidget. Hemen sonra denir didChangeDependencies(). Kullanıcı arabiriminin işlenmesi gereken her seferde çağrılır ve bir pencere öğesinin ağacını döndürür.
- didUpdateWidget() — ana widget değiştiğinde ve kullanıcı arayüzünü yeniden çizmesi gerektiğinde çağrılır.
- deactivate()- dispose()bu nesne ağaçtan kaldırıldığında daha önce çağrılır.
- dispose() — tüm parçacığı ve durumunu serbest bırakırken çağrılır.
S12-) Hot Reload ve Hot Restart Farkı Nedir?
C12-) Hot restart ile widget ağacında büyük olmayan değişiklikleri görebiliriz ama widget ağacında büyük değişiklikler varsa yada yeni kütüphaneler eklenmiş ise native de kodlar değiştirilmiş ise hot reload yapmak daha sağlıklı sonuçlar verecektir.
S13-) SafeArea widget’i ne için kullanılır?
C13-) Bu, widget’larımızı, görünümün çubuklarla ve durum çubukları gibi diğer içeriklerle engellenmemiş bir kısmına yerleştirmeyi kolaylaştıran bir widget.
S14-) Flutterda state management olarak kullanılan yapılar nelerdir?
C14-) Provider, Riverpod, setState, Redux, BLoC, GetX, MobX, Binder, GetIt
S15-) Flutter’da Route kaç farklı şekilde yapılabilir kısaca açıklamaları.
C15-) Ana hatlarıyla 3 farklı gezinme vardır.
· Doğrudan gezinme buda MaterialPageRoute ile sağlanır.
· Rota haritası ile gezime buda MaterialApp içerisine routes kısmında belirlenir.
· Rota oluşturan dinamik gezinme. Buda MaterialApp içerisine onGenarteRoute ile sağlanmaktadır.
S16-) Flutter build modları nedir.
C16-)
· Debug — Geliştirme sırasında, çalışırken yeniden yüklemeyi kullanmak istediğinizde hata ayıklama modunu kullanın.
· Profile- Performansı analiz etmek istediğinizde profil modunu kullanın.
· Release- Uygulamanızı yayınlamaya hazır olduğunuzda yayın modunu kullanın.
S17-) double.infinty nedir?
C17-) Child widget’ının ebeveyn widget’ ı size’ın da olmasını sağlar.
S18-) iOS veya Android kontrolü nasıl yapılır?
C18-)dart:io paketi kurularak, Platform.isIOS şeklinde if kontrolleri yapılabilir.
S19-) Listview widget’inda kullanılan reverse nedir?
C19-) Listedeki öğelerin ters sıralanmasını sağlar.
S20-) Bir widget’ın boyutunu ekran boyutuna göre nasıl ayarlarsınız?
C20-) MediaQuery.of(context).size
S21-) Tüm eklentileri güncelleme komutu nedir?
C21-) flutter pub upgrade
SONUÇ
Umarım paylaşmış olduğum sorular hem başarılı mülakat geçirmenize hemde yeni bilgiler öğrenmenize vesile olmuştur.
Okuduğunuz için teşekkür ederim :)