Bir Android Geliştiricinin Vue.js, Quasar ile Tanışması

Photo by Danka & Peter on Unsplash
Herkese merhaba! :) Tam 8 senedir native Android geliştiriyorum. Meslek hayatımın ilk 2 yılında Java, sonrasındaysa Kotlin diliyle geliştirme yaptım.
Hayatımın Uygulaması
2021 yılında ING Türkiye ile yola çıktığımız dönüşüm projesinde, sıfırdan bir bankacılık mobil uygulaması yazdık; bu aşamada, başladığımız tarihte Android’de çıkmış en yeni teknolojileri kullandık:
Dependency Injection aracı olarak Hilt,
Stateflow, Two-way binding içeren sağlam bir MVVM,
Bankacılık alanları bazında(hesaplar, para transferleri, kartlar…) modüllere ayrılmış Clean Architecture kullanımıyla temiz bir kod,
Tekli activity çoklu fragment yapısıyla daha iyi bir performans ve navigation kolaylığı,
Mockkito testleri içermeyen PR geçirmeyecek kadar titiz bir kod inceleme süreci…

3–4 Android developer ile başlanan proje; kendini iyi yetiştirmiş, yeniliklere açık ve birikimli 20 Android geliştiriciyle, 2023'te uygulama mağazalarında yerini aldı(Google Play Store). Verimli, yapıcı kod inceleme yorumları; egosuz ekibimizde hem kodun daha iyi olmasını hem de kendimizi daha iyi geliştirmemizi sağladı.
Projenin pek çok yerinde kullanılan hesap seçme bileşenini, hesaplarım listesini; IBAN’a, hesaplarım arası, cep telefonuna para transferi, hesap hareketleri (hayatımın en zorlayıcı günlerini yaşattı sağ olsun) ve vadeli hesap açma ekranlarını bizzat geliştirdim.
Android’den Nasıl Sıkılabildim
ING’den sonra, yine 4 kişilik iyi bir ekiple büyük çaplı bir mobil cüzdan projesine girişmiş olmama rağmen hep aynı CRUD işini yapıyormuşum gibi gelmeye başladı. Zorluklarla mücadele etmeyi seven ruhum; ING’de yazdığımız, kendine güvenen bu taş gibi işten sonra, Android tarafında sıkılarak kabına sığamaz bir hale geldi.
Photo by Matthew Henry on Unsplash
Daha büyük bir proje göremeyeceğimi, görsem de sıfırdan başlayacak ekipte bulunmamın pek mümkün olmadığını düşünmeye başladım. E “.Net” geçmişim de olduğu için Unity çalışmak mantıklı geldi, çok sevdim; bir spaceshooter geliştirdim ama Unity’de sadece konfor alanımdan çıkarak aşamayacağım başka türden zorluklarla karşılaştım. Bilenler bilir, Unity’nin de çıldırmasıyla ondan da soğudum. Yükselen yıldız “Godot Engine” ise henüz radarıma takılmadı.
Sıradaki Gelsin !
Lebib Yalkın’daki “yazılım takım liderliği” ilanını görmemle birlikte, yepyeni bir zorluk deneyimi yaşama düşüncesiyle gözlerim parladı. Görüşmeler olumlu geçti. Native Android geliştirmeyle Kotlin’in askeri olan ve cross platform geliştirme kütüphanelerine ön yargılı olan bünyem Quasar ile tanıştı! İlk başta sanki uzaylılarla tanışıyormuşum gibi hissetsem de hızla alıştım.
Quasar, çoklu platform desteği konusunda beni zengin etti. Artık aynı kodla hem web uygulamaları hem de mobil uygulamalar yapabiliyor, kendimi bir süper kahraman gibi hissediyorum! Bu teknolojinin “Vue.js” tabanlı olması da ayrı bir hikâye. Bu çocuk, kod yazmayı eğlenceli hâle getiriyor: Anlaşılır bir syntax ile çalışırken performansı da ihmal etmiyor. Vue.js’in geniş topluluğu sayesinde, sanki kahve molasında bir arkadaşa soru sormuş gibi hemen çözüm bulabiliyorsun.
Photo by Luca Upper on Unsplash
Quasar’ın, Google Material Design ögelerine benzeyen tasarım öğeleri ve hazır bileşenleri var ya, beni bildiğim sularda yüzdüğüme iyice ikna etti. Görsel şölen yaratmak çok kolay, sanki bir sanat eseri yapıyormuşum gibi. Tabii ki bazı sıkıntılar da yok değil. Mesela, bazen belirli platform özelliklerinde biraz sıkıntı yaşayabiliyorsun ama bu da işin doğası; her teknolojinin biraz kaprisi de olmalı canııım!
Quasar ile geçen birkaç haftada bir uygulama bile yazdım. Klasik movie veritabanı apilerine bağlanan, film listeleyen bir uygulama. Bir sonraki yazıda bu teknolojiyi teknik detayları ve Android ile benzerlikleriyle ayrıntılı olarak inceleyeceğim.
Sonuç olarak, Quasar Framework ile kod yazmak bana yeni ufuklar açtı. Hem hızlı hem de eğlenceli bir şekilde projeler üretebiliyorum. Önyargılarınızın kölesi olmayın sevgili Nativeciler. Eğer henüz tanışmadıysanız Quasar ile buluşma vaktiniz gelmiş demektir!
Sıkça Sorulan Sorular
▸Quasar Framework nedir ve ne işe yarar?
Quasar, Vue.js tabanlı bir cross-platform geliştirme framework'üdür. Aynı kod tabanıyla hem web uygulamaları hem de mobil uygulamalar geliştirmeye olanak tanır. Google Material Design'a benzer hazır bileşenler içerir.
▸Native Android geliştiricisi neden cross-platform'a geçmek ister?
Büyük ölçekli projelerde aynı CRUD işlemlerini tekrar etmek zamanla sıkıcı hale gelebilir. Cross-platform geliştirme, tek kod tabanıyla birden fazla platforma uygulama sunma imkânı vererek yeni bir zorluk ve öğrenme deneyimi sağlar.
▸Android geliştirici için Quasar öğrenmek zor mu?
Yazara göre ilk başta yabancı hissettirse de hızlıca alışılabiliyor. Vue.js'in anlaşılır syntax'ı ve geniş topluluğu sayesinde sorunlara çabuk çözüm bulmak mümkün. Quasar'ın Material Design benzeri bileşenleri Android geliştiricilerine tanıdık geliyor.
▸ING Türkiye bankacılık uygulaması hangi Android teknolojileriyle geliştirildi?
Uygulama; Hilt ile Dependency Injection, StateFlow, Two-way binding içeren MVVM mimarisi, Clean Architecture, tekli activity çoklu fragment yapısı ve Mockito testleri içeren titiz kod inceleme süreciyle geliştirildi. 2023 yılında Google Play Store'da yayımlandı.
▸Vue.js'in Quasar ile birlikte kullanılmasının avantajı nedir?
Vue.js'in anlaşılır syntax'ı performanstan ödün vermeden kod yazmayı kolaylaştırır. Geniş topluluğu sayesinde karşılaşılan sorunlara hızlıca çözüm bulunabilir. Quasar bu temeli alarak cross-platform bileşen desteğiyle genişletir.
▸Quasar'ın dezavantajları var mı?
Yazara göre belirli platform özelliklerinde zaman zaman sıkıntılar yaşanabiliyor. Bu durum cross-platform araçların genel bir özelliği olarak değerlendiriliyor; her teknolojinin kendine özgü kısıtları olabileceği kabul ediliyor.
▸Android'den sıkılan geliştirici başka hangi alternatifleri denedi?
Yazar önce Unity ile bir space shooter oyunu geliştirdi ancak Unity'nin yaşadığı sorunlar nedeniyle vazgeçti. Godot Engine ise henüz değerlendirme aşamasına gelmedi. Sonunda Quasar Framework ile cross-platform web ve mobil geliştirmeye yöneldi.
▸Quasar ile ne kadar sürede uygulama geliştirilebilir?
Yazar, Quasar'ı öğrenmeye başladıktan sonra birkaç hafta içinde film veritabanı API'lerine bağlanan ve film listeleyen işlevsel bir uygulama geliştirebildiğini aktarıyor. Bu, framework'ün öğrenme eğrisinin makul olduğunu gösteriyor.
▸Native Android geliştiricileri cross-platform araçlara neden önyargılı olur?
Native geliştiriciler genellikle platform özelliklerine tam hakimiyet, performans ve dil olgunluğu konusunda cross-platform çözümlere güvenmez. Yazar bu önyargıyı bizzat yaşadığını belirterek Quasar deneyiminin bu görüşünü değiştirdiğini aktarıyor.



