Bir Android geliştiricisi olarak başlangıç ​​oluşturmak için hangi platformlar arası çerçeve seçilmelidir?

May 02 2023
Beş yılı aşkın bir süredir Android geliştiricisi olarak çalışıyorum ve bu kesinlikle ilginç bir iş. Bir alanda uzmanlaşmak, her geçen gün gelişmeye istekli olduğunuz sürece harika bir kariyere sahip olmanızı sağlar.

Beş yılı aşkın bir süredir Android geliştiricisi olarak çalışıyorum ve bu kesinlikle ilginç bir iş. Bir alanda uzmanlaşmak, her geçen gün gelişmeye istekli olduğunuz sürece harika bir kariyere sahip olmanızı sağlar.

Kariyerimde izlediğim yolu sevmeme rağmen, kafamın arkasında her zaman beni rahatsız eden küçük bir ses var. Bazı kişisel fikirler üzerinde çalışmak söz konusu olduğunda becerilerimin oldukça sınırlı olduğunu bana her zaman hatırlatıyor. Hiçbir işletme yalnızca Android uygulamalarına odaklanmaz. Yalnızca iOS platformunu destekleyen bazı işletmeler var, ancak çoğu durumda hem iOS hem de Android platformunu desteklemeniz bekleniyor.

Kişisel proje

Bir süredir, kullanıcılara kişisel gelişim yolculuklarında yardımcı olabilecek bir mobil uygulama hakkında bir fikrim vardı. Geliştirmek için gerekli ekibi kurdum. Gerçek MVP'yi oluşturmak ve tasarlamak istediğimiz özellikleri netleştirdik.

Sonraki adım: geliştirme.

Platformlar arası çerçeveyi seçme

Ekipte mobil uygulama geliştirme tecrübesi olan tek kişi olduğum için iOS ve Android için mobil uygulama geliştirmek benim görevim.

Son birkaç yılda birkaç uygulama projesi için React Native ve Flutter ile kendi başıma deneyler yaptım . Bunlar üzerinde çok zaman harcadığımı söyleyemem ama bazı fikirler oluşturdum.

React Native benim için tıklamayan bir şeydi. Muhtemelen nesne yönelimli programlama yaklaşımına alışkın olduğum ve burada Javascript kullandığım için her şey çok dağınık görünüyordu . Typescript'in farkındayım , ancak birkaç kitaplık Javascript'te yazılıyor, bu nedenle TypeScript'te onlarla etkileşim kurarken çok sayıda tanımsız "any" türü kullanmak zorunda kaldım. Java ve Kotlin ortamından geldiğim için bu bana çok kirli geldi. Ayrıca, CSS'nin büyük bir hayranı değilim.

Flutter, oynamaktan zevk aldığım bir şeydi. Özellikle ilk kez Dart ile deneyler yaptım. Java Android projesine kıyasla büyük bir gelişme gibi görünüyordu. Daha sonra Kotlin'e geçtiğimde Dart'ın Java'dan daha iyi gibi görünse de Kotlin kadar iyi olmadığını gördüm.

Bu çerçevelerin hiçbiri hakkında derin bir bilgim olmadığını unutmayın. Dolayısıyla, geliştirme için birini seçmek zorunda kalsaydım, onu daha iyi öğrenmek için biraz zaman ayırmam gerekirdi.

Kotlin Çoklu Platformu (KMM)

Öte yandan, konsepti React Native ve Flutter'dan biraz farklı olan Kotlin Multiplatform çerçevesi var. UI katmanı ile ilgili olmayan her şeyi Kotlin programlama dilini kullanarak birden fazla platform arasında paylaşmamızı sağlar .

Normal bir Android projesini ele alırsak, herhangi bir özelliği geliştirmek için birden çok katman uygulamamız gerektiğini varsayabiliriz. Her katmanın kendi sorumlulukları vardır. En yaygın olarak, basit bir ekranda bulunan katmanlar şunlardır:

  1. Etkinlik (UI),
  2. Görünüm Modeli,
  3. Kullanım Örneği,
  4. havuz,
  5. Veri kaynağı.

Karar

Android uygulamalarını nasıl geliştireceğimi zaten bildiğim için, bahsedilen bu beş katmanın hepsini kolayca işleyebilirim. Ve Android ve iOS'ta dört katman paylaşacağım için iOS tarafında kalan tek şey UI layout kısmı.

Kullanıcı arabirimi düzeni konsepti, tüm platformlardaki benzer bileşenlerden oluşturulmuştur. Bu nedenle, kullanıcı arayüzünü açıklamak için yeni bir sözdizimi öğrenmek oldukça önemsiz olmalıdır.

Bu yüzden bir sonraki projemde KMM ile gitmeye karar verdim .

Bizi izlemeye devam edin

Android ve iOS arasında UI sınıfları dışında her şeyi paylaşan KMM projesi hakkında daha fazla bilgi edinmek istiyorsanız, beni buradan veya Twitter'dan takip edin . Çok yakında bu konuyla ilgili blog yazısı yazmayı planlıyorum.

Umarım, bir sonraki fikrim için hangi platformlar arası çerçeveyi kullanacağıma karar verirken düşünce sürecim hakkında biraz bilgi edinmişsinizdir.

Daha profesyonel bir düzeyde bağlantı kurmak istemeniz durumunda, işte benim LinkedIn .

Zaman ayırdığınız için teşekkürler!