Kotlin Vs Flutter: Platformlar Arası Uygulama Pazarını Kim Yönetecek?
Yayınlanan: 2020-02-20Tamam, önce ilk şey.
Bir zamanlar çapraz platform geliştirmenin , React Native ve Flutter kullanarak bir uygulama oluşturmakla eşanlamlı olduğu düşünülüyordu. İş meraklıları ve mobil uygulama geliştirme şirketleri, hem Android hem de iOS'ta uygun maliyetli bir şekilde varlıklarını sürdürmek için bu iki çerçeveye güveniyorlardı.
Ancak şimdi, Kotlin gelişti ve rekabete girdi , bu da herkesin çapraz platform uygulama pazarının nihai hükümdarının kim olacağını merak etmesine neden oldu . Flutter ve React Native karşılaştırmasını daha önce incelediğimizden , burada, bu makalede Kotlin ve Flutter karşılaştırması hakkında açıklayıcı bir şekilde konuşacağız ve platformlar arası programlama ve geliştirme ihtiyaçlarınız için doğru seçeneği bulmanıza yardımcı olacağız.
Biz burada Kotlin'in platformlar arası işlevselliğini tartışacak olsak da, bu blogda Swift'in Android uygulamaları geliştirmek için nasıl kullanılabileceğini öğrenebilirsiniz .
Ama önce her ikisinin de iplerini öğrenelim.
Kotlin Multiplatform nedir?
Kotlin çoklu platformu, dilin android uygulama geliştirmenin ötesine geçen ek bir özelliğidir . Anlamı, geliştiricilerin iOS, Web, Linux, MacOS, Android ve Java Sanal Makinesi (JVM) gibi birden çok platformda kodları, verileri ve iş mantığını paylaşmasına olanak tanır.
Burada çok platformlu işlevselliğe odaklanacağımız için, bu blogda Kotlin'in yerel platform özelliklerini tanıyabilirsiniz:- Android Uygulama Geliştirme için Kotlin – Nedenler ve Nasıllar ve Bonus İpuçları .
Platformlar arası uygulama geliştirme için Kotlin'e yatırım yapma konsepti piyasada hala yeni , ancak şaşırtıcı bir şekilde çeşitli popüler markalar tarafından benimseniyor.
Flutter UI Çerçevesi nedir?
Google Fuchsia için bir pazar hazırlamak amacıyla 2015 yılında tanıtılan Flutter, tek bir kod tabanı kullanarak güzel , yerel görünümlü mobil, web ve masaüstü oluşturmayı sağlayan açık kaynaklı bir SDK'dır.
Google Flutter, çok sayıda mevcut teknolojik ve pazar sorununu hedefledi ve etkili çözümler sağladı. Bunun bir sonucu olarak Flutter, kısa sürede ideal bir çapraz platform uygulama geliştirme çerçevesi haline geldi . Sadece bu değil, en iyi markaların birlikte çalıştığı teknolojiler listesine girdi.
Şimdi, her ikisini de temel aldığımız için, çapraz platform mobil geliştirme için hangisinin daha iyi olduğunu görelim – Kotlin veya Flutter – .
Kotlin Multiplatform ve Flutter'ı Karşılaştırmak İçin Dikkate Alınması Gereken Faktörler
1. Pazar Popülaritesi
Hem Kotlin hem de Flutter açık kaynaklıdır ve kullanımı ücretsiz araçlardır. Bu nedenle, geliştiriciler her ikisiyle de çalışmaya ilgi gösteriyor.
Google Trends'i kontrol ederseniz, Flutter, Kotlin'e kıyasla popülaritesinde dik bir artış gösteriyor. Benzer şekilde, Kotlin ve Flutter'ı GitHub varlığına göre karşılaştırırsanız, ilkinde 28.3K yıldız ve 3.29K çatal bulunurken, ikincisinde 69.5K yıldız ve 8.11 çatal bulunur.
Bu, Flutter'ın Kotlin'e kıyasla piyasada büyük bir ivme kazandığını gösteriyor.
2. Öğrenme Eğrisi
Flutter ve Kotlin yerel savaşında öğrenme eğrisini bir karşılaştırma faktörü olarak kabul ederseniz , ikincisi inkar edilemez bir şekilde kazanır. Bunun arkasındaki neden, Java ile birlikte çalışabilir olması ve Google'ın birkaç ay önce çeşitli Kotlin öğrenme kursları sunmasıdır .
Ancak Kotlin ve Flutter hakkında konuşurken senaryo biraz farklıdır. Kotlin Multiplatform yeni bir ekosistemdir ve Flutter'a kıyasla piyasada sınırlı kaynaklara sahiptir.
Bu nedenle, Flutter yarışmayı kazanır.
3. Performans
Flutter dili, geliştiricilerin hem düzen hem de arka uç ihtiyaçları için aynı dili kullanmasını, daha yüksek animasyon hızının keyfini çıkarmasını ve çok daha fazlasını sağlar.
Ancak, Kotlin ile karşılaştırıldığında, pazarda hala çok geride kalıyor. Bunun arkasındaki ana sebep, Kotlin kodunun tam olarak hedeflenen platformun biçiminde derlenmesidir.
Peki, hangisi daha iyi kotlin mi, çarpıntı mı diye sorarsanız? O zaman bu çarpıntı vs kotlin performansının galibi ikincisidir .
4. Üçüncü Taraf Kitaplıklarının ve Araçlarının Entegrasyonu
Kotlin çoklu platform, bir ekosistem oluşturmak yerine yerel platform ekosistemleri içinde çalışır. Böylece uygulama uzmanları, Jetpack Compose ve SwiftUI dahil olmak üzere yerel geliştirme sırasında kullandıkları aynı araçları ve kitaplıkları kullanabilir . Bu da, yerel ortamla bağlantı kurmak için üçüncü taraf kitaplıkları ve araçları aramalarına gerek olmadığı anlamına gelir.
Bununla birlikte, temel olarak bir UI geliştirme aracı olması koşuluyla , Flutter platformlar arası SDK durumunda gereklidir .
5. Arka Uç Geliştirmede Kapsam
Kotlin ve Flutter arasındaki farkı bilmek için arka uç yazılım geliştirme hizmetlerini düşünmek söz konusu olduğunda , birincisi yine ikincisine göre bir avantaja sahiptir.
Flutter dili , etkili arka uç fırsatları sağlamak için etkili bir BaaS (Hizmet Olarak Arka Uç) platformu olan Firebase ile birlikte giderken, Kotlin çoklu platformu geliştiricilerin arka uç kodu yazmasına olanak tanır .
6. Birden Fazla Platforma Odaklanın
Şu anda, mobil (Android ve iOS) ve web'i hedeflemek için tasarlanmış uygulamalar Flutter kullanım örnekleri kapsamındadır . TVOS, Android Auto, CarOS ve WatchOS'ta varlık göstermek için kullanılamaz.
Ancak, Kotlin çoklu platformu durumunda böyle bir kısıtlama yoktur. Mobilin ötesinde cihazlar ve platformlar için uygulama projeleri geliştirmek üzere tasarlanmıştır.
Bu nedenle, Kotlin çoklu platformunu tercih etmek, mobil uygulama geliştirme hizmetleri şirketleri için uygulama fikirlerini akla gelebilecek her platformda ve cihazda başlatmak için iyi bir seçimdir.
7. İş ve Maaş Kapsamı
Kotlin çoklu platform ve Flutter dil karşılaştırmasına bakarken göz önünde bulundurulması gereken bir diğer önemli faktör de iş ve maaş kapsamıdır.
StackShare topluluğuna göre, Kotlin programlama dili 268 şirket ve 210 geliştirici tarafından teknoloji yığınları arasında yer alırken, Flutter çapraz platform 42 şirket ve 146 geliştirici tarafından bir teknoloji yığını olarak listeleniyor.
Şimdi, Kotlin çoklu platformu bağımsız bir platform olmadığı için. Ana dilin deneysel bir uzantısıdır ve Kotlin ana ortamında kullanılabilir, piyasada daha fazla iş seçeneğine sahip olduğu izlenimini verir.
8. Dokümantasyon ve Topluluk Desteği
Flutter ile karşılaştırıldığında, Kotlin çoklu platformu hala yeni ve aslında deneysel bir durumda. Bu nedenle, ikincisi için belgeleme ve topluluk desteği, birincisinin biraz gerisinde kalmaktadır. Ancak, çoklu platform istikrarlı hale geldiğinde belgelemenin yanı sıra topluluk gücünün artması beklenmektedir; herkesi platformlar arası geliştirme için Kotlin'i kullanmaya teşvik etmek .
Şimdi Flutter ve Kotlin'in çeşitli açılardan nasıl farklılaştığını gördük. Seçimi kolaylaştırmak için her ikisinin de avantajlarını ve dezavantajlarını bilmek önemlidir.
Kotlin Multiplatform'un Artıları
1. Bu bir SDK'dır, çerçeve değil
Kotlin'i seçmenin en büyük yararı, tüm uygulamayı değiştirmek zorunda kalmamanızdır. Tek bir modül veya unsurla başlayabilir, çalışmasını belirleyebilir ve ardından diğer parçaları aşamalı olarak geçirebilirsiniz.
2. Öğrenmesi Kolay
Kotlin, Swift, Java, Groovy ve Scala gibi diğer en iyi programlama dillerine oldukça benzer bir sözdizimine sahip olduğundan , dili öğrenmek ve Kotlin çoklu platform geliştirmeye yatırım yapmak oldukça kolaydır.
3. İş Mantığının Yeniden Kullanımı
İş mantığını ve kullanıcı arayüzünü ayırmayı sağlayan ilk araç olmadığı doğrudur. Xamarin ve React Native gibi çeşitli çapraz platform çerçeveleri bu hizmeti sunmaktadır.
Ancak onu diğerlerinden farklı kılan, UI katmanının altında paylaşılan mantık ve kütüphaneler kullanmasıdır. Bu, mobil uygulama geliştiricilerinin yerel ortamla (iOS için Swift ve XCode, web için JavaScript ve Android için Kotlin ve Android Studio) herhangi bir köprü kullanmadan etkileşim kurmasını ve kodları daha yerel bir şekilde teslim etmesini sağlar.
4. Yerel Kullanıcı Arayüzü Deneyimi
Kotlin Multiplatform, geliştiricilerin UI oluşturma için herhangi bir talimatı izlemesini talep etmez. UI uygulama geliştiricilerinin , tıpkı yerel durumda olduğu gibi uygulamanın görünümü, davranışı ve performansı üzerinde çalışmasına olanak tanır .
5. Daha Yüksek Performans
Kotlin'in mobil uygulama geliştirme için çapraz platform çerçevesini düşünmenin avantajlarından biri, çok platformlu kodun hedeflenen platformla açık biçimde aynı biçimde derlemesidir. Bu, performansta yerel muadilleri kadar iyi olmasını sağlar.
6. Gelişmiş Esneklik ve Ölçeklenebilirlik
Geliştiricilerin uygulama projelerini ölçeklendirmesine ve herhangi bir VM kullanmadan çalışmasına olanak tanır. Bu, esneklik ve ölçeklenebilirlik faktörlerine odaklanırken bir mobil uygulama oluşturmak için mükemmel bir seçimdir.
Ancak, bu kadar etkileyici avantajlara rağmen, Kotlin dilinin çoklu platform uzantısı, bazı dezavantajlar nedeniyle hala herkesin favorisi olmak için mücadele ediyor.
Kotlin Multiplatformu Tercih Etmenin Eksileri
1. Hala Deneysel Durumda
Kotlin 1.2'de tanıtılmasına rağmen, SDK henüz kararlı bir 1.0 sürümüne ulaşmadı. Hala deneysel durumda; geliştiricilerin bir sonraki büyük projeleri için onu seçmede tereddüt etmesine neden oluyor.
2. Bilgi Edinmek Zaman Alır
Java ve Kotlin'in benzer bir kod tabanına veya işlevsel platformlara sahip olmasına rağmen, organizasyonun geliştiricileri Kotlin üzerinde hazırlaması gerekliliği vardır. Bunun nedeni, Kotlin hakkında uygun bilgiler olmadan platformların değiştirilmesinin muhtemelen daha kolay olmayacağıdır. Bu, bir organizasyonun ekibi kotlin çapraz platforma hazırlamanın maliyetleriyle ilgilenmesini gerektirebilir.
3. Sınırlı Mevcut Kitaplıklar
Şu anda, geliştirme ortamında veri serileştirme kitaplıkları ve HTTP istemci kitaplıkları gibi yalnızca birkaç temel kitaplık mevcuttur. DateTime kitaplığı gibi daha birçok kitaplık, Kotlin 1.3.60'ın halefi olan Kotlin 1.4'ün ortaya çıkmasıyla pazara girse de, bugüne kadar sorunsuz ve zahmetsizce uygulamalar oluşturmak zordur.
4. Diğer Teknik Yığınla Aşinalık Gerekiyor
Kotlin çoklu platformu, bir platformun odaklandığı her uygulama programlama arabiriminin (API) yerini alacak şekilde tasarlanmadığından, uygulama geliştirme şirketlerinin her bir platform ve API hakkında temel bilgilere sahip olması gerekir. Bu da, Flutter ve diğer platformlar arası geliştirme seçenekleri yerine Kotlin'i seçmenin bir dezavantajıdır; bu da, Teksas'ta işlerine yardımcı olmak için mobil geliştirmede çırpınmak olsun, konumu dikkate almadan çarpıntıyı tercih etmelerine yol açar.
5. Daha Yüksek Geliştirme Maliyeti
Son olarak, Kotlin SDK birkaç yarı yerel işlevsellik sağlar. Bu nedenle, mobil uygulamalar oluşturmak için daha yüksek maliyet gerektirir ve bu da onu MVP'ler ve uygulama prototipleri oluşturmak için uygun hale getirmez.
6. Derleme Hızındaki Dalgalanmalar
İnanılmaz gelişmelere öncülük etmenin farklı örneklerinde, Kotlin genel olarak Java'dan daha hızlı çalışır. Bu nedenle, genel olarak Java, bu durumda net uygulamalar geliştirmek için net bir kazanan olmaya devam ediyor. Kotlin'in yüksek hızı, temiz bir işlevsel uygulama sağlamayabilir.
Bu konuyu ele alarak, Kotlin ve Flutter çoklu platform ilişkisini öğrenmek için pazarın derinliklerine dalmadan önce Flutter'ın bir özetini yapalım.
Flutter'ı Düşünmenin Avantajları
1. Açık Kaynak ve Ücretsiz Kullanım
Hem Flutter hem de temeldeki programlama dili Dart , açık kaynaklıdır ve kullanımı ücretsizdir. Bu, geliştiricilere belgeleri görüntüleme, sorgularını açık geliştirici forumunda gönderme ve sonunda kodu öğrenme ve uygulama yetkisi verir. Flutter ile uygulama geliştirme dünya genelinde kabul gördü ve insanlar iş hedeflerine ulaşmak için ABD, Florida, New York vb. ülkelerdeki flutter uygulama geliştirme şirketini seçerek bu gelişmeden faydalanıyor .
2. Sıcak Yeniden Yükleme İşlevselliği
Google Flutter'ın mobil uygulama geliştirme ajansları tarafından tercih edilmesinin en büyük nedenlerinden biri hot reload özelliğidir.
İşlevsellik, herkesin arka uçta herhangi bir değişiklik yapmasını ve aynı anda ön uçtaki farkı görmesini kolaylaştırır. Ve bu şekilde, değişikliğin uygulamanın diğer öğeleriyle mükemmel görünüp görünmediğine kolayca karar verin.
3. Son Derece Özelleştirilebilir
Geliştiriciler, Flutter uygulama geliştirme hizmetlerine yatırım yaparak , geliştirme ortamında farklı widget'ları kullanma fırsatı elde eder. Bu, daha hızlı ve özelleştirilmiş görünüm ve hisse sahip mobilite çözümleri oluşturmalarını kolaylaştırır.
4. Daha Düşük Geliştirme Zaman Çizelgesi ve Maliyet
Flutter mobil uygulama geliştirmeye odaklanmanın başlıca faydalarından biri, tek bir kod tabanı kullanarak hem iOS hem de Android için yerel benzeri uygulamalar oluşturma fırsatları sunmasıdır. Bir Flutter mobil uygulaması oluşturmanın maliyetini önemli ölçüde azaltan bir şey.
5. Google Firebase Desteği
Firebase entegrasyonu olanağıyla, Flutter ile oluşturulan uygulamalar , geliştiricilerin geliştirme ortamına arka uç tesisleri eklemesine olanak tanır .
6. MVP'ler ve Uygulama Prototipleri Oluşturmak için uygundur.
Flutter programlama dili, hem Android hem de iOS platformları için daha az zaman, maliyet ve çabayla uygulama oluşturma işlevselliği sunar. Bu, Flutter'ı MVP geliştirme ve suyu test etmek veya fon toplamak için kullanılabilecek prototipler oluşturmak için mükemmel bir seçenek haline getirir.
Flutter SDK Kullanmanın Dezavantajları
1. Daha Büyük Uygulama Boyutu
Uygulama geliştirme planınız için Flutter'ı seçmenin en büyük dezavantajı, uygulama boyutunun çok büyük olmasıdır. React Native ve Xamarin ile karşılaştırıldığında, bu çerçevede 'Hello World' uygulamasının sürüm dosya boyutu bile 6.7MB civarında.
2. Dartta Yapılan Kodlama
Dart'ın öğrenmesi kolay ve uygulaması daha hızlı olduğu gerçeği inkar edilemez. Ancak, Java, C#, JavaScript ve C gibi benzerleri kadar popüler değil. Bu, flutter uygulama oluşturucusunun en iyi dart programlama kurslarına kaydolmasını engeller ve Flutter endüstrisine girer.
3. Üçüncü Taraf Kütüphanelerinin Eksikliği
Üçüncü taraf kitaplıkları ve paketleri, tasarımcılar için birkaç önemli noktayı güçlendirdiği için yazılım geliştirme üzerinde kritik bir etkiye sahiptir. Bu yabancı kitaplıklar düzenli olarak ücretsiz, açık kaynaklı, önceden test edilmiş ve kolayca erişilebilir durumdadır. Şu an için geliştirme için ihtiyacınız olan her bir bileşeni takip edemeyebilirsiniz.
Flutter programlama dili mobil uygulama geliştirme için yeni olduğu için ücretsiz paketlerin ve kitaplıkların izini sürmek zordur. Cihaz hala geliştirme aşamasında ve gelişiyor. Bu nedenle ya biraz daha beklemeli ya da uzun vadeli gelişim için bir alternatif seçmelisiniz.
4. iOS ile ilgili sorunlar
Flutter uygulama geliştiricilerinin iOS için uygulanması konusunda stresli olmasının nedeni budur. Google, hataları kısa sürede düzeltmeye doğrudan hevesli olduğundan, Flutter üzerinde Android uygulamaları oluşturmak hızlı ve keyifli.
Muhtemelen Flutter programlama dilindeki en son güncelleme, piksel mükemmelliğinde bir iOS görünümüdür. Cupertino widget'larını güçlendirmek için çerçeve üzerinde iPhone ayarları geliştirildi. Ancak iOS 10 ve iOS 11'e dayalı olarak, özellikler daha sonra yenilendi ve bir süreliğine teslim edildi.
5. Parola Yöneticisi Desteğinin Eksikliği
Kendi yerel olmayan widget'larınızı kullanmanın dezavantajları vardır. Örneğin, belirli Android ve iOS özelliklerini kullanan sorunlar var. Flutter ile oluşturulan uygulamalar şu anda otomatik tamamlama giriş alanlarıyla ilgili sorunlar yaşıyor. Bu, özellikle yerleşik veya üçüncü taraf yöneticilerden güvenlik (parola) çıkarma işlemi uygulamanız gerektiğinde gözlemlenebilir.
Platformlar Arası Geliştirme Savaşının Kazananı Kim?
Hem Kotlin çoklu platformu hem de Flutter güvenilirdir, hem Android hem de iOS platformlarında varlık gösterme süresini kısaltmayı amaçlar ve Google tarafından desteklenir. Birbirlerine kıyasıya rekabet veriyorlar ve her sürümde daha rekabetçi hale geliyorlar.
Böyle bir senaryoda, hangisinin daha iyi olduğunu belirlemek için mobilite uzmanlarına danışmanız ve platformlar arası uygulama gereksinimlerinizi ve önceliklerinizi analiz etmeniz önerilir – Kotlin ve Flutter.