17
MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM 3214

MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

  • Upload
    others

  • View
    35

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

MOBIL UYGULAMA GELIŞTIRME

PELIN YILDIRIM

FATMA BOZYIĞIT

Celal Bayar Üniversitesi Hasan Ferdi Turgutlu

Teknoloji Fakültesi YZM 3214

Page 2: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Bu Derste

Android Nedir ve Uygulama Temelleri

Android Uygulama Bileşenleri (Application Components)

App Dizayn Prensipleri

2

Page 3: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Android nedir ?

Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi +

bir ara katman ve

e-mail istemcisi, sms programı, takvim, google maps, telefon rehberi vb. gibi bir kaç çekirdek programdan oluşur diyebiliriz.

Tabi android'i kullanacağınız ortama göre bunlar değişiklik gösterebilir. Örneğin bir tablet pc'de telefon rehberi pek işinize yaramayabilir.

3

Page 4: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Android Mimarisi

4

Page 5: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Applications 5

e-mail istemcisi, sms programı, takvim, google maps, telefon rehberi gibi temel uygulamalar ve sonradan yüklediğiniz 3. parti yazılımlar(twitter istemcisi gibi).

Page 6: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Application Framework 6

Android yazılım geliştiriciler için oldukça zengin bir platform sunar.

Geliştiriciler yazılımlarında donanım bilgileri, lokasyon bilgisi, arka plan servisleri gibi bir çok bilgiye hiç bir kısıt olmadan rahatlıkla erişebilirler.

Bunun dışında uygulamalar kendi servislerini diğer uygulamalarla paylaşabilirler ve diğer uygulamaların sundukları servislere erişebilirler. (Telefon rehberi kayıtlarına erişebilmek gibi).

Page 7: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Libraries 7

Android içerisinde yer alan genelde c ve c++ yazılmış olan kütüphanelerdir.

Sistem kütüphaneleri, mp3, jpg gibi ses ve görüntü formatları için medya kütüphaneler,

veri tabanı için sqlite kütüphaneleri gibi temel kütüphaneleri bulunur.

Genellikle bunlara uygulama çatısı aracılığıyla erişiriz

Page 8: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Android Runtime 8

Android alt seviye işler için (hafıza yönetimi, donanım sürücüleri gibi) linux kernelini kullanmaktadır ve temel java kütüphanelerini içerir.

Page 9: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Temel uygulama yapısı (1/2) 9

Android uygulamaları java programlama diliyle yazılır. Uygulama uzantısı .apk'dır. Bir .apk dosyasını telefonunuza atarak kurabilirsiniz. Her android uygulaması ayrı bir linux processi şeklinde çalışır. Bir uygulama çalışmak istediğinde android yeni bir process

yaratır ve uygulama kapatılana kadar bu process altında çalışır. Tabi sistem kaynakları yeterli olmadığı durumda android

uygulamalanın kapatılması beklenmeden processi sonlandırabilir.

Page 10: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Temel uygulama yapısı (2/2) 10

Android'in en önemli özelliklerinden birisi de bir uygulamanın diğer bir uygulamayı ve onun istenilen parçalarını kullanabiliyor olmasıdır. (Uygulamanın buna izin vermesi halinde).

Örneğin uygulamanızın bir dizi resimi kaydırması gerekiyor ve başka bir uygulama bu işi çok iyi yapıyor ve başka uygulamaların bu özelliği kullanmasına izin vermişse siz uygulamanızdan bu uygulama parçasını çağırabiliyorsunuz. Yani bu sizi büyük bir iş yükünden kurtarmış oluyor.

Page 11: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Android Uygulama Bileşenleri

(Application Components) 11

Uygulama bileşenleri, bir Android uygulamasının en

önemli yapı taşlarıdır.

Page 12: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Aktiviteler (Activities) 12

Aktivite bir kullanıcı arayüzüne sahip tek bir ekranı ifade eder.

Bir program içinde bir tanesi ana aktivite olmak üzere birden fazla aktivite tanımlanabilir.

Aktivite aslında kullanıcının işlemler gerçekleştirmek için kullandığı bir penceredir.

Bu pencere üzerinde etiket, metin giriş alanları ve buton gibi program elemanları yer alır.

Her aktivitede yer alan elemanları göstermek için ayrı bir .xml dosyası oluşturulur.

Aktiviteler Activity sınıfından türetilir.

Page 13: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Servisler (Services) 13

Android uygulamalarında arka planda çalışan ve kullanıcının uygulamayla olan ilişkisini etkilemeyen işlemler için Service adında bir sınıf bulunur.

Veritabanı güncellemeleri, günlük hata raporlarının bildirilmesi gibi rutin arka plan işlemleri için bir servis yaratma ihtiyacı duyduğumuzda Service sınıfından bir alt sınıf yaratarak gerekli işlemleri kullanıcıyı rahatsız etmeden gerçekleştirebiliriz.

Page 14: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

İçerik sağlayıcıları (Content

Providers) 14

İçerik sağlayıcısı, uygulamaya ait paylaşılan verileri yönetir.

Verileri, uygulamanızın erişim sağlayabileceği disk üzerindeki bir dosya sistemine veya bir SQLite veritabanına kaydedebilirsiniz.

İçerik sağlayıcısı ile, diğer uygulamalar, yetki sahibi olduğu takdirde, verileri sorgulayabilir veya değiştirebilir.

İçerik sağlayıcısı, uygulamanıza özel bilgileri okumak ve yazmak için kullanılır.

Bir içerik sağlayıcısı ContentProvider sınıfından türetilir.

Page 15: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

Mesaj alıcıları (Broadcast Receivers) 15

Mesaj alıcı, sistem mesajlarına işlem yapan bir bileşendir.

Ekranın kapatıldığı, bataryanın düşük olduğu veya resim kaydedilmesi gibi bir çok mesaj sistem kaynaklıdır.

Uygulamalar, diğer uygulamalara cihaza bazı verilerin indirildiğini ve kullanıma hazır olduğunu bildirmek için mesaj gönderebilir.

Mesaj alıcıları bir kullanıcı arayüzü kullanmaz, ancak bir mesaj iletildiğini kullanıcıya bildirmek üzere bir durum çubuğu bildirimi oluşturur.

Mesaj alıcıları BroadcastReceiver sınıfından türetilir.

Page 16: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

App Dizayn Prensipleri (1/2)

Dikkatlice yerleştirilmiş bir animasyon, iyi

zamanlanmış bir ses efekti kullanıcınızın

tecrübesini en üst noktaya taşıyabilir

Kısa ve öz anlat, kullanıcı genelde uzun

cümleleri okumadan geçer

1 resim 1000 kelimeye bedeldir. Resimler

dikkat çeker ve daha etkindir.

Nerede olduğumu her zaman bilmeliyim. App

içinde nerede olduklarını anlayacakları ipuçları

ve bilgiler vererek güven ver.

16

Page 17: MOBIL UYGULAMA GELIŞTIRME - Algoritma ve Programlama ... · Android genel olarak mobil cihazlarda çalışan bir işletim sistemi olarak bilinsede aslında işletim sistemi + bir

App Dizayn Prensipleri (2/2)

Asla yaptıklarımı kaybetme. Ayarlarımı, tercihlerimi

kaydet, başka cihazlardan erişmeme izin ver.

Benim suçum değil. Bir hata olmuşsa kullanıcıya nazikçe

bildir. Nasıl çözülebileceğine dair net adımlar göster.

Önemli işlemleri hızlandır. En önemli işlemleri belirle ve

onlara daha kolay erişilebilmesini ve yapılmasını sağla.

17