SlideShare a Scribd company logo
1 of 37
Download to read offline
Android Study Jam
July 2020 - dsc.community.dev
Muhammet ÇAĞATAY
Senior Android & Kotlin Engineer Consultant Lecturer
https://www.linkedin.com/in/muhammetcagatay
Android Nedir?
● Google ve Open Handset Alliance tarafından geliştirilen,
● Linux tabanlı, özgür ve ücretsiz bir mobil işletim sistemidir.
● Sistem açık kaynak kodlu olsa da, kodlarının ufak ama çok önemli bir
kısmı Google tarafından kapalı tutulmaktadır.
Android İşletim Sisteminin Gelişimi
9 Ocak 2007 5 Kasım 2007
Android İşletim Sisteminin Gelişimi
İlk android işletim sistemi 22 Ekim 2008’de T-Mobile G1’de yayınlandı. ( iphone’dan 2 yıl sonra )
Android Development IDE
16 Mayıs 2013
Android Native Geliştirme Dili
Kotlin’in ilk stabil sürümü 5 Şubat 2016'da yayınlanmıştır. Google I/O
2017'de resmi bir Android geliştirme dili olarak duyurulmuştur.
Kotlin Nedir?
● Java sanal makinesi (JVM) üzerinde çalışan ve ayrıca JavaScript
kaynak koduna derlenebilen, statik tipli bir programlama dilidir.
● Java ile uyumlu sözdizimi olmasa da, Kotlin Java kodu ile birlikte
çalışmak üzere tasarlanmıştır.
● Kotlin, Apple'ın Swift diline de benzemektedir.
Statik Tipli Programlama Dili : her değişken tipinin önceden belirtiliyor olmasıdır.
Kotlin İle Gelen Yenilikler
● Data Class
● Top-level (package level) sınıflar ve
fonksiyonlar
● var ve val kullanımı
● .equals() yerine == kullanımı
● get/set ön eklerinin kullanılmaması
● Tip kontrolü ve dönüşümleri (is ve as)
● Smart casts (akıllı dönüşümler)
● Safe (nullable) casting
● When Yapısı
● Extensions
● Delegates
● Sealed Sınıflar
Android Proje Oluşturma
Android Studio Arayüzü
Android Klasör Yapısı
● src (kaynak kodlar)
● libs (android sdk'da bulunmayan kütüphanelerin jar dosyaları koyulur)
● res (uygulama ile ilgili tüm kaynak(resource)ların olduğu klasör)
○ drawable-* klasörleri (uygulamada kullanılan resim dosyaları bulunur)
● drawable-ldpi (low dpi yani düşük çözünürlüklü cihazlarda kullanılacak resimler)
● drawable-mdpi (mdpi dpi yani orta çözünürlüklü cihazlarda kullanılacak resimler)
● drawable-hdpi (high dpi yani yüksek çözünürlüklü cihazlarda kullanılacak resimler)
● drawable-xhpi (extra high dpi yani çok yüksek çözünürlüklü cihazlarda kullanılacak resimler)
■ layout (Ekranların (activity) tasarım yapısın olduğu xml dosyaları bulunur)
■ raw (mp3, video, pdf gibi dosyalar bulunur)
■ xml (anahtar-değer çiftleri şeklinde saklanan sabit değerler)
■ anim (animasyon xml dosyalarını barındırır)
■ menu (standart menü düğmesi ile açılan menüdeki maddeleri tanımlamak için kullanılır)
■ values ve values-* klasörleri (Uygulama içinden erişilen sabit değerleri tutan xml dosyaları. Örneğin
mesajlar, başlık metinleri, renkler, style değerleri vb..)
● strings.xml dosyası (anahtar-değer çiftleri şeklinde saklanan sabit bilgiler)
● colors.xml dosyası (layout dosyalarında kullanılan renk tanımlarını içerir)
● styles.xml dosyası (ekranlarda kullanılan biçim tanımlarını içerir)
● dimens.xml dosyası (farklı boyutlar için tasarımları saklamak içindir. farklı values-* klasörleri içinde farklı
özelliklerde tanımlanabilir)
● AndroidManifest.xml dosyası (uygulamanın ana activity'sin belirtildiği, uygulama izinlerin verildiği, genel ayarların
tanımlandığı ana ayar dosyası)
Intent, Context ve Activity
Intent :
● Uygulama bileşenleri arasında veri alışverişini ve bilgi aktarımını sağlayan bir
haberleşme nesnesidir.
Context :
● Android sistemi tarafından soyut bir şekilde bize sunulan, uygulamamız
hakkında global bilgiye sahip arayüzdür.
● Bir nevi uygulamamızın komponentlerinin kimliğidir diyebiliriz.
Activity :
● Bir kullanıcı arayüzüne (UI) sahip bir ekranı temsil eder
Projeye Activity Ekleme
Activity Yaşam Döngüsü (LifeCycle)
Android Arayüz Nesneleri
Android Layouts
Android Resource Dosyaları
<resources>
<string name="app_name">StudyJam</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>
strings.xml
colors.xml
Kotlin’de Veri Tipleri
var sayi1=53
val sayi2 =34.0
var sayi1:Int= 53
val sayi2:Float =34.0f
var isim ="Muhammet ÇAĞATAY"
var isim:String ="Muhammet ÇAĞATAY"
Kotlin’de Arayüz Nesneleri Kullanma
var btnMesaj:Button=findViewById(R.id.btnMesaj)
var edtIsim:EditText=findViewById(R.id.edtIsim)
var btnMesaj:Button?=null
btnMesaj=findViewById(R.id.btnMesaj)
var edtIsim:EditText?=null
edtIsim=findViewById(R.id.edtIsim)
Kotlin Nulable ve Non-Null
● Kotlin’de nullable için soru işareti (?)
Kesinlikle Null gelmeyeceğini biliyoruz.
● non-null tanımlar için iki ünlem işareti (!!) kullanılır.
Bekediğimiz değerin ne zaman dolu ne zaman boş geleceğini
bilmiyoruz.
Nesnelere Click Özelliği Ekleme
var btnMesaj:Button?=null
btnMesaj=findViewById(R.id.btnMesaj)
btnMesaj?.setOnClickListener{
}
Log Kullanımı
Log.i("LOG_TAG","Bu bir bilgi (info) logu")
Log.d("LOG_TAG","Bu bir debug logu")
Log.e("LOG_TAG","Bu bir hata (error) logu")
Log.w("LOG_TAG","Bu bir uyarı (warn) logu")
Log.v("LOG_TAG","Bu bir ayrıntı (verbose) logu")
Toast Kullanımı
Toast.makeText(applicationContext,
"Muhammet ÇAĞATAY",
Toast.LENGTH_SHORT)
.show()
Multi Click
class MainActivity : AppCompatActivity() , View.OnClickListener
var btn1:Button?=null
var btn2:Button?=null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn1=findViewById(R.id.btn1)
btn1?.setOnClickListener(this)
btn2=findViewById(R.id.btn2)
btn2?.setOnClickListener(this)
}
override fun onClick(view: View) {
}
if Koşul Yapısı
override fun onClick(view: View) {
if(view.id==R.id.btn1)
{
Toast.makeText(applicationContext,"Btn1 tıklandı",Toast.LENGTH_SHORT).show()
}
else if(view.id==R.id.btn2)
{
Toast.makeText(applicationContext,"Btn2 tıklandı",Toast.LENGTH_SHORT).show()
}
}
When Koşul Yapısı
override fun onClick(view: View) {
when(view.id){
R.id.btn1 -> {
Toast.makeText(applicationContext,"Btn1 tıklandı",Toast.LENGTH_SHORT).show()
}
R.id.btn2 -> {
Toast.makeText(applicationContext,"Btn2 tıklandı",Toast.LENGTH_SHORT).show()
}
}
}
Activiyler Arası Geçiş
var ikinciEkran:Intent?=null
btn1?.setOnClickListener{
ikinciEkran=Intent(this@MainActivity,SecondActivity::class.java)
startActivity(ikinciEkran)
}
Metin Kutusundan Değer Alma
var edtSayi:EditText?=null
edtSayi=findViewById(R.id.edtSayi)
var sayi = edtSayi?.text.toString().toInt()
Android Lokaliazasyon ( Dil Desteği )
CleanCode ( Temiz Kod ) Nedir?
● Kod yazarken takip edilen bir felsefedir.
● Kodunuzun tam ve mümkün olduğunca kusursuz olması gerektiği fikridir.
● İhtiyaç olandan daha fazla kodunuz olmamasıdır.
● Gereksiz hiçbir satır olmamalı.
● Kodlama yaparken yalnızca sorunu çözmek yerine, mümkün olduğunca
verimli, okunabilir ve bakımı yapılabilir kodlama tarzıdır.
Class
Metod
Boolean
Kısaltmalar
Karar Yapıları
Sabit Değişkenler
Bir Yazılımın Oluşum Süreci
● Gereksinim Analizi
● Mimari Tasarımı
● UI Tasarımı
● Kodlama ve Birim Testi
● Entegrasyon Testleri
● Kabul Testleri
● Kabul ( Entegrasyon )
Şelale (Waterfall) Modeli :
Çevik Metodolojiler
● Scrum
● Agile
● Kanban
● Nexus ...
Teşekkürler

More Related Content

Similar to Android Study Jam - Kotlin ile Temel Android Eğitimi

C sharp-konferansi
C sharp-konferansiC sharp-konferansi
C sharp-konferansisersld30
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri TanıtımAtilla Özgür
 
C sharp-2017
C sharp-2017C sharp-2017
C sharp-2017sersld30
 
C sharp-danismani
C sharp-danismaniC sharp-danismani
C sharp-danismanisersld30
 
C sharp-dokumani
C sharp-dokumaniC sharp-dokumani
C sharp-dokumanisersld30
 
Python Programlama Diline Giriş - Güncelleme 2018
Python Programlama Diline Giriş - Güncelleme 2018Python Programlama Diline Giriş - Güncelleme 2018
Python Programlama Diline Giriş - Güncelleme 2018Murat KARA
 
C sharp-tasarimi
C sharp-tasarimiC sharp-tasarimi
C sharp-tasarimisersld30
 
C sharp-egitim-cd-si
C sharp-egitim-cd-siC sharp-egitim-cd-si
C sharp-egitim-cd-sisersld30
 
C sharp-2013
C sharp-2013C sharp-2013
C sharp-2013sersld30
 
Python programlama
Python programlamaPython programlama
Python programlamaMurat KARA
 
C sharp-2016
C sharp-2016C sharp-2016
C sharp-2016sersld30
 
C sharp-zirvesi
C sharp-zirvesiC sharp-zirvesi
C sharp-zirvesisersld30
 
C sharp-ornegi
C sharp-ornegiC sharp-ornegi
C sharp-ornegisersld30
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYusuf AYTİN
 
C sharp-ornekleri
C sharp-ornekleriC sharp-ornekleri
C sharp-orneklerisersld30
 
C sharp-2011
C sharp-2011C sharp-2011
C sharp-2011sersld30
 
C sharp-kitaplari
C sharp-kitaplariC sharp-kitaplari
C sharp-kitaplarisersld30
 

Similar to Android Study Jam - Kotlin ile Temel Android Eğitimi (20)

C sharp-konferansi
C sharp-konferansiC sharp-konferansi
C sharp-konferansi
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri Tanıtım
 
C#4.0
C#4.0C#4.0
C#4.0
 
C sharp-2017
C sharp-2017C sharp-2017
C sharp-2017
 
C sharp-danismani
C sharp-danismaniC sharp-danismani
C sharp-danismani
 
C sharp-dokumani
C sharp-dokumaniC sharp-dokumani
C sharp-dokumani
 
Localization [tr]
Localization [tr]Localization [tr]
Localization [tr]
 
Python Programlama Diline Giriş - Güncelleme 2018
Python Programlama Diline Giriş - Güncelleme 2018Python Programlama Diline Giriş - Güncelleme 2018
Python Programlama Diline Giriş - Güncelleme 2018
 
C sharp-tasarimi
C sharp-tasarimiC sharp-tasarimi
C sharp-tasarimi
 
C sharp-egitim-cd-si
C sharp-egitim-cd-siC sharp-egitim-cd-si
C sharp-egitim-cd-si
 
C sharp-2013
C sharp-2013C sharp-2013
C sharp-2013
 
Python programlama
Python programlamaPython programlama
Python programlama
 
C sharp-2016
C sharp-2016C sharp-2016
C sharp-2016
 
Phyton Programlama Dili
Phyton Programlama DiliPhyton Programlama Dili
Phyton Programlama Dili
 
C sharp-zirvesi
C sharp-zirvesiC sharp-zirvesi
C sharp-zirvesi
 
C sharp-ornegi
C sharp-ornegiC sharp-ornegi
C sharp-ornegi
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
 
C sharp-ornekleri
C sharp-ornekleriC sharp-ornekleri
C sharp-ornekleri
 
C sharp-2011
C sharp-2011C sharp-2011
C sharp-2011
 
C sharp-kitaplari
C sharp-kitaplariC sharp-kitaplari
C sharp-kitaplari
 

More from Muhammet ÇAĞATAY

C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAYC# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAYMuhammet ÇAĞATAY
 
5E Öğretim Modeli - Muhammet ÇAĞATAY
5E Öğretim Modeli - Muhammet ÇAĞATAY5E Öğretim Modeli - Muhammet ÇAĞATAY
5E Öğretim Modeli - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Bool cebiri - Muhammet ÇAĞATAY
Bool cebiri - Muhammet ÇAĞATAYBool cebiri - Muhammet ÇAĞATAY
Bool cebiri - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAY
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAYÖzel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAY
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAY
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAYE ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAY
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Lineer programlama - Muhammet ÇAĞATAY
Lineer programlama - Muhammet ÇAĞATAYLineer programlama - Muhammet ÇAĞATAY
Lineer programlama - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAY
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAYFraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAY
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAY
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAYTürkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAY
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Programlama Dili Olarak JAVA - Muhammet ÇAĞATAY
Programlama Dili Olarak JAVA - Muhammet ÇAĞATAYProgramlama Dili Olarak JAVA - Muhammet ÇAĞATAY
Programlama Dili Olarak JAVA - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Az ve Öz C++ Muhammet ÇAĞATAY
Az ve Öz C++  Muhammet ÇAĞATAYAz ve Öz C++  Muhammet ÇAĞATAY
Az ve Öz C++ Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Az ve Öz Matlab - Muhammet ÇAĞATAY
Az ve Öz Matlab - Muhammet ÇAĞATAYAz ve Öz Matlab - Muhammet ÇAĞATAY
Az ve Öz Matlab - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 

More from Muhammet ÇAĞATAY (11)

C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAYC# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
 
5E Öğretim Modeli - Muhammet ÇAĞATAY
5E Öğretim Modeli - Muhammet ÇAĞATAY5E Öğretim Modeli - Muhammet ÇAĞATAY
5E Öğretim Modeli - Muhammet ÇAĞATAY
 
Bool cebiri - Muhammet ÇAĞATAY
Bool cebiri - Muhammet ÇAĞATAYBool cebiri - Muhammet ÇAĞATAY
Bool cebiri - Muhammet ÇAĞATAY
 
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAY
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAYÖzel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAY
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAY
 
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAY
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAYE ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAY
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAY
 
Lineer programlama - Muhammet ÇAĞATAY
Lineer programlama - Muhammet ÇAĞATAYLineer programlama - Muhammet ÇAĞATAY
Lineer programlama - Muhammet ÇAĞATAY
 
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAY
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAYFraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAY
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAY
 
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAY
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAYTürkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAY
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAY
 
Programlama Dili Olarak JAVA - Muhammet ÇAĞATAY
Programlama Dili Olarak JAVA - Muhammet ÇAĞATAYProgramlama Dili Olarak JAVA - Muhammet ÇAĞATAY
Programlama Dili Olarak JAVA - Muhammet ÇAĞATAY
 
Az ve Öz C++ Muhammet ÇAĞATAY
Az ve Öz C++  Muhammet ÇAĞATAYAz ve Öz C++  Muhammet ÇAĞATAY
Az ve Öz C++ Muhammet ÇAĞATAY
 
Az ve Öz Matlab - Muhammet ÇAĞATAY
Az ve Öz Matlab - Muhammet ÇAĞATAYAz ve Öz Matlab - Muhammet ÇAĞATAY
Az ve Öz Matlab - Muhammet ÇAĞATAY
 

Android Study Jam - Kotlin ile Temel Android Eğitimi

  • 1. Android Study Jam July 2020 - dsc.community.dev
  • 2. Muhammet ÇAĞATAY Senior Android & Kotlin Engineer Consultant Lecturer https://www.linkedin.com/in/muhammetcagatay
  • 3.
  • 4. Android Nedir? ● Google ve Open Handset Alliance tarafından geliştirilen, ● Linux tabanlı, özgür ve ücretsiz bir mobil işletim sistemidir. ● Sistem açık kaynak kodlu olsa da, kodlarının ufak ama çok önemli bir kısmı Google tarafından kapalı tutulmaktadır.
  • 5. Android İşletim Sisteminin Gelişimi 9 Ocak 2007 5 Kasım 2007
  • 6. Android İşletim Sisteminin Gelişimi İlk android işletim sistemi 22 Ekim 2008’de T-Mobile G1’de yayınlandı. ( iphone’dan 2 yıl sonra )
  • 7.
  • 9. Android Native Geliştirme Dili Kotlin’in ilk stabil sürümü 5 Şubat 2016'da yayınlanmıştır. Google I/O 2017'de resmi bir Android geliştirme dili olarak duyurulmuştur.
  • 10. Kotlin Nedir? ● Java sanal makinesi (JVM) üzerinde çalışan ve ayrıca JavaScript kaynak koduna derlenebilen, statik tipli bir programlama dilidir. ● Java ile uyumlu sözdizimi olmasa da, Kotlin Java kodu ile birlikte çalışmak üzere tasarlanmıştır. ● Kotlin, Apple'ın Swift diline de benzemektedir. Statik Tipli Programlama Dili : her değişken tipinin önceden belirtiliyor olmasıdır.
  • 11. Kotlin İle Gelen Yenilikler ● Data Class ● Top-level (package level) sınıflar ve fonksiyonlar ● var ve val kullanımı ● .equals() yerine == kullanımı ● get/set ön eklerinin kullanılmaması ● Tip kontrolü ve dönüşümleri (is ve as) ● Smart casts (akıllı dönüşümler) ● Safe (nullable) casting ● When Yapısı ● Extensions ● Delegates ● Sealed Sınıflar
  • 14. Android Klasör Yapısı ● src (kaynak kodlar) ● libs (android sdk'da bulunmayan kütüphanelerin jar dosyaları koyulur) ● res (uygulama ile ilgili tüm kaynak(resource)ların olduğu klasör) ○ drawable-* klasörleri (uygulamada kullanılan resim dosyaları bulunur) ● drawable-ldpi (low dpi yani düşük çözünürlüklü cihazlarda kullanılacak resimler) ● drawable-mdpi (mdpi dpi yani orta çözünürlüklü cihazlarda kullanılacak resimler) ● drawable-hdpi (high dpi yani yüksek çözünürlüklü cihazlarda kullanılacak resimler) ● drawable-xhpi (extra high dpi yani çok yüksek çözünürlüklü cihazlarda kullanılacak resimler) ■ layout (Ekranların (activity) tasarım yapısın olduğu xml dosyaları bulunur) ■ raw (mp3, video, pdf gibi dosyalar bulunur) ■ xml (anahtar-değer çiftleri şeklinde saklanan sabit değerler) ■ anim (animasyon xml dosyalarını barındırır) ■ menu (standart menü düğmesi ile açılan menüdeki maddeleri tanımlamak için kullanılır) ■ values ve values-* klasörleri (Uygulama içinden erişilen sabit değerleri tutan xml dosyaları. Örneğin mesajlar, başlık metinleri, renkler, style değerleri vb..) ● strings.xml dosyası (anahtar-değer çiftleri şeklinde saklanan sabit bilgiler) ● colors.xml dosyası (layout dosyalarında kullanılan renk tanımlarını içerir) ● styles.xml dosyası (ekranlarda kullanılan biçim tanımlarını içerir) ● dimens.xml dosyası (farklı boyutlar için tasarımları saklamak içindir. farklı values-* klasörleri içinde farklı özelliklerde tanımlanabilir) ● AndroidManifest.xml dosyası (uygulamanın ana activity'sin belirtildiği, uygulama izinlerin verildiği, genel ayarların tanımlandığı ana ayar dosyası)
  • 15. Intent, Context ve Activity Intent : ● Uygulama bileşenleri arasında veri alışverişini ve bilgi aktarımını sağlayan bir haberleşme nesnesidir. Context : ● Android sistemi tarafından soyut bir şekilde bize sunulan, uygulamamız hakkında global bilgiye sahip arayüzdür. ● Bir nevi uygulamamızın komponentlerinin kimliğidir diyebiliriz. Activity : ● Bir kullanıcı arayüzüne (UI) sahip bir ekranı temsil eder
  • 20. Android Resource Dosyaları <resources> <string name="app_name">StudyJam</string> </resources> <?xml version="1.0" encoding="utf-8"?> <resources> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> </resources> strings.xml colors.xml
  • 21. Kotlin’de Veri Tipleri var sayi1=53 val sayi2 =34.0 var sayi1:Int= 53 val sayi2:Float =34.0f var isim ="Muhammet ÇAĞATAY" var isim:String ="Muhammet ÇAĞATAY"
  • 22. Kotlin’de Arayüz Nesneleri Kullanma var btnMesaj:Button=findViewById(R.id.btnMesaj) var edtIsim:EditText=findViewById(R.id.edtIsim) var btnMesaj:Button?=null btnMesaj=findViewById(R.id.btnMesaj) var edtIsim:EditText?=null edtIsim=findViewById(R.id.edtIsim)
  • 23. Kotlin Nulable ve Non-Null ● Kotlin’de nullable için soru işareti (?) Kesinlikle Null gelmeyeceğini biliyoruz. ● non-null tanımlar için iki ünlem işareti (!!) kullanılır. Bekediğimiz değerin ne zaman dolu ne zaman boş geleceğini bilmiyoruz.
  • 24. Nesnelere Click Özelliği Ekleme var btnMesaj:Button?=null btnMesaj=findViewById(R.id.btnMesaj) btnMesaj?.setOnClickListener{ }
  • 25. Log Kullanımı Log.i("LOG_TAG","Bu bir bilgi (info) logu") Log.d("LOG_TAG","Bu bir debug logu") Log.e("LOG_TAG","Bu bir hata (error) logu") Log.w("LOG_TAG","Bu bir uyarı (warn) logu") Log.v("LOG_TAG","Bu bir ayrıntı (verbose) logu")
  • 27. Multi Click class MainActivity : AppCompatActivity() , View.OnClickListener var btn1:Button?=null var btn2:Button?=null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btn1=findViewById(R.id.btn1) btn1?.setOnClickListener(this) btn2=findViewById(R.id.btn2) btn2?.setOnClickListener(this) } override fun onClick(view: View) { }
  • 28. if Koşul Yapısı override fun onClick(view: View) { if(view.id==R.id.btn1) { Toast.makeText(applicationContext,"Btn1 tıklandı",Toast.LENGTH_SHORT).show() } else if(view.id==R.id.btn2) { Toast.makeText(applicationContext,"Btn2 tıklandı",Toast.LENGTH_SHORT).show() } }
  • 29. When Koşul Yapısı override fun onClick(view: View) { when(view.id){ R.id.btn1 -> { Toast.makeText(applicationContext,"Btn1 tıklandı",Toast.LENGTH_SHORT).show() } R.id.btn2 -> { Toast.makeText(applicationContext,"Btn2 tıklandı",Toast.LENGTH_SHORT).show() } } }
  • 30. Activiyler Arası Geçiş var ikinciEkran:Intent?=null btn1?.setOnClickListener{ ikinciEkran=Intent(this@MainActivity,SecondActivity::class.java) startActivity(ikinciEkran) }
  • 31. Metin Kutusundan Değer Alma var edtSayi:EditText?=null edtSayi=findViewById(R.id.edtSayi) var sayi = edtSayi?.text.toString().toInt()
  • 32. Android Lokaliazasyon ( Dil Desteği )
  • 33. CleanCode ( Temiz Kod ) Nedir? ● Kod yazarken takip edilen bir felsefedir. ● Kodunuzun tam ve mümkün olduğunca kusursuz olması gerektiği fikridir. ● İhtiyaç olandan daha fazla kodunuz olmamasıdır. ● Gereksiz hiçbir satır olmamalı. ● Kodlama yaparken yalnızca sorunu çözmek yerine, mümkün olduğunca verimli, okunabilir ve bakımı yapılabilir kodlama tarzıdır.
  • 35. Bir Yazılımın Oluşum Süreci ● Gereksinim Analizi ● Mimari Tasarımı ● UI Tasarımı ● Kodlama ve Birim Testi ● Entegrasyon Testleri ● Kabul Testleri ● Kabul ( Entegrasyon ) Şelale (Waterfall) Modeli :
  • 36. Çevik Metodolojiler ● Scrum ● Agile ● Kanban ● Nexus ...