03-02-2022, 02:09 PM
Statista anketlerinin sonuçlarına göre dünyada akıllı telefon kullanıcılarını sayısı 2020 yılında 3.5 milyara ulaştı. Bu konularda eğitim almamış kişilerce iOS veya Android işletim sistemine sahip telefonlarda geliştirme ne kadar birbirine benzer dursa da gerçekte ikisinin de kendisine has birçok özelliği bulunmaktadır, iOS ve Android’i karşılaştırarak bunları öğreneceğiz. Bu makalede, iOS ve Android işletim sistemlerinde uygulama geliştirmedeki yazılımsal, tasarımsal ve pazarlanmaları üzerine en önemli farkların üzerinde duracağız.
1- Androidler için Java vs iOSlar için Swift
2014 Apple tarafından çıkarılan Swift, 1995’de yılında kullanıma açılan Java’ya göre daha yeni ve yenilikçi bir dildir. Java ise dünyadaki en yaygın kullanılan, en saygın dillerden biridir.
Swift programlama dilinin bahsedeceğimiz avantajlarından ilki oldukça kapsamlı bir açık kaynak komunitesine sahip olması. Apple’ın GitHub’da Swift‘in kaynak kodlarını yayınlamasıyla developer'lar Swift’in arka plandaki kodlarına erişebiliyor ve geliştirilmesine yardımcı oluyorlar. iOS dışındaki programlarda da kullanılabilmesi ile Swift kullanım oranını arttırıyor, hataları daha çabuk bulmaya, dilin performansı ve güvenliği gibi birçok özelliğinin hızlıca gelişmesine olanak sağlıyor.
Swift programlama dilinin diğer bir avantajı için ise sözdizimi (syntax)’ının oldukça basit olması ve programın okunulabilirliği, yazılabilirliği ve sürdürülmesi gibi etmenlerin Java’ya kıyasla daha kolay olması denebilir. Dilin basit olması ise eğitim ve öğrenme sürecininde kısalmasına sebep olmaktadır.
Java dili oldukça sade bir dildir. Bunun en önemli sebebi, sahip olduğu "Çöp Toplayıcısı (Garbage Collector)" ve otomatik bellek yönetimidir. Bu sayede endişe duymadan yeni nesneler yaratırsınız, çöp toplayıcısı ise belleği kontrol edip kullanılan objelerin tespit edilmesini ve geriye kalanların silinmesini sağlar. Bu mekanizma olmasaydı yazılımda hata çıkma ihtimali artacak ve geliştirme süresi uzayacaktı. Swift’teki ARC sistemine göre daha kapsamlı çalışır ve kullanılmayan her şeyi silebilir fakat 2-3 kat daha fazla hafıza (RAM) kullanması gereklidir ki bu da iOS’un en önem verdiği konu olan performansı düşüren bir etkendir..
Java ayrıca nesne yönelimli bir dildir. Program yazarken sınıflar tanımlanır ve bu sınıflara ait özellikler, fonksiyonlar yüklenir. Bu sayede bir değişiklik yapılmak istendiğinde bütün programdaki aynı nesneler yerine sadece sınıf içinde yapmamız yeterli olacaktır. Aynı sınıfı başka yerlerde, başka projelerde kullanabileceğimiz için kod tekrarı azalacaktır ve zamandan kazanç olacaktır.
Java programlama dili ayrıca multithreading programlama’yı destekler. Parçacıklar (threadler) ile aynı programda aynı anda farklı programın farklı kısımlarının çalıştırılmasını sağlar.
2- Androidler için Eclipse vs iOSlar için Xcode
Eclipse ve XCode kısaca sırasıyla Android ve iOS ortamları için IDE’lerdir. IDE ise kısaca programlama dilinin özelliklerine göre geliştirilmiş metin düzenleyiclerdir.
XCode’da kullanıcı arayüzü tasarımı Eclipse’e göre oldukça kolay ve iyi tasarlanmıştır.
XCode’un en büyük dezavantajı ise sadece Mac bilgisayarlarda kullanılabilir olmasıdır. Eclipse veya diğer Android IDE’leri ise her çeşit bilgisayarda kullanılabilir.
3- Demografik Bakış
Statcounter Haziran 2020 verilerine göre dünyadaki mobil işletim sistemi kullanıcılarının %74.14’ü Android’i tercih ederken, %25.26’sı iOS işletim sistemi kullanıyor.
Yukarıdaki görselde de görülebildiği gibi açıklanan bilgilere göre, Apple kullanıcı profili; medya, pazarlama veya ticaret sektöründe çalışan 35 yaş üstü ortalama yıllık geliri 200 bin doların üstünde olan bir kadınken, Android kullanıcısı ise 18-34 yaş arası; bilişim , enerji veya kamu sektöründe çalışan ortalama yıllık geliri 50-100 bin dolar arası olan bir erkek olarak belirlenmiş.
4- Para Kazanma Stratejisi
Uygulamanızı oluşturacağınız işletim sistemini seçmeniz için düşünmeniz gereken bir diğer faktör ise kullanıcıların satin alma eğilimleridir. Apple kullanıcıları genelde AppStore’dan satin almaya odaklanırken, Android kullanıcıları ağırlıklı olarak uygulama reklamlarından etkileniyor gibi gözüküyor.
Yukarıda da görülebildiği gibi, 2017’nin 3. çeyreğinde Google Play’den toplam 18 milyar indirme yapılırken diğer tarafta iOS App Store’dan ise 8 milyar indirme yapılmış. Toplam indirme sayısında Android, iOS’un 2 katından fazla olmasına ragmen, toplam harcanan miktar iOS App Store’da 11 milyar dolarken, Google Play’de 5 milyar dolardan biraz daha fazla olmuş. Buradan iOS kullanıcılarının mobil uygulama için para harcamaya daha eğilimli olduğunu çıkarabiliriz.
5- Geliştirme Karmaşıklığı
iOS içeren sınırlı sayıda cihaz türü olmasına karşın Android işletim sistemiyle çalışan cihazlar çok geniş bir ölçeğe sahiptir. Bunun sonucunda bütün Android cihazlar için çalışacak bir uygulama geliştirmek az çeşitte cihaz tarafından kullanılan iOS işletim sistemi için gerçekleşenden daha uzun ve yavaş bir süreç ile sonuçlanır. Örnek olarak Android cihazlar için geliştirilen uygulamalarda çok farklı çeşitte ekran boyutu ve çözünürlüğü dikkate alınmalıdır.
1- Androidler için Java vs iOSlar için Swift
2014 Apple tarafından çıkarılan Swift, 1995’de yılında kullanıma açılan Java’ya göre daha yeni ve yenilikçi bir dildir. Java ise dünyadaki en yaygın kullanılan, en saygın dillerden biridir.
Swift programlama dilinin bahsedeceğimiz avantajlarından ilki oldukça kapsamlı bir açık kaynak komunitesine sahip olması. Apple’ın GitHub’da Swift‘in kaynak kodlarını yayınlamasıyla developer'lar Swift’in arka plandaki kodlarına erişebiliyor ve geliştirilmesine yardımcı oluyorlar. iOS dışındaki programlarda da kullanılabilmesi ile Swift kullanım oranını arttırıyor, hataları daha çabuk bulmaya, dilin performansı ve güvenliği gibi birçok özelliğinin hızlıca gelişmesine olanak sağlıyor.
Swift programlama dilinin diğer bir avantajı için ise sözdizimi (syntax)’ının oldukça basit olması ve programın okunulabilirliği, yazılabilirliği ve sürdürülmesi gibi etmenlerin Java’ya kıyasla daha kolay olması denebilir. Dilin basit olması ise eğitim ve öğrenme sürecininde kısalmasına sebep olmaktadır.
Java dili oldukça sade bir dildir. Bunun en önemli sebebi, sahip olduğu "Çöp Toplayıcısı (Garbage Collector)" ve otomatik bellek yönetimidir. Bu sayede endişe duymadan yeni nesneler yaratırsınız, çöp toplayıcısı ise belleği kontrol edip kullanılan objelerin tespit edilmesini ve geriye kalanların silinmesini sağlar. Bu mekanizma olmasaydı yazılımda hata çıkma ihtimali artacak ve geliştirme süresi uzayacaktı. Swift’teki ARC sistemine göre daha kapsamlı çalışır ve kullanılmayan her şeyi silebilir fakat 2-3 kat daha fazla hafıza (RAM) kullanması gereklidir ki bu da iOS’un en önem verdiği konu olan performansı düşüren bir etkendir..
Java ayrıca nesne yönelimli bir dildir. Program yazarken sınıflar tanımlanır ve bu sınıflara ait özellikler, fonksiyonlar yüklenir. Bu sayede bir değişiklik yapılmak istendiğinde bütün programdaki aynı nesneler yerine sadece sınıf içinde yapmamız yeterli olacaktır. Aynı sınıfı başka yerlerde, başka projelerde kullanabileceğimiz için kod tekrarı azalacaktır ve zamandan kazanç olacaktır.
Java programlama dili ayrıca multithreading programlama’yı destekler. Parçacıklar (threadler) ile aynı programda aynı anda farklı programın farklı kısımlarının çalıştırılmasını sağlar.
2- Androidler için Eclipse vs iOSlar için Xcode
Eclipse ve XCode kısaca sırasıyla Android ve iOS ortamları için IDE’lerdir. IDE ise kısaca programlama dilinin özelliklerine göre geliştirilmiş metin düzenleyiclerdir.
XCode’da kullanıcı arayüzü tasarımı Eclipse’e göre oldukça kolay ve iyi tasarlanmıştır.
XCode’un en büyük dezavantajı ise sadece Mac bilgisayarlarda kullanılabilir olmasıdır. Eclipse veya diğer Android IDE’leri ise her çeşit bilgisayarda kullanılabilir.
3- Demografik Bakış
Statcounter Haziran 2020 verilerine göre dünyadaki mobil işletim sistemi kullanıcılarının %74.14’ü Android’i tercih ederken, %25.26’sı iOS işletim sistemi kullanıyor.
Yukarıdaki görselde de görülebildiği gibi açıklanan bilgilere göre, Apple kullanıcı profili; medya, pazarlama veya ticaret sektöründe çalışan 35 yaş üstü ortalama yıllık geliri 200 bin doların üstünde olan bir kadınken, Android kullanıcısı ise 18-34 yaş arası; bilişim , enerji veya kamu sektöründe çalışan ortalama yıllık geliri 50-100 bin dolar arası olan bir erkek olarak belirlenmiş.
4- Para Kazanma Stratejisi
Uygulamanızı oluşturacağınız işletim sistemini seçmeniz için düşünmeniz gereken bir diğer faktör ise kullanıcıların satin alma eğilimleridir. Apple kullanıcıları genelde AppStore’dan satin almaya odaklanırken, Android kullanıcıları ağırlıklı olarak uygulama reklamlarından etkileniyor gibi gözüküyor.
Yukarıda da görülebildiği gibi, 2017’nin 3. çeyreğinde Google Play’den toplam 18 milyar indirme yapılırken diğer tarafta iOS App Store’dan ise 8 milyar indirme yapılmış. Toplam indirme sayısında Android, iOS’un 2 katından fazla olmasına ragmen, toplam harcanan miktar iOS App Store’da 11 milyar dolarken, Google Play’de 5 milyar dolardan biraz daha fazla olmuş. Buradan iOS kullanıcılarının mobil uygulama için para harcamaya daha eğilimli olduğunu çıkarabiliriz.
5- Geliştirme Karmaşıklığı
iOS içeren sınırlı sayıda cihaz türü olmasına karşın Android işletim sistemiyle çalışan cihazlar çok geniş bir ölçeğe sahiptir. Bunun sonucunda bütün Android cihazlar için çalışacak bir uygulama geliştirmek az çeşitte cihaz tarafından kullanılan iOS işletim sistemi için gerçekleşenden daha uzun ve yavaş bir süreç ile sonuçlanır. Örnek olarak Android cihazlar için geliştirilen uygulamalarda çok farklı çeşitte ekran boyutu ve çözünürlüğü dikkate alınmalıdır.