3. MOBĠL PLATFORMLAR ve UYGULAMALAR
GĠRĠġ
Kullandığımız her türlü elektronik donanımın üzerinde mutlaka donanımı kontrol
eden bir yazılım çalışmaktadır. Donanımlar gelişip karmaşıklaştıkça, onları kontrol
eden yazılımlar da mecburen gelişip karmaşıklaştı. Yani bir diğer deyişle, zaman
içerisinde donanımlarımızdaki basit yazılım parçaları, kompleks işletim sistemlerine
dönüştürüldüler. Akıllı telefonlar (Smart Phones), tablet bilgisayarlar, PDA (Personal
Digital Assistant) 'lar gibi taşınabilir cihazlar için üretilen işletim sistemleri mobil
işletim sistemleri olarak adlandırılırlar. İşletim sistemi yazmak oldukça zahmetli
oluğundan günümüze dek sadece birkaç işletim sistemi geliştirilmiştir. Bunlardan
bazıları kullanıcı ihtiyaçlarını karşılayamadığından dolayı unutulmuştur. Günümüzde
mevcut ve yakın gelecekte de var olmaları muhtemel olan mobil işletim sistemleri
şunlardır:
Google: Android
Apple: Iphone OS (iOS)
RIM: BlackBerry OS
Symbian Vakfı: Symbian
Palm: Web OS
Microsoft: Windows Mobile
Linux Vakfı: MeeGo
Samsung: Bada
3
4. 1. MOBĠL PLATFORMLARDA YAZILIM ALT YAPISI
İşletim sistemleri (OSS) başlangıçta tüm giriş çıkışları; belleğe, disk sürücüsüne,
ekrana, yazıcıya işlemek için tasarlanmıştır. Bunların yazılım uygulaması
geliştirenler ile alt düzey kullanıcılar arasında ayrılması gerekmektedir. İşletim
sistemlerinin bir parçası olarak desteklenmeye başlamasıyla sanal standartlar haline
gelen fonksiyonların makineler tarafından desteklenmesi gerekmektedir. Yakın
zamana dek Windows 3.1’in ne bir tarayıcısı ne de bir TCP/IP bağlantısı vardı.
Kişinin internete girebilmesi için bunlardan birisinin ayrıca sisteme monte edilmesi
gerekiyordu. O zamana kadar herhangi bir yerel medya oynatıcısının işletim
sisteminin bir parçası olması duyulmamış bir özellikti. İnternet kullanımı evrensel
hale geldikçe bu özelliklerin işletim sisteminin içine entegre etmek gerekli bir hale
gelmiştir. Sonradan Internet Explorer, Microsoft işletim sisteminin bir parçası haline
gelmiştir. Zamanla kızılötesi, bluetooth ve medya oynatıcı gibi özellikler
oluşturularak sisteme dahil edilmiştir. Microsoft Windows işletim sisteminin bugün
itibari ile 50 milyondan fazla kaynak kodu olduğu bilinmektedir.
Cep telefonları her zaman benzersiz bir çalışma ortamı sunmuştur. Mobil cihazlar
kaynaklar açısından (işlemci yetenekleri-bağları, hafıza, pil gücü) kısıtlıdır. Cep
telefonlarının kablosuz olarak iletişim için ayrıca bluetooth, kızılötesi, Wi-Fi,
WiMAX, USB; ses ve video için multimedya özellikleri; kamera, klavye, ekran,
dokunmatik ekran, harici cihazları, harici belleğe, USB yazıcılar ve tarayıcılar yanı
sıra, POP3 posta, Microsoft Office, Adobe PDF belgesi okuyucu, görüntü işleme, ve
daha fazlasını yapması gerekmektedir. Mobil işletim sistemi çevresel etkiler
nedeniyle her zaman istenilen kalitede bağlantı sunamamaktadır. Dolayısıyla istemci-
sunucu uygulamaları üzerinde bu özelliğin büyük bir önemi vardır. Eski sürüm cep
telefonlarında genellikle öne çıkan bir işletim sistemi olmadığından sesli ve SMS’li
uygulamalar kısıtlıdır. Yazılım kodları her bir donanım ve telefon için özel olmaya
başlaması ile birlikte tüm uygulamalar doğrudan kodlanmaya başlanmıştır. Ancak
daha gelişmiş telefonlar ve uygulamaların gelmeye başlamasıyla artık bu yöntem
pratik olmamaya başlamıştır. Cep telefonlarının bir işletim sistemine ihtiyacı vardır
bu sayede yeniden kod yazmaya gerek kalmadan çeşitli uygulamalar ve süreçler
başka bir platforma kolaylıkla taşınabilecektir.
4
5. Cep telefonu işletim sistemi en az işlevsellik ve performans açısından, masa üstü
işletim sistemlerinin bir alt kümesi olamayacaktır. Mobil cihazlar bir yandan
uygulamalar ile arayüz için diğer yandan da donanım ve yazılım için yeni bir işletim
sistemine ihtiyacı vardır.
Multimedya telefonlar ile ilgili özel olan nedir? Multimedya telefonları yeni bir
seviyedeki işletim sistemi özelliklerini güncellenerek almaktadır. Kullanıcı
uygulamaları eş zamanlı olarak ses, veri ve görüntü gibi yüksek düzeyde çoklu görev
fonksiyonlarını kullanım gereksinimi duymaktadır. Örneğin, bir telefon aynı anda bir
TV klibe veya ses dosyasına kaydedilmesi ve bellekten dosya alınırken 3G ağı ve
yerel kamera kullanımını içeren bir video arama için kullanılabilmektedir.
Multimedya telefonları desteklemek için gerekli fonksiyonel modülleri standart bir
cep telefonu işletim sistemi çekirdeğinin karşılayabileceğinden çok daha yüksek
gereksinimlere ihtiyaç duymaktadır[1].
2. MOBĠL PLATFORMLARDA YAZILIM ORGANĠZASYONU
Mobil platformlardaki yazılım yapısını dört ana bölüme ayırabiliriz:
İşletim sistemi
Ara yazılım
Uygulamalar
Erişim kontrolü (arayüz)
5
6. Şekil 2.1. Mobil platformlarda yazılım mimarisi[1]
Yazılım mimarisinin en alt katmanında içinde kontrol ve uygulama işlemcilerini ve
bunların sürücülerini barındıran silikon kısım bulunur. Bundan sonraki katman
işletim sistemi çekirdeğidir. Bu kısımda silikonda bulunan, örneği bellek gibi
donanım parçalarına ulaşmak için kullanılan arayüz bulunur. İşletim sistemi katmanı
“Bluetooth Yığını”, “Kızılötesi Yığını” gibi bir çok yığının birleşiminden oluşur.
İşletim sistemi çekirdeğinden sonra ara yazılım katmanı gelmektedir. Ara yazılım
donanım ile kullanıcının kullandığı yazılım arasında görev yapmak üzere
geliştirilmiş olan yazılım olarak düşünülebilir. Bu durumda ara yazılım katmanı
işletim sisteminin uygulamalar tarafından kullanılmasını sağlayan programlardan
oluşmaktadır. Ara yazılımlara, multimedya kullanımı için özelleşmiş yazılımlar,
GPRS, 3G gibi mobil iletişim yazılımları veya animasyonlar ve oyunlar için
kullanılan çeşitli yazılımlar örnek olarak gösterilebilir. Bu katman ayrıca operatörden
operatöre farklılık gösteren push-to-talk, video görüşme gibi çeşitli özelliklerin
kullanılabilmesi için gerekli yazılımları da içerir.
6
7. Uygulamalar katmanında MMS, tarayıcılar, oyunlar, mobil televizyon gibi çok geniş
yelpazede bir çok program bulunabilmektedir. Bu programlar sayesinde işletim
sisteminin fonksiyonları kullanılabilir hale gelir [1].
3. YAYGIN ĠġLETĠM SĠSTEMLERĠ
3.1. Symbian
Symbian Ltd. önceleri Ericsson, Motorola, Nokia, Panasonic, Psion, Samsung,
Siemens ve Sony Ericsson şirketlerinin bazıları arasında kurulmuş ve bazıları
arasında hisseleri el değiştirmiş bir şirketti. Symbian işletim sistemi ise lisans
sahipleri tarafından kullanılmakta idi. Nokia sonrasında diğer hissedarların elindeki
hisseleri de satın alarak Symbian'ın tüm varlığını kendi kurduğu Symbian Vakfı'na
bağışlamıştır. Şu an Symbian’ın geliştirme işlerini Symbian Vakfı yapmaktadır.
Symbian önceleri Linux gibi çekirdek bir işletim sistemiydi ve üzerine cihaz
üreticileri tarafından Linux'taki GNOME veya KDE gibi arayüzler yüklenmesi
gerekiyordu.
Nokia'nın Symbian cihazlarında kullandığı arayüze Series 60 veya S60;
Sony Ericsson'un Symbian cihazlarında kullandığı arayüze UIQ;
Fujitsu, Sony Ericsson Japonya, Mitsubishi ve Sharp'ın NTT DoCoMo şebekesinde
çalışacak Symbian cihazlarda kullandığı arayüze MOAP(S) ismi verilmiştir.
Eski Symbian/S60 Özel (kapalı kaynaklı) bir işletim sistemidir fakat bir çok
üreticinin ürününde bulunabilir, dolayısıyla değişik platformlara uyumluluk
zorunluluğu olduğu için optimizasyon ihtiyacı rakiplerine kıyasla düşüktür. İşletim
sistemi güncellemeleri için bir bilgisayara bağlı olmaya ihtiyaç duymamaktadır.
Öncelikle tuş takımı ile yönetilen cep telefonu kökenli cihazlarda çalışmak üzere
geliştirildiğinden, rakiplerine kıyasla daha zor ve karışık bir arayüze sahiptir ve
kullanımı da rakiplerine kıyasla zordur. Ana kullanıcı arabirimi, üzerinde çeşitli
uygulamalara dair kısayolların ve pratik bilgilerin bulunduğu bir bekleme ekranıdır,
ayrıca uygulamaların kısayollarının bulunduğu bir menü sistemi mevcuttur. Adobe
7
8. Flash Lite destekleyen WebKit tabanlı S60 Browser tarayıcısı ile orta karar bir
internet deneyimi sunar. Ayrıca JavaME’yi de desteklemektedir.
Symbian, standart ve yaygın bir şekilde benimsenmiş bir uygulama geliştirme ortamı
sunar, fakat oldukça detaylı ve derin olduğundan öğrenmesi zordur, bu da toplam
uygulama geliştirici sayısına olumsuz etki etmektedir. Fakat en eski smartphone
platformu olması ve bir çok programlama diline izin vermesi nedeniyle (Standard
C/C++, Visual Basic, .NET, POSIX, Python, Java ME, Flash Lite, Ruby, Web
Runtime (WRT)) mevcut uygulama çeşitliliği ile sayısı açısından zengin bir
platformdur. Ayrıca kendisine ait bir uygulama dağıtım kanalına (Ovi Store)
sahiptir.
Symbian, platforma doğal bir dilde uygulama geliştirilmesine izin verir ve bu
nedenle uygulama başarım performansı rakiplerine kıyasla yüksektir, sahip olduğu
mikrokernel yapısı sayesinde kaliteli ve hızlı uygulamalar için yüksek işlemci
gücüne ihtiyaç duymamaktadır. Sistem, aynı anda birden çok uygulamanın
çalıştırılmasını desteklemektedir.
Symbian/S60, Windows gibi yeni özellikler eklendikçe şişmiş ve hantallaşmıştır. Bu
nedenle şu an Symbian Vakfı şu an işletim sistemine arındırma ve basitleştirme
işlemleri uygulamaktadır [2].
8
9. Şekil 3.1.1. Symbian OS mimarisi[2]
3.2. Windows Mobile
Windows CE tabanlı bir işletim sistemidir. Windows tabanlı olmasına
ve ileri düzeydeki altyapısına rağmen masaüstünde kullanılan Windows
uygulamalarını çalıştıramaz.
Özel (kapalı kaynaklı) bir işletim sistemidir fakat bir çok üreticinin
ürününde bulunabilir, dolayısıyla değişik platformlara uyumluluk zorunluluğu
olduğu için optimizasyon miktarı rakiplerine kıyasla düşüktür. İşletim sistemi
güncellemeleri için bir bilgisayara bağlı olmaya ihtiyaç duymaktadır.
Öncelikle stylus ile yönetilen PDA kökenli cihazlarda çalışmak üzere
geliştirildiğinden, rakiplerine kıyasla daha zor ve karışık bir arayüze sahiptir ve
kullanımı da rakiplerine kıyasla zordur. Ana kullanıcı arabirimi, üzerinde çeşitli
uygulamalara dair kısayolların ve pratik bilgilerin bulunduğu bir bekleme ekranıdır,
ayrıca uygulamaların kısayollarının bulunduğu bir menü sistemi mevcuttur. (Adobe
Flash Lite destekleyen) Internet Explorer Mobile tarayıcısı ile fakir bir internet
deneyimi sunmakta ve JavaME desteklemektedir.
Standart ve yaygın bir şekilde benimsenmiş bir uygulama geliştirme ortamı
9
10. sunmaktadır, bu nedenle mevcut uygulama çeşitliliği ile sayısı açısından zengin bir
platformdur. Ayrıca kendisine ait bir uygulama dağıtım kanalına (Windows
Marketplace for Mobile) sahiptir.
Platforma doğal bir dilde uygulama geliştirilmesine izin verilmektedir ve bu nedenle
uygulama başarım performansı rakiplerine kıyasla yüksektir, fakat bir takım
donanım/yazılım platform farklılıkları nedeniyle kaliteli ve hızlı uygulamalar için
yüksek işlemci gücüne ihtiyaç duymaktadır. Aynı anda birden çok uygulamanın
çalıştırılmasını desteklemektedir [2].
Şekil 3.2.1. Windows mobile mimarisi[2]
3.3. RIM: Blackberry OS
Research In Motion (RIM) tarafından sadece BlackBerry'ler için geliştirilmiş özel bir
işletim sistemidir. Özel (kapalı kaynaklı) bir işletim sistemidir ve bu nedenle
yalnızca RIM'a ait ürünlerde bulunmaktadır. Değişik platformlara uyumluluk
zorunluluğu olmadığı halde optimizasyon miktarı düşüktür. İşletim sistemi
güncellemeleri için bir bilgisayara bağlı olmaya ihtiyaç duymamaktadır.
10
11. Temelde dokunmatik olmayan cihazlar için tasarlanmıştır, dokunmatik
ekranları sonradan desteklemeye başlamıştır. Basit bir arayüze sahip olsa da
rakiplerine kıyasla zor bir kullanım sağlamaktadır. Ana kullanıcı arabirimi, üzerinde
çeşitli uygulamalara dair kısayolların ve pratik bilgilerin bulunduğu bir bekleme
ekranıdır (Widget desteği de içermektedir), ayrıca uygulamaların kısayollarının
bulunduğu bir menü sistemi mevcuttur.
Çoklu dokunuş desteği mevcuttur ancak yakınlaşmak/uzaklaşmak için değil, yazı
seçmek için kullanılmaktadır. Mükemmel bir e-mail deneyimi ve JavaME desteği
sunmaktadır. Medya oynatıcısı kutudan çıktığı hali ile MPEG4, 3GP, XviD videoları
oynatabilmektedir.
Tarayıcısı Java desteklemektedir ve Flash desteği sınırlı olarak bulunmaktadır.
Tarayıcısı sıkı güvenlik standartlarına sahiptir; iş yerleri tarafından bu ayarlar kontrol
edilebilmekte ya da değiştirilebilmekte, kişisel kullanıcılar ise kendi planlarını
kendileri oluşturabilmektedir. Çok başarılı bir sıkıştırma teknolojisi sayesinde bir kaç
megabaytlık siteleri birkaç yüz kilobyte’a düşürebilmektedir.
Java tabanlı, JavaME ve özel API'ler içeren uygulama geliştirme ortamı (BlackBerry
SDK) sunmakla birlikte, uygulama çeşitliliği ile sayısı açısından şu an fakir olan bir
platformdur. Ayrıca kendisine ait bir uygulama dağıtım kanalına (BlackBerry App
World) sahiptir.
Platforma doğal bir dilde uygulama geliştirilmesine izin verilmektedir ve bu nedenle
uygulama başarım performansı rakiplerine kıyasla yüksektir, kaliteli ve hızlı
uygulamalar için yüksek işlemci gücüne ihtiyaç duymamaktadır. Aynı anda birden
çok uygulamanın çalıştırılmasını desteklemektedir [2].
11
12. 3.4. Linux
Linux tabanlı işletim sistemleri açık kaynak kodlu olmalara nedeniyle mobil cihazlar
arasında farklı bir yere sahiptir. Kullanım oranı %10’un altında olsa da Çin gibi yeni
pazarlarda açık kaynak kodlu olması sebebiyle Linux tabanlı mobil cihazlar satışa
sunulmaktadır.
Linux genel kamu lisansı (General Public License) kullanmaktadır. Genel kamu
lisansı, programın yeni bir versiyonu çıktığı zaman kaynak kodlarının açıkça
ulaşılabilir olması gerektiği anlamına gelmektedir. Açık kaynak kodlu olması ve bu
durumun gelecekte de devam edecek olması sebebiyle Linux çekirdeği telefon
üreticileri tarafından adapte edilmiştir. Örneğin Çin, 3G ağlarında işletim sistemi
olarak kullanmak üzere Linux’u adapte etmiştir. Ayrıca, NTT DoCoMo, Vodafone,
NEC, Panasonic, Motorola ve Samsung gibi büyük üreticiler ve operatörler açık
Linux adaptasyonları için küresel bir platformu desteklediklerini açıklamışlardır.
Linux çekirdeği fonksiyonellik yönünden kısıtlı bir çekirdektir. Multimedya desteği,
iletişim fonksiyonları, bağlantı servisleri ve platform yönetim servisleri gibi birçok
mobil telefon fonksiyonunun ara yazılım (middleware) tarafından desteklenmesi
gerekmektedir.
12
13. Şekil 3.4.1. Linux mimarisi[2]
Telefon fonksiyonlarının büyük bir kısmı yazılım modülleri tarafından
desteklenmektedir. Bu sorunları giderebilmek için CE Linux Forumu küresel
referans mimarisi ve yazılım ile ara yazılımların bazı kısımları için uygulama
program arayüzleri (application program interface/API) üzerinde çalışmaktadır.
Üzerinde çalışılan bu mimarinin telefon, görüntülü telefon ve multimedya
modüllerini içermesi beklenmektedir.
Birçok satıcı fonksiyonellik açısından daha gelişmiş fakat aynı zamanda açık
kaynaklı olma özelliğini de sürdüren bir Linux fikrini desteklemektedir. Örneğin
Japonya’nın en büyük operatörü olan NTT DoCoMo, Symbian Vakfı’nın kurucu
üyelerinden biri olmasına rağmen kendi ürettiği telefonlarda Symbian yerine Monta
Vista Linux kullanmaya başlamıştır. Aynı şekilde NEC de telefonlarını Monta Vista
Linux üzerine geliştirmektedir. Monta Vista Linux gelişmiş multimedya
uygulamaları için kolay entegrasyon ve kablosuz telefon tasarımları için standart bir
geliştirme platformu sunmaktadır [2].
13
14. 3.4.1. Linux mobile vakfı
Linux Mobile Vakfı 2006 yılında bir mobil yazılım için gerekli bütün çevreyi
sağlayabilmek amacıyla kurulmuştur. Linux Mobile Vakfı, Linux tabanlı telefonların
ve diğer mobil cihazların gelişimini desteklemek için tamamen açık kaynaklı bir
mobil telefon mimarisi oluşturma amacındadır.
Linux Mobile Vakfı, ara yazılımlar ve kullanıcı arayüzlerinin çalışmasını sağlayacak
yazılımlar üzerine yoğunlaşmaktadır. Bunun yanında başka Linux çalışma grupları
da vardır ve büyük üreticiler kendi uygulama program arayüzlerini (API)
kullandıkları Linux tabanlı mobil telefonları piyasaya sürmüşlerdir.
mLinux, Linux’ün Çin’deki 3G ağları üzerinde kullanılmak üzere geliştirilmiş bir
versiyonudur. Bu versiyonda Linux çekirdeği bir işlemci üzerine yerleştirilmiştir ve
kodlarına işlemcinin bağlı bulunduğu bellek üzerinden ulaşılabilir. Linux’ün bu
versiyonu ARM9, Intel XScale, MIPS, Motorola Dragonball, Texas Instruments gibi
birçok işlemciyi desteklemektedir. mLinux, geliştirilmiş açılış yükleyicisi
(bootloader) sayesinde 2 saniyeden kısa açılış zamanına sahiptir ve multiprocessing
ve hafıza yönetimi gibi özellikleri de bulunmaktadır [2].
3.5. Android
Android, aralarında Google, Motorola, Qualcomm, HTC, LG, Sony,Samsung gibi
büyük firmaların da bulunduğu 30’dan fazla firmanın katılımıyla kurulmuş olan,
Open Handset Alliance tarafından geliştirilmiş bir mobil yazılım platformudur.
Android, işletim sisteminden, ara yazılımdan, internet uygulamalarından ve geliştirici
seçeneklerinden oluşan eksiksiz bir mobil cihaz platformudur.
Android, mobil uygulama marketinin yanı sıra bir yazılım geliştirme kiti de
içermektedir. Bazı işletim sistemlerinin aksine Android, telefonun bütün
yeteneklerini uygulama geliştiricilerin hizmetine sunmakta, bu sayede telefonun
kaynaklarıyla üstün bir entegrasyon sağlanmaktadır.
14
15. Şekil 3.5.1. Android mimarisi[3]
Android işletim sistemi; çekirdek, kütüphaneler, Android Runtime, uygulama çatısı
ve uygulamalar olmak üzere beş katmandan oluşur. Şekilde yeşille gösterilen öğeler
C/C++ ile yazılmış iken mavi ile gösterilen öğeler Java ile yazılmıştır ve Dalvik
sanal makinesi üzerinde çalışmaktadır. Çekirdek katmanında güç ve hafıza yönetimi
konularındaki özel ihtiyaçlar için modifiye edilmiş bir Linux çekirdeği
kullanılmaktadır. Çekirdek üzerinde bluetooth, WiFi gibi donanımların sürücüleri
bulunmaktadır. Kütüphaneler katmanında düşük hafıza kullanımı amacıyla
geliştirilmiş temel kütüphaneler bulunmaktadır. Android Runtime katmanı Dalvik
sanal makinesinden ve Java kütüphanesinden oluşmaktadır. Dalvik sanal makinesi
daha hızlı çalışmak ve daha az hafıza kullanmak amacıyla Java kodlarını Dalvik
kodlarına dönüştürerek çalıştıran bir makinedir. Uygulama çatısı katmanındaki
çatılar, bir alt katmandaki kütüphanelerin ve Dalvik makinesinin sunduğu imkanlar
dahilinde çalışmaktadır. Android uygulamalarının her biri kendi Dalvik makinesi ile
15
16. çalışmaktadır. Bu uygulamalar birçok bileşenden oluşabilir. Bu bileşenler başka
uygulamaların bileşenleri ile etkileşimli olarak çalışabilir [3].
3.6. iOS
iOS, Apple tarafından geliştirilen ve kullanılan bir mobil işletim sistemidir. Bu
sistem öncelikle iPhone ve iPod Touch için geliştirilmiş ve daha sonra piyasaya
sürülen iPad’lerde de kullanılmıştır. Windows Mobile’ın ve Android’in aksine Apple
kendi ürünü olmayan donanımlar üzerine iOS kurulmasına izin vermemektedir. OS
X’in mobil cihazlar için hazırlanmış versiyonu olan iOS bu nedenle Unix platformu
üzerinde çalışmaktadır.
iOS işletim sistemi temel olarak dört katmandan oluşmaktadır. iOS sisteminin en
altında Core OS katmanı bulunmaktadır. Bu katmanın üzerinde sırasıyla Core
Services, Medya ve Cocoa Touch katmanları bulunmaktadır.
Şekil 3.6.1. iOS mimarisi[4]
Core OS katmanında diğer teknolojilerin üzerinde kurulu bulunduğu düşük seviyeli
özellikler bulunmaktadır. Bu düşük seviyeli özelliklere örnek olarak güvenlik,
bluetooth, harici aksesuarlar gibi temel özellikler gösterilebilir. Core Services
katmanı bütün uygulamaların kullandığı ana sistem özelliklerini barındırır. Kullanıcı
16
17. bu servisleri direkt olarak kullanmasa da sistemin parçalarından bir çoğu bu
katmandaki özelliklerin üzerine kurulmuştur. Bu özelliklere örnek olarak uygulama
içinden satın alma, veri koruması, dosya paylaşım desteği gibi temel hizmetler
gösterilebilir. Bu özellikler kendi başına bir anlam ifade etmese de veya son kullanıcı
tarafından kullanılan özellikler olmasa da diğer bir çok uygulama içerisinde görev
almaktadır. Medya katmanı, bir mobil cihazdan elde edilebilecek en iyi multimedya
deneyimini üretmeyi amaçlayan grafik, ses ve video teknolojilerini barındırmaktadır.
Bu katmandaki teknolojiler uygulamaların son kullanıcı ile karşılaşacak olan
kısımlarını direkt olarak ilgilendirmektedir. Ses, görüntü ve video ile ilgili bütün
özellikler bu katmandaki yığınlar kullanılarak işler hale getirilir. Cocoa Touch
katmanı iOS uygulamaları için anahtar sistemleri barındırmaktadır. Bu katman temel
uygulama altyapısını tanımlamakta ve çoklu görev (multitasking), dokunmatik
ekrandan veri girişi, kullanıcıya bildirim gönderme gibi, uygulamaların kullanıcıyı
ilgilendiren kısımlarında sıklıkla kullanılan yüksek düzeyli sistemlere ev sahipliği
yapmaktadır [4].
4. MOBĠL UYGULAMA ÖRNEĞĠ
Bu bölümde anlatılacak olan uygulama yabancı dil öğreniminde önemli bir etken
olan kelime ezberlemeye veya öğrenmeye yönelik yardımcı bir uygulamadır. Bu
uygulama, mobil telefonlar üzerinde çalışan işletim sistemlerinin pazar payları göz
önüne alınarak, Android işletim sisteminde çalışabilecek özellikte olarak Java
programlama dili ile geliştirilmiştir. Uygulama, kullanıcının isteğine göre belirlenen
periyotlarda yabancı dilde kelimeyi verip Türkçe karşılığını veya tam tersini
istemektedir. Sorular çoktan seçmeli veya istenen kelimelerin kullanıcı tarafından
girilmesi şeklinde olabilmektedir. Kullanıcı, uygulamanın veritabanına erişip
kelimeler üzerinde ekleme, silme, değiştirme gibi işlemleri yapabilmektedir. Mobil
yazılımın geliştirilmesi aşamasında, öncelikle gereksinimler ve bunların nasıl
karşılanacağı belirlenmiş, yazılım geliştirme ortamları temin edilmiş, tasarım
basamakları hazırlanmış, dokümantasyon elde edilmiş ve bu belgelere uygun
doğrultuda hareket edilmiştir. Mobil uygulamanın gömülü sistemler için
17
18. hazırlanacağı göz önüne alınarak uygun yazılım geliştirme ortamlarının taranma
işlemleri gerçekleştirilmiş ve bunun sonucunda Android SDK ve Eclipse ortamları
kullanılmıştır. Gerçekleştirilen mobil uygulamanın genel çalışma şeması aşağıda
gösterilmiştir.
Şekil 4.1. Mobil uygulamanın akış şeması[5]
Uygulama, dil öğrenmeyi amaçladığı için farklı dil destekleri ile tasarlanmıştır.
Örneğin programın menüleri kullanılan cep telefonunun diline göre değişmektedir,
yani telefon dili İngilizce ise programın menüleri de İngilizce olmaktadır. Ayrıca
kullanıcı isteğine göre kelime sorularını belirli aralıklarla ya da sürekli olarak ekrana
getirebilmektedir.
18
19. Uygulama ilk çalıştırıldığında kullanıcının karşısına “veritabanı boş” uyarısı
çıkmaktadır. Kullanıcı istediği veritabanını yazılıma ekleyebilmektedir. Veritabanına
kelimeler eklendikten sonra kullanıcının karşısına ana ekran çıkmaktadır. Bu ekranda
kullanıcının program ile ilgili ayarları yapabileceği, kelimeleri düzenleyebileceği ve
mobil öğrenme programını başlatabileceği düğmeler bulunmaktadır.
Şekil 4.2. Veritabanı uyarı ekranı ve ana menü ekranı[5]
Programın “Ayarlar” kısmında kullanıcıya sunulan çeşitli soru seçenekleri ve soru
sorma süreleri belirlenebilmektedir. Kullanıcı “Soru Modu” seçeneğinde iki farklı
soru türü belirleyebilmektedir. Birincisi çoktan seçmeli yani sorulan kelimenin
cevabını dört adet şık arasından seçmek, ikincisi ise klasik yani sorulan kelimenin
cevabını doğrudan belirtilen alana yazmaktır. “Soru Periyodu” seçeneğinde kullanıcı,
soruların hangi sıklıkla karşısına geleceğini belirleyebilmektedir. Bu kısımda eğer
“Periyot Yok” seçilir ise sorular ekrana sürekli gelecek ve 30 sn içerisinde
19
20. kullanıcının cevap vermesi istenecektir. Bu seçenek genelde kullanıcının sadece
kelime öğrenme programına odaklandığı anlar için düşünülmüştür. Programın
“Kelimeler” kısmında kullanıcı, veritabanında bulunan kelimeler üzerinde
düzenleme işlemi yapabilmektedir. Gerekirse istenilen kelimeleri veritabanına
ekleyebilmektedir. Kullanıcı kelime öğrenme programında öğrendiği kelimeleri de
veritabanından çıkartabilmektedir.
Şekil 4.3. Uygulamanın ayarlar ve kelimeler menüleri[5]
Programın genel ayarları yapıldıktan sonra kullanıcı programı başlatmak için “Start”
butonunu seçer ve veritabanında bulunan kelimeler seçilen ayarlara göre kullanıcının
karşısına çıkar. Kullanıcı eğer ayarlar menüsünde “Periyot Yok” seçeneğini
işaretlemişse, kelime soruları arka arkaya 30 saniye aralıklarla ekrana gelecek ve
kullanıcının bu süre içerisinde cevap vermesi istenecektir. Kullanıcı, “Question
Period” ayar menüsünde belirli bir süre (1,3,5.. dakika vb) seçerse, soruların
20
21. cevaplanması için herhangi bir süre olmayacak ve sorular bu belirlenen periyot ile
kullanıcının karşısına çıkması sağlanacaktır.
Şekil 4.4. Uygulamanın periyotsuz olarak çalıştırılması[5]
21
22. Şekil 4.5. Uygulamanın belirli periyotlarda çalıştırılması[5]
Kullanıcı dilerse ekrana gelen soruyu atlayabilecek veya programı durdurabilecektir.
Kullanıcı, karşısına gelen sorulara cevap vermek istemezse “Skip This Question”
butonunu seçerek sorunun doğru cevabını görebilir ve bir sonraki soruya geçebilir.
Bununla birlikte kelime öğrenme programı bitirilmek istenirse “End” butonuna
basılabilir.
Sorular kullanıcı tarafından cevapladığı anda eğer cevap doğru ise uyarı verilerek
yeni soruya geçilmekte, cevap yanlış ise doğru cevap kullanıcıya bildirilmektedir.
Kullanıcıya kaç soru cevapladığı, bu sorulardan kaç tanesini doğu kaç tanesini yanlış
cevapladığı bilgisi gösterilmektedir.
Sorular kullanıcı tarafından cevapladığı anda eğer cevap doğru ise uyarı verilerek
yeni soruya geçilmekte, cevap yanlış ise doğru cevap kullanıcıya bildirilmektedir.
Kullanıcıya kaç soru cevapladığı, bu sorulardan kaç tanesini doğu kaç tanesini yanlış
cevapladığı bilgisi gösterilmektedir.
22
23. Gerçekleştirilen mobil kelime öğrenme yazılımı kullanım kolaylığı ve zaman ve
mekândan bağımsız olarak uygulanabilirliği bakımından tercih edilebilecek bir
programdır. Dil öğrenmenin bir lüks olmaktan çıkıp bir ihtiyaç, hatta zaruret olduğu
çağımızda; yazılan program kişilere kelime öğrenmeyi kolay kılmayı
amaçlamaktadır [5].
23
24. KAYNAKLAR
[1]: Kumar, A., Mobile TV, Chapter 12 – Operating Systems and Software for
Mobile TV and Multimedia Phones, 2007.
[2]: Kumar, A., Implementing Mobile TV (Second Edition), Chapter 15 – Operating
Systems and Software for Mobile TV and Multimedia Phones, Pages 425 – 455,
2010.
[3]: Analysis of the Android Architecture, Studiendarbeit von Stefan Brahler,
Karlsruher Institut für Technologie, 2010.
[4]: iOS Technology Overview, Apple Computer Inc., 2012.
[5]: Çevik, K., K. ve Koçer, H., E., Mobil Cihaz Tabanlı Yabancı Dilde Kelime
Öğrenme Uygulaması, Selçuk Üniversitesi, Teknik Bilimler Yüksekokulu, Teknik
Online Dergi, Cilt:11, Sayı:2-2012
24