33
MOBİL UYGULAMA GELİŞTİRME PELİN YILDIRIM FATMA BOZYİĞİT Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM 3214

MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

  • Upload
    others

  • View
    39

  • Download
    3

Embed Size (px)

Citation preview

Page 1: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

MOBİL UYGULAMA GELİŞTİRME

PELİN YILDIRIM

FATMA BOZYİĞİT

Celal Bayar Üniversitesi Hasan Ferdi Turgutlu

Teknoloji FakültesiYZM 3214

Page 2: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Bu Derste

Andoid App Dizayn Prensipleri

Ekranlarda kullanabileceğimiz elemanlar

Ekran düzenleme çeşitleri (frame, linear, relative)

2

Page 3: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Android Terminoloji

Activity: Appnizde görünen ekranlara karşılık gelir.

View: Bir aktivity için ekranda görünen birimleri içerir.

layout: Pozisyon ve büyüklükleri ayarlayan görünmez kabtır.

widget: Buton ve textfield gibi GUI kontrolleridir

event: Kullanıcı ekranla etkileşim yaptığında olan aksiyonlardır. (dokunma, yazma,

scrolling, )

3

Page 4: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - System Bar

1 - Status Bar (durum çubuğu): Bekleyen bildirimleri ve anlık durumları (pil seviyesi, sinyal

gücü, zaman). Aşağı doğru çekerek bildirim detaylarına bakılabilir

2 - Navigation Bar (Yönlenme çubuğu): Kendinden butonları olmayan cihazlarda gözükür ve

geri, ana ekran ve son kullanılanlara erişimi sağlar.

4

Page 5: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Bildirimler

Bildirimler (Notifications) kullanıcıya bilgi vermek, güncellemek yada hatırlatmak için

kullanılan kısa mesajlardır. Önemli fakat kullanıcının çalışmasını kesip ekranı meşgul

edecek kadar önemli olmayan mesajlar için kullanılır. Tıklanıp detayına ulaşılabilir

yada kaydırarak silinebilir.

5

Page 6: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Action Bar

1- App Ikonu

2- Ekran kontrol kısmı: Ekranlar arası geçişi sağlar. Eğer alternatif ekranların ne

olduğu önemli ise ‘tab’ ler kullanılabilir. Eğer geçiş gerekmeyen bir ekransa ekran

başlığını içerir.

3- Aksiyon butonları: en önemli butonları listeleriz. Buraya koyacağımız butonlar için

kriterlerimiz

Acaba 10 kerenin en az 7sinde bu butonlar kullanılacak mı?

Bu butonların gözükmesi önemli mi?

Bu butonlar tipik olarak her appde burada mı gözükür?

4- Diğer (taşan) Aksiyonlar (Action Overflow): Daha az öneme sahip butonları

barındırır

Dahası: https://developer.android.com/design/patterns/actionbar.html

6

Page 7: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Sekmeler (Tabs)

Ekranlar arası geçişi kolaylaştırırlar.

Sabit sekmeler (Fixed tabs): Aynı anda bütün ekran seçenekleri görünür. Ekranda her

sekmenin ismi eşit genişlikte yer alır.

Kaydırılabilir sekmeler (Scrollable tabs): Kaydırarak ekranda gözükmeyen sekmelere

ulaşılır

Dahası: https://developer.android.com/design/building-blocks/tabs.html

7

Page 8: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Listeler

Standart list: Çok satırlı elemanları

dikey olarak düzenlemeye yarar.

Grid list: Hem dikey hemde yatay

düzenlemeye yarar

8

Page 9: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Kaydırma Çubukları (Scrolling)

Kaydırma belirteci

İndeksli kaydırma

9

Page 10: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Butonlar

Butonlar butona dokunulduğunda nasıl bir aksiyon olacağını belirtmek için yazı, resim veya hem resim hem yazı

kullanabilirler.

önemli özellikler (key attributes)

android:clickable=“bool" (butona tıklanabilir mi tıklanamaz mı?)

android:id="@+id/theID" (Java kodunda kullanılmak üzere unique ID)

android:onClick="function" (Tıklandığında çağrılacak metod (public, void, View argumanı alır) )

android:text="text" (Buton üstündeki text)

Java kodunda Button sınıfı ile temsil edilir.

Button b = (Button) findViewById(R.id.theID);

10

Page 11: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - ImageButton

Tıklanabilir resim

önemli özellikler (key attributes)

android:clickable="bool" butonu etkisiz hale getirmek için false yapın

android:id="@+id/theID" : tekil ID

android:onClick="function" activity içindeki çağrılan metod (public, void ve View

parameter)

android:src="@drawable/img" kullanılacak resim, app/src/main/res/drawable

klasorunde olmalı. foo.png resmi için @drawable/foo kullanın

11

Page 12: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - ImageView

Sadece resim, tıklanamaz

Kodla resmi değiştirmek için

findViewById ile ImageView ı alın

setImageResource metoduna parametre olarak R.drawable.filename kullan

önemli özellikler (key attributes)

android:id="@+id/theID" : tekil ID

android:src="@drawable/img" kullanılacak resim, app/src/main/res/drawable

klasorunde olmalı. foo.png resmi için @drawable/foo kullanın

12

Page 13: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Textfield

Tek satır yada çoklu satır olabilirler.

Numara, mesaj, email adres gibi farklı text girişlerini almaya ayarlı tipleri olabilir

Otomatik olarak yazılanı tamamlayan ve seçim yapmanıza yardımcı olan türleri vardır.

13

Page 14: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - EditText

İçeriği değiştirilebilen textbox olarak ayarlı textView dır

önemli özellikler (key attributes)

android:hint="text" : kullanıcı yazmaya başlamadan önce gösterilir

android:id="@+id/theID" : tekil ID

android:inputType="type" : girilen veri tipi number, phone, date, time,...

android:lines="int" : kaç satır giriş görünür

android:maxLines="int" : max izin verilen satır

android:text="text"

android:textSize="size" text büyüklüğü

Diğerleri: capitalize, digits, fontFamily, letterSpacing, lineSpacingExtra, minLines, numeric,

password, phoneNumber, singleLine, textAllCaps, textColor, typeface

14

Page 15: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Spinners

Spinnerler bir küme veriyi listelemek için kullanılırlar.

Normal durumda seçili veriyi gösterirler ve dokununca

menü halinde diğer seçenekleri gösterirler.

Form üzerinde bir dizi veriden seçim için kullanılabilirler.

Aksiyon çubuğu üzerinde ekranlar arası geçiş için

kullanılırlar. Ekranlar arası geçiş çok olmuyorsa spinner

kullanılabilir, çokça oluyorsa tab (sekme) kullanmayı tercih

edin.

Önemli özellikler (key attributes)

clickable, id, entries

android:entries="@array/array" : string.xml de

belirtilen bir array, opsiyonlar listesi

android:prompt="@string/text" : seçildiğinde görünen

başlık

Seçim olduğunda olacakları tanımlayan metodu

setOnItemSelectedListener ile kodda tanımlamalıyız.15

Page 16: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - String Örneği

16

Page 17: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Spinner Örneği

17

Page 18: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Spinner Olayı Örneği

18

Page 19: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Kaydırma Çubukları

(Seek Bars, Sliders)

Ses, parlaklık ve renk seçimi gibi durumlarda kullanılabilir

En düşük değer solda, en büyük değer sağdadır.

19

Page 20: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Aktivite Belirteçleri ve Gelişme Süreci

Çubukları (Progress bar, Activity Indicator)

Süreç çubukları (progress bar)

20

• Aktivite belirteçleri

• Ne kadar süreceği bilinmeyen veya tam

hesaplanamayan durumlar için kullanılır

Page 21: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Checkbox, Radiobox, Switch

Checkbox

önemli özellikler (key attributes)

checked, clickable, id, onClick, text

CheckBox cb = (CheckBox)

findViewById(R.id.theID);

cb.toggle();

cb.setChecked(true);

cb.performClick();

Radiobox (RadioGroup içinde olmalı)

önemli özellikler (key attributes)

checked, clickable, id, onClick, text

Switch

21

Page 22: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Dialog; Alerts, Popups, Toast

Alert: Başlıklı yada başlıksız

olabilir. Butonları ve ne

yapacağını tanımlarsınız.

Popup: Seçim yapıldığında yada

ekranın popup harici herhangi

bir yerine tıklandığında

kaybolurlar.

Toast: Kısa bir süre ekranda

mesaj gözükür ve kaybolur.

Kullanıcıyı bilgilendirmek için

kullanılır.

22

Page 23: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Bileşenleri - Seçiciler (Pickers)

Bir küme veriden bir tanesinin seçiminde kullanılır.

Ekranda çok yer kapladıkları için dialoglar içinde

kullanılması önerilir. Ekran içinde kullanılacaksa

spinner tercih edilmelidir.

Tarih ve saat için bunların kullanımı istenilen formatta

veri almayı kolaylaştırır.

23

Page 24: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Gestures - Dokunarak komut iletim çeşitleri

Tek Dokunuş (Single Touch)

Kaydırma (Swipe)

Uzun Dokunuş (Long Touch)

Çift Dokunma (Double Touch)

Uzun Dokun ve Sürükle (Long Touch and Drag)

24

Page 25: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Olaylara (Event) Karşılık Verecek Metodu Yaratmak

App’de olaylara karşılık vermek için, her bir olay için dinleyici (listener) metod yazmalı ve bu

metodu GUI widgetına bağlamalıdır. Bunun için;

‘Design’ view da widget ı seç

‘Properties’ penceresinden onClick metodunu bul

Olay olduğuna karşılık verecek metodun ismini yazın

TextView görünümüne geçip XMLde butonu bulun

Lamba işaretinin üstüne tıklayın ve metodu yaratı seçin.

25

Page 26: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Widgetlara Koddan Erişim

Dizayn da widgeta unique ID verin

Java kodunda findViewById metodunu kullanarak widget objesine erişin

R.id.your_unique_ID yi findViewById metoduna parametre olarak gönderin

Dönen değeri widget tipi (Button, TextView, etc.) cinsinden atayın.

26

Page 27: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Düzenleme Çeşitleri

Ekrandaki elemanları (textview, listview, ) düzenlemek için

çeşitli yöntemler vardır:

Frame Layout (Çerçeve Düzenleme)

Basit düzenlemeler içindir. Genelde tek veya aynı hizadaki

birçok ekran elemanını düzenlemek için kullanılır

Linear Layout (Lineer Düzenleme)

Bir dizi aynı elemanı yatay yada dikey hizada listelemek

ve ekranı aynı oranda paylaştırmak için iyidir.

Relative Layout (Bağıl Düzenleme)

Daha kompleksdir. Ekrandaki diğer elemanlara yada

ebevyn elemana göre düzenlenir.

27

Page 28: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Düzenleme Çeşitleri - Linear Layout

Linear Layout (Lineer Düzenleme)

Bir dizi aynı elemanı yatay yada dikey hizada listelemek ve ekranı

aynı oranda paylaştırmak için iyidir.

Ekran sonuna gelindiğinde elemanlar bir sonraki satıra geçmezler.

http://developer.android.com/guide/topics/ui/layout/linear.html

28

Page 29: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Düzenleme Çeşitleri - Frame Layout

layout_width ve layout_height özellikleri için sabitler:

wrap_content: İçinde olduğun kaba göre kendi büyüklüğünü

ayarla

match_parent (fill_parent API Level 8 öncesinde) içinde

bulunduğun kab müsade ettiği kadar büyük ol.

Frame Layout (Çerçeve Düzenleme)

Basit düzenlemeler içindir. Genelde tek veya aynı hizadaki

birçok ekran elemanını düzenlemek için kullanılır

Genelde fragmentlarla birlikte kullanılırlar

29

Page 30: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Ekran Düzenleme Çeşitleri - Relative Layout

Relative Layout (Çerçeve Düzenleme)

Elemanlar bir üst seviyedeki yada aynı seviyedeki elemanlara göre

düzenlenebilir.

http://developer.android.com/guide/topics/ui/layout/relative.html

30

Page 31: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Android Studioda Ekran Tanımlamak

fragment_main.xml dosyasını

değiştirerek çalıştırın ve nelerin

değiştiğini görün.

31

Page 32: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Linkler

Wireframe siteleri:

http://developer.android.com/training/design-navigation/screen-planning.html

http://developer.android.com/training/design-navigation/wireframing.html

http://ninjamock.com/

https://proto.io/

http://www.justinmind.com/mobile

http://wireframesketcher.com/

Android API:

http://developer.android.com/reference/packages.html

32

Page 33: MOBİL UYGULAMA GELİŞTİRME - Algoritma ve Programlama ... · Android Terminoloji Activity: Appnizde görünen ekranlara karşılık gelir. View: Bir aktivity için ekranda görünen

Kaynaklar

Android Design Principles

Google I/O 2013 - Enchant, Simplify, Amaze: Android's Design Principles ( https://www.youtube.com/watch?v=s0HIP8EdlnE )

https://developer.android.com/design/get-started/principles.html

http://developer.android.com/guide/topics/ui/overview.html

Stanford Android Development Course

http://web.stanford.edu/class/cs193a/lectures.shtml

Udacity - Developing Android Apps (Google tarafından)

https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821/m-1643858569

33