You are on page 1of 25

TYZM-612: Yazılım Mimarileri

8.Hafta: Mobil Uygulamalar


8.1 Yazılım Mimarisi Prototipleri

• Mobil Uygulamalar
• Görsel Masaüstü Uygulamaları
• Görsel İnternet Uygulamaları
• Servis Uygulamaları
• Web Uygulamaları
• Nesnelerin İnterneti Uygulamaları ve Blokzincir
• Büyük Veri Uygulamaları

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 2
8.2 Mobil Uygulamalar

•Genellikle mobil uygulamalar, çok katmanlı uygulamalar


olarak tasarlanır:
• Kullanıcı arayüzü
• İş katmanı
• Veritabanı katmanı
•Katmanlı yapı iki şekilde geliştirilebilir:
• Web-tabanlı İnce İstemci
• İş katmanı ve veritabanı katmanı sunucular üzerinde yer alır.
• Zengin İstemci
• İş katmanı ve veritabanı katmanı cihazın üzerinde yer alır.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 3
8.3 Mobil Uygulamalar
için Katmanlı Mimari

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 4
8.4 Tasarım Kararları

•Hangi uygulama tipi seçilecek?


• Zengin İstemci : İşlem yerelde yapılacaksa ve ara sıra bağlantı gerekliyse;
• İnce Web İstemcisi : Sunucu üzerinde işlem yapılacaksa ve sürekli bağlantı gerekliyse;
• Zengin İnternet Uygulaması : Eğer kullanıcıların görsel uygulamaya ihtiyacı varsa, yerel
kaynaklara erişim ihtiyacı az ise ve uygulama başka platformlarda da kullanılacak ise;
•Desteklenecek cihaz tipleri hangileri?
• Ekran büyüklüğü, çözünürlük, CPU performansı, bellek ve disk ihtiyacı ve geliştirme
araçları
• Donanım kullanımı : GPS Camera, İvmeölçer vb.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 5
8.4 Tasarım Kararları

•Gerektiğinde düşük bant genişliğinde çalışma ve ara sıra


bağlanabilme.
• Yerelde çalışmayan uygulamalar için, ağ bağlantısı yavaş olduğunda veya hiç olmadığında,
bellekleme, durum yönetimi ve veri erişim mekanizmaları nasıl gerçekleşecek.
• Bağlantı sağlandığında kullanıcı işlemlerinin toplu aktarımı.
• Donanım ve yazılım protkollerinin seçimi, ağ hızı, enerji tüketimi ve iletişim sıklığına uygun
seçilmeli.
•Mobil platformların kısıtılarına uygun kullanıcı arayüzü tasarlama:
• Mobil uygulamalar, cihazların kısıtları nedeniyle daha basit yazılım tasarımı ve daha basit
kullanıcı arayüzleri gerektirirler.
• Temel kısıtlar : bellek, pil süresi, farklı ekran büyüklükleri ve şekilleri, güvenlik ve ağ paylaşım
genişliği.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 6
8.4 Tasarım Kararları

•Yeniden kullanıma olanak sağlayan ve yönetimi kolaylaştıran


katmanlı mimari tasarımı:
• Birden fazla katman cihazın üzerinde yer alabilir. ‘Ayrık İşler’ teorisi yeniden kullanım ve
yönetim için itinayla uygulanmalıdır.
• Masaüstü ya da Web uygulamasına göre, mobil uygulama cihaz üzerinde mümkün olduğu
kadar az yer kaplamalıdır.
•Cihazların pil ömrü, bellek büyüklüğü ve işlemci gücü dikkate
alınmalıdır:
• Arka plan ışıklandırması, belleğe yazma ve okuma, kablosuz iletişim, özel donanımlar ve işlemci
gücü pil süresini etkiler.
• Mobil işletim sistemleri bellek sıkıntısı olduğunda programları kapatabilir ya da yavaşlatabilir.
Uygulamanın işlemci ve bellek tüketimi optimize edilmelidir.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 7
8.5 Mobil Uygulama Geliştirme Yöntemleri

•İşletim Sistemleri
• Android
• iOS
• Tizen, Blackberry, Windows Phone
• Ubuntu Touch, SailfishOS, KaiOS
•Uygulama Geliştirme Yöntemleri
• Doğal (Native)
• Web
• Aşamalı Web Uygulamaları (PWA –Progressive Web Apps)
• Hybrid
• Web Doğal
• Cross-Compiled

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 8
8.6 Doğal Mobil Uygulama

•İşletim sistemine özel, üretici tarafından sunulan program


geliştirme ortamları : iOS ve Android

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 9
8.6 Doğal Mobil Uygulama
Android iOS BlackBerry Windows

Üretici Open Handset Alliance Apple Blackberry Ltd. Microsoft

Programlama Dili C, C++, Java C, C++, Objective-C, Swift C, C++, HTML5, Javascript, C#, VB.NET, F#, C++, Jscript
CSS, ActionScript, Java
Lisans Açık Kaynak Tescilli Tescilli Tescilli

App Store Google Play App Store BlackBerry World Windows Phone Store

Uygulama Sayısı 1.3 million 1.2 million 234,500 500,000

Cihaza Yükleme Uygun XCode7 ile - Phone 10’dan sonra

Pil ihtiyacı Yüksek Düşük Orta En az

Özelleştirme Yüksek Birkaç seçenek var Orta Orta

Güvenlik Düşük Yüksek Yüksek Yüksek

Sesli Asistan Google Now Siri Voice Assistant Cortana

Geliştirme Ortamı Android Developer Studio XCode Blackberry JDE Visual Studio

Adobe Flash Desteği Var Yok Var Yok

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 10
8.6 Doğal Mobil Uygulama

•Doğal Uygulama Avantajları


• Performansı yüksek uygulamalar
• Cihazın özelliklerine tam erişim
• Gelişmiş geliştirme ortamları (Android Studio / Xcode)
• Modern programlama dilleri (Kotlin / Swift)
• NDK kullanarak işletim sistemi düzeyinde geliştirme
•Doğal Uygulama Dezavantajları
• Tüm platformlar için ayrı uygulama geliştirme
• Yükleme gerektirme
• İndirme gerektirme
• Google aramalarında dezavantaj

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 11
8.7 Mobil Web Uygulamaları

•Platforma özel olmayan, tarayıcı için geliştirilen uygulamalar


•HTML, CSS ve JavaScript
•Doğal uygulamaların aksine
kamera, titreşim sensörü, pil
durumu, dosya sistemi gibi
özelliklere erişim sorunu

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 12
8.7 Mobil Web Uygulamaları

•Mobil Web Uygulamaları Avantajları


• Platformlar arası kullanılabilen uygulamalar.
• Yükleme yok.
• Çok sayıda geliştirme çerçevesi ve kütüphanesi.
• Google aramalarında avantaj.
•Mobil Web Uygulamaları Dezavantajları
• Düşük performans.
• Doğal uygulamalardaki gibi kullanıcı arayüzü iyi değil.
• İnternet bağlantısı gerekli.
• App store’larda yok.
• Kütüphaneler doğal kütüphanelerle aynı olgunlukta değil.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 13
8.8 Aşamalı Web Uygulamaları

• Web sitelerinin görünümünü ve kullanıcı deneyimini, mobil


uygulamalarla benzer seviyeye getiren uygulamalara verilen
isimdir.
•Bu yaklaşımla
tasarlanan web sitelerini
mobil tarayıcıdan ziyaret
ettiğinizde, sanki bir web
sitesini değil bir mobil
uygulamayı kullanıyormuş gibi
bir deneyim yaşarsınız.
15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 14
8.8 Aşamalı Web Uygulamaları

• Web sitenizin çevrimdışı olarak çalışabilmesini sağlar, kullanıcı internet bağlantısı


olmadığı anlarda bile PWA sayesinde web sitenizde gezinebilir.
•Mobil cihazların ana ekranına kendi ikonunu ekleyerek mobil bir uygulama gibi
kullanıcıların hızlı erişim yapmasını sağlar.
•Web siteniz responsive özellikte ise PWA’da bu özelliği koruyarak ekranın mükemmel
oranda dolmasını sağlar ve kullanıcılarınıza daha keyifli okuma, gezinme imkânı sunar.
•Push Notification özelliği sayesinde uygulama açık olmasa bile onay veren kullanıcılara
bildirim gönderebilirsiniz.
•Chrome alt yapısı ile gelişmiş bir destek ve hizmet sunmaktadır.
•Uygulamayı kullanan ve beğenen bir kişi arkadaşına sadece linki göndererek uygulamayı
paylaşabilir. Karşı tarafın bir kurulum yapmasına gerek kalmaz, linke tıkladığında
uygulamayı kullanmaya başlar.
•Uygulamanız güncellendiğinde mobil cihazlardan otomatik olarak güncel uygulama
kullanılmaya başlanır.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 15
8.8 Aşamalı Web Uygulamaları

•Aşamalı Web Uygulamaları Avantajları


• Web uygulamalarına göre daha ‘doğal’ bir deneyim.
• Hızlı yükleme zamanları.
• İnternet bağlantısı gerektirmez.
• Push Notification, Geolocation, Speech Recognition
•Aşamalı Web Uygulamaları Dezavantajları
• Düşük hız.
• App store’larda yok.
• Tüm tarayıcılar desteklemiyor.
• NFC, Ambient Light, Geofencing gibi özellikler yok.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 16
8.9 Hibrit Uygulamalar

•Hibrit uygulamalar tarayıcı yerine WebView gibi bir bileşen


içerisinde çalışırlar.
•Doğal API’lara erişebilirler.
•Arayüz için HTML,
JavaScript ve CSS kullanırlar.
•Cordova/PhoneGap ve
Ionic en çok kullanılanlardır.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 17
8.9 Hibrit Uygulamalar

•Hibrit Uygulama Avantajları


• App store’lara yüklenebilen Web uygulamaları.
• Bir JavaScript framework’ü ile birlikte kullanılabilirler.
• Platformlar arasında aynı uygulama kullanılabilir.
• İşletim sisteminin doğal bileşenlerine erişim.
•Hibrit Uygulama Dezavantajları
• WebView bileşeni bellek tüketimini arttırıp, uygulamayı yavaşlatıyor.
• Tüm doğal bileşenlerin WebView versiyonu olmalı.
• AppStore üzerinde paylaşım zorluklarla dolu.
• Doğal özellikleri eklemek zor oluyor.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 18
8.10 Hibrit Uygulamalar

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Ders Öğretim Elemanı" tarafından hazırlanmıştır. 19
8.10 Web Doğal Uygulamalar

•JavaScript motoru ile birlikte dağıtılan Web uygulamalarıdır.


•V8 (Android için) ve JavaScriptCore (iOS) için:
• Hızlı
• Az yer kaplayan
•Doğal bileşenlerle aynı
arayüz görüntüsü.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 20
8.10 Web Doğal Uygulamalar

•Web Doğal Uygulamaları Avantajları


• Tek bir kod kümesiyle tüm platformlara uygun yazılım.
• Doğal uygulamalar ile hemen hemen aynı hız, aynı görünüm.
• Küçük değişikliklerle bir web uygulaması haline gelme.
•Web Doğal Uygulamaları Dezavantajları
• Tek bir kod kümesi de olsa, geliştiriciler doğal bileşenler hakkında bilgili olmalı.
• Hibrit ve Web Uygulamalarına göre öğrenilmesi daha zor.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 21
8.11 Cross-Compiled Uygulamalar

•Tek kod kümesi ile birden fazla platforma yazılım geliştirme.


•Framework’ler yazılan kodu farklı platformlara göre derler.
•Teoride doğal uygulamalar
ile benzer hız ve arayüz
deneyimi.
•Framework’e göre tek bir
dil ile yazılım geliştirme.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 22
8.11 Cross-Compiled Uygulamalar

•Cross-Compiled Uygulamaların Avantajları


• Tek bir programlama dili ile birden fazla platforma yazılım geliştirme.
• Doğal uygulamalar ile benzer hız ve benzer arayüz.
•Cross-Compiled Uygulamaların Dezavantajları
• Platformlardaki değişikliklerin ve yeniliklerin derleyicilere aktarılması zaman alıyor.
• Web geliştirme ile paylaşılabilen bir kod yok.
• Tek bir dil kullanılsa bile geliştirici farklı platformların doğal bileşenleri hakkında bilgi
sahibi olmak zorunda.

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 23
8.12 Karşılaştırma
•Uygulamanızın CPU yükü çok ise doğal uygulama geliştirin.
•Oyun? Cross-Compiled uygulamalar ile benzer mantıkta çalışan Unreal ve
Unity
•İki platform için yeterince
geliştiriciniz yoksa doğal
uygulamalar dışında bir seçenek
kullanın.
•C# biliyorsanız : Xamarin
•Java biliyorsanız : Android Doğal
•Web/Javascript : Web, Web Doğal
•Acemi kullanıcılar için: PWA

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 24
Ders Sonu

•Soru & Cevap

15.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 25

You might also like