mobİl uygulama gelİŞtİrme - algoritma ve programlama ... · android terminoloji activity:...
TRANSCRIPT
![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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062403/5fdae0d8f46285432c3d6086/html5/thumbnails/33.jpg)
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