AÖF Soru Bankası
BİL209U · Ünite 1

Mobil Uygulama Geliştirme Bileşenleri

Mobil Uygulama Geliştirme dersi, ünite 1 özeti

BİL209U-MOBİL UYGULAMA GELİŞTİRME

Ünite 1: Mobil Uygulama Geliştirme Bileşenleri

Giriş

İnternete erişim sağlayan bireylerin %90.7’si akıllı telefonlardan internete girmektedir. Bu oranın laptop ve masaüstü bilgisayarlardan internete girenlerde %71.2’de olması akıllı telefonların geleceği hakkında bazı ipuçları vermektedir. Oyunlarda da durum farklı görünmemektedir. 16-64 yaş arası internet kullanıcılarının %68.1’i akıllı telefonlardan %36.8’i laptop ve masaüstü bilgisayarlardan %25.8’i oyun konsollarından, %17.2’si tabletlerden oyun oynamaktadır. Oranlara bakıldığında akıllı telefonların oyun oynama alışkanlıklarını da değiştirdiği ve mobil cihazlara doğru bir kayma gerçekleştiği söylenebilir.

Mobil Uygulama Tanımı, Kullanım Alanları ve Türleri

Mobil Uygulama Tanımları

Uygulamalar (application ya da kısaca app) genellikle cihazda yerel olarak çalışsa da bir web tarayıcısı aracılığıyla da kullanılabilen yazılım türüdür. Uygulamalar bilgisayarda, akıllı telefonda, tablette, akıllı TV’ler ve akıllı saatler dahil diğer elektronik cihazlarda bulunabilmektedir.

Mobil uygulama kavramı, telefon/akıllı telefon, tablet, akıllı saat veya akıllı gözlük gibi bir “taşınabilir” aygıtta çalışacak şekilde geliştirilen bir yazılım türü olarak tanımlanmaktadır. Mesafe ölçümü, iki nesne arasındaki uzaklığın ölçümüdür ve çeşitli yöntemler kullanılarak gerçekleştirilmektedir.

Mobil uygulamalar genellikle sınırları çizilmiş fonksiyonlara sahip küçük yazılım üniteleri olsa bile, kullanıcılara kaliteli hizmetler ve deneyimler sunma amacı taşımaktadır.

Mobil Uygulama Kullanım Alanları

Mobil uygulamalar kullanım alanları bağlamında çeşitli şekillerde sınıflandırılmaktadır:

• Eğitim uygulamaları • m-Ticaret uygulamaları • Sosyal ağ uygulamaları • Oyun uygulamaları • Eğlence uygulamaları • Yaşam tarzı (lifestyle) uygulamaları • Seyahat ve harita uygulamaları • Yardımcı (utility) uygulamalar

Mobil Uygulama Türleri

Yerel (Native) Uygulamalar

Yerel uygulamalar genellikle belirli bir işletim sistemi (iOS, Android, Windows vb.) üzerinde çalışacak şekilde özel olarak geliştirilen uygulama türüdür. Hedef kitleye erişim sağlamak için farklı işletim sistemleri için ayrı uygulamalar tasarlamak gerekmektedir. Yerel bir uygulama geliştirmek, her işletim sistemi için ayrı uygulamalar oluşturmayı ve bunların özelliklerini hesaba katmayı gerektirmektedir. İlgili işletim sistemine özel olarak

geliştirilen bir yerel uygulama farklı işletim sistemi türlerinde kullanılamamaktadır.

Yerel uygulamaların bazıları internet bağlantısı gerektirse de, internet bağlantısından bağımsız olarak ta çalışabilmektedir. Bu uygulamalar yerel cihaz kullanıcı arayüzünü kullanmaktadır. Kotlin, Swift, Python, Java, Objective-C gibi çeşitli programlama dilleriyle yerel bir uygulama geliştirilebilmektedir.

Verimli kodlama sistemleri sayesinde, optimum donanım gereksinimlerine ihtiyaç duyar. Yapılandırmaları daha kolaydır ve uyumluluk sorunları daha azdır. Kişiselleştirmeye uygundur. Duyarlıdır ve sorunsuz, hızlı ve etkileşimli bir kullanıcı arayüzüne sahiptir. Arayüz tanıdık bir görünüm ve his verir. Bu uygulamaların bazı dezavantajları da bulunmaktadır. İşletim sistemine özel uygulamalar oluşturmak zaman alabilmektedir. Ayrıca, Swift ve Java gibi işletim sistemine özel programlama dillerini öğrenmek oldukça zordur. Belirli bir işletim sistemi ile sınırlı olduğundan dolayı, hedef kitleyi de sınırlamaktadır. Uygulamanın bakımı ve güncellenmesi yoğun bir maliyet ve emek gerektirir. Farklı platformlar için farklı uygulamalar oluşturulması gerekir. Yeni özellikler için ayrı bir kod tabanı gerektirir.

Web Tabanlı (Web-Based) Uygulamalar

Web tabanlı uygulamalar yerel uygulamalara benzer özellikler taşımasına rağmen, mobil cihazdaki web tarayıcıları (Opera, Chrome, Firefox, Safari vb.) aracılığıyla erişilen uygulamalardır. Yerel uygulamalardan farklı olarak cihazın donanımına erişememekte ve HTML5, CSS, Javascript gibi popüler programlama dilleriyle daha kolay geliştirilmektedir. Yerel uygulamalarla arasındaki en büyük farklardan biri, yerel uygulamaların aktif bir internet bağlantısı kullanıp kullanmamasıyla ilgilidir. Yerel uygulamalar hem aktif bir internet bağlantısı olmadan çevrim dışı modda hem de çevrim içi modda çalışabilirken, web uygulamalarının çalışması için aktif bir internet bağlantısı gerekmektedir.

Bu uygulamalar bilgisayarınızda veya akıllı telefonunuzda yüklü olmadığından, web’de barındırılan sunucularda kendilerini güncelledikleri için web uygulamasını güncellemeye gerek yoktur.

Mobil web uygulamaları, çeşitli ekran boyutlarına ve cihazlara kolayca uyum sağlamaktadır. Duyarlı (responsive) web uygulamaları (siteleri), bir mobil cihazdan erişildiğinde farklı bir tasarıma geçmektedir. Uyarlanabilir (adaptive) web uygulamaları ise, mobil cihazların farklı ekran boyutlarına uyacak şekilde ölçeklenmektedir. Bu uygulamalar için tasarım değişmemektedir.

İleri (Progressive) Web Uygulamaları (PWAs)

İleri web uygulamaları, normal web uygulamalarına benzer web teknolojilerini kullanmasına rağmen, çok daha üstündür ve mobil web’in geleceği olarak kabul edilmektedir. Gelişmiş bir kullanıcı deneyimi sunmalarına yardımcı olan standart web uygulamalarından daha fazla


işlevselliğe sahiptir. Kullanıcılar, yerel bir uygulama gibi, cihazlarına bu mobil uygulamaları yükleyebilir ve başlatabilir. HTML5, CSS ve JavaScript üzerinde çalıştıkları gibi, ReactJS, Vue.js ve benzeri çerçeveleri de kullanabilirler.

Hibrit (Hybrid) Uygulamalar

Hibrit uygulamalar, web uygulamaları ile yerel uygulamaların bir karışımı olarak bu iki tür uygulamanın en iyi yönlerini sunmaktadırlar. Yerel uygulamalar gibi görünen ve hissettiren web uygulamalarıdır. Yerel uygulamalardan farklı olarak hibrit uygulamaların birçok cihaz ve platformda çalışabilmesi en büyük üstünlüklerinden biridir. Bu durum uygulamaların geliştirilmesinde zaman kazandırmaktadır.

Diğer Mobil Uygulama Türleri

Çapraz platform veya platformlar arası ya da farklı bir ifadeyle çok platformlu mobil uygulamalar son zamanlarda popüler hale gelen bir diğer mobil uygulama türü olarak karşımıza çıkmaktadır. Hibrit uygulamalara benzemekle birlikte bazı farklılıklara sahiptir.

Mobil Uygulama Geliştirmek İçin Kullanılan Programlama Dilleri

Java

İlk olarak 1995 yılında geliştirilen Java, James Gosling tarafından Sun Microsystems adına tasarlanmıştır. Mobil uygulama geliştirme bağlamında en çok kullanılan dillerden biri Java’dır. Android Yazılım Geliştirme Kiti (Software Development Kit) ile mobil uygulama geliştirmek isteyen geliştiriciler tercih edebilir.

Javascript

Üst düzey yorumlanmış bir programlama dili olan JavaScript, nesne yönelimli ve işlevsel programlamayı destekleyen çok paradigmalı bir dildir. 1995 yılında ilk olarak kullanılmaya başlanmıştır. JavaScript, CSS, HTML ve AJAX ile birlikte kullanıldığı taktirde web tabanlı bir mobil uygulama geliştirmek mümkün olabilmektedir.

HTML5

Web tabanlı mobil uygulamalar geliştirmek için kullanılan HTML dilinin 5. sürümüdür. Tam anlamıyla bir mobil uygulama geliştirme dili olmaktan ziyade, CSS ve Javascript gibi diğer dillerle birlikte kullanıldığında mobil uyumlu web tabanlı siteler ve uygulamalar programlanabilmektedir.

Swift

Swift, özellikle iOS uygulama geliştirmeyle ilgilenen geliştiriciler için kullanılabilecek Apple ekosistemine yeni giren açık kaynak kodlu, ücretsiz, nesne tabanlı bir programlama dildir. Hem Python hem de Objective-C’ye oranla daha hızlıdır.

C#

C# (C Sharp), özellikle Microsoft firması için uygulama ürünleri oluşturmak için kullanılan C programlama

ailesinin bir ürünüdür. Nesne yönelimli, güvenli ve çok paradigmalı bir dildir. Xamarin platformunda yerel mobil uygulama geliştirmek için kullanılabilir. Bu platformda ayrıca çapraz platformlu mobil uygulamalar geliştirmek için de uygundur.

C++

iOS uygulama geliştirilebilmekle birlikte, daha çok Android ve Windows işletim sistemleri için mobil uygulama geliştirme imkânı sunmaktadır. Mobil uygulamaları geliştirmenin çok ötesinde bir potansiyele sahip olduğu için güçlü masaüstü uygulamalarını ve video oyunları geliştirmek için de kullanılabilir.

Objective C

C programlama dilinin bir türevi olan Objective – C, nesne yönelimli genel amaçlı bir programlama dili olarak, Apple firmasının iOS ve MacOS işletim sistemleri için uygulama geliştirmek için oldukça uygundur. Objective-C iOS için hala önemli bir dil olarak değerlendirilmektedir.

Python

Öğrenmesi kolay, etkileşimli bir dil olarak, Youtube, Instagram, Spotify, Dropbox, Calibre, Reddit, BitTorrent, Quora gibi popüler uygulamalar dahil pek çok uygulama Python dilinde yazılmıştır. Python, yapay zekâ, finansal hizmetler ve veri bilimi gibi gözde teknolojik alanlar dahil olmak üzere çeşitli şekillerde kullanım alanına sahiptir.

Kotlin

Kotlin statik, çapraz platformlu ve birinci sınıf bir programlama dilidir. JetBrains tarafından ilk olarak 2011 yılında ortaya çıkarılmıştır.

Scala

Scala, genel amaçlı (güçlü statik tipte) bir programlama dili olup, hem işlevsel programlama hem de nesne yönelimli programlama dili olmayı yüksek seviyeli tek bir dilde birleştirmektedir. Çok paradigmalı Scala’nın statik türleri, karmaşık uygulamalardaki hataları önlemeye yardımcı olmaktadır.

Dart

Dart, herhangi bir platformda hızlı uygulamalar geliştirmek için istemci tarafından optimize edilmiş bir dildir. Dart ücretsiz ve açık kaynak kodlu bir dil olarak Google tarafından desteklenmektedir. Etkileşimli kullanıcı arayüzü oluşturma ihtiyaçlarını giderebilecek en uygun dillerden biridir.

Ruby

Ruby, çok paradigmalı, işlevsel, nesne yönelimli, dinamik bir dil olarak verimlilik ve sadelik üzerine odaklanmıştır. Açık kaynak kodlu, yazımı kolay ve anlaşılır bir sözdizimine sahiptir. Ruby, otomatik bellek yönetimine sahip dinamik tip bir sisteme sahiptir.

Rust

Belleği verimli kullanan hızlı derlenen bir dildir. Kodlama yapısı C dili ailesine benzemektedir. Rust, kodların


derlenmesi sırasında hataların tespit edilmesi ve geliştiricilerin uygun kodu yazmasına olanak tanıması noktasında avantaj sağlamaktadır.

Lua

Lua, özellikle gömülü uygulamalar için geliştirilmiş hafif bir çoklu paradigma dilidir. Dilin göze çarpan özellikleri arasında hız, taşınabilirlik, genişletilebilirlik ve güvenilirlik yer almaktadır.

PHP

PHP (Hypertext Preprocessor) 1995 yılında özellikle dinamik web siteleri için geliştirilmiş, açık kaynak kodlu sunucu taraflı bir betik dilidir. Hızlı, esnek ve pragmatik olarak tanımlanan PHP, basit bir blog sayfasından dünyanın en popüler web sitelerine kadar kullanım alanı bulabilmektedir.

Mobil Uygulama Geliştirmek İçin Kullanılan Platformlar

Solar 2D (Corona SDK)

Solar2D (eski adıyla Corona SDK), yineleme ve kullanım kolaylığına odaklanan Lua tabanlı bir oyun motoru ve yazılım geliştirme kitidir. 2D oyunlar ve mobil uygulamalar için en kolay geliştirme aracıdır.

Flutter

Flutter 2017 yılında Google tarafından piyasaya sürülen açık kaynak kodlu bir çerçeve (framework) olarak mobil başta olmak üzere, web, masaüstü ve gömülü uygulamalar geliştirmek için kullanılabilen bir platformdur.

Apache Cordova (Phone Gap)

Apache Cordova (eski adıyla PhoneGap), açık kaynaklı, ücretsiz bir mobil geliştirme çerçevesi olarak 2009 yılında piyasaya sunulmuştur. Platformlar arası geliştirme için standart web teknolojileri olan HTML5, CSS3 ve JavaScript’i kullanmaya olanak tanır.

Codename One

Codename One açık kaynak kodlu ve ticari/ticari olmayan kullanım için telif ücreti veya kısıtlama olmaksızın kullanılabilen bir çapraz platform çerçevesidir.

React Native React

Native Facebook (Meta) tarafından desteklenen ve Android ve iOS için yerel uygulamalar geliştirilebilen açık kaynaklı bir uygulama çerçevesidir. Javascript kütüphaneleri etkin şekilde entegre edilebilmektedir.

Qt

Qt, bir uygulama çerçevesi ve bir kod tabanıyla herhangi bir platformda çalışabilen uygulamalar geliştirmek için kullanılan widget aracıdır. Yüksek performanslı gömülü sistemler, masaüstü ve mobil uygulamalar geliştirmek mümkündür.

Appery.io

Appery.io düşük kodlu ve çok amaçlı bir platform sunan bulut tabanlı bir uygulama geliştiricisidir. Bulut veritabanı, sunucu tarafı komut dosyası oluşturma, kimlik doğrulama, anında iletme bildirimleri gibi entegre arka uç (back-end) hizmetlerini kullanmak mümkündür.

Sencha Ext JS (Sencha Touch)

Sencha Ext JS, herhangi bir modern cihaz için veri yoğun, platformlar arası web ve mobil uygulamalar oluşturmaya yönelik en kapsamlı JavaScript çerçevelerinden biridir.

Xamarin

Xamarin açık kaynaklı ücretsiz çapraz platform desteği sunan bir uygulama platformudur. .NET ve C# programlama dilleriyle Android ve iOS uygulamaları oluşturmak mümkündür.

Mobil Uygulama Mağazaları

Mobil uygulama mağazaları (app store veya app marketplace) mobil uygulamaların sunulduğu bir dijital dağıtım platformudur.

Google Play Store

Google Play Store (eski adıyla Android Market) olarak da adlandırılan, 2012 yılında faaliyetlerine başlayan Google tarafından yürütülen bir mobil uygulama mağazasıdır.

App Store

App Store, Apple Inc. tarafından iOS ve iPadOS işletim sistemlerindeki mobil uygulamalar için geliştirilen bir uygulama mağazası ve dijital dağıtım platformudur.

Huawei AppGallery

Huawei AppGallery (kısaltılmış haliyle AppGallery), Huawei’nin HarmonyOS adlı mobil işletim sistemi ve Android için, Huawei Technologies şirketi tarafından geliştirilen bir uygulama mağazasıdır.

Amazon Appstore

Amazon AppStore, e-Ticaret devi Amazon.com tarafından işletilen Android işletim sistemi için tasarlanmış bir uygulama mağazasıdır.

Microsoft Store

Microsoft Store (eski adıyla Windows Store), Microsoft’a ait bir dijital dağıtım platformu ve uygulama mağazası olarak 2012 yılında piyasaya sunulmuştur. Microsoft’un Windows işletim sistemi için uygulamalar yer almaktadır.

Ünite 1 sorularını uygulamada çözBu ünitenin çıkmış ve deneme soruları, şıkları ve cevap açıklamaları uygulamada.Uygulamada aç