Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Study Jam - Kotlin ile Temel Android Eğitimi

Android Study Jam - Kotlin ile Temel Android Eğitimi

Google DSC Karabük olarak düzenleyecek olduğumuz Android Study Jam etkinliğimizde Muhammet Çağatay Bey eğitmenimiz olacak!

Etkinlikte gerçek zamanlı uygulama yapmak isteyenlerin, etkinlik saatinden önce Android Studio’yu kurması gerekmektedir.

Android Studio ve Emülatör kurulumu için buraya tıklayabilirsiniz.

Program Akışı:

Hoş geldiniz
Muhammet Çağatay Kimdir?
Kotlin Nedir?
Agile ve Scrum Metotları
Temiz Kod (Clean Code)
Uygulama
Etkinlik Tarihi: 20 Aralık 2020 Pazar 17.00

Muhammet ÇAĞATAY

December 21, 2020
Tweet

More Decks by Muhammet ÇAĞATAY

Other Decks in Technology

Transcript

  1. 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.
  2. 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 )
  3. 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.
  4. 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.
  5. 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
  6. 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ı)
  7. 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
  8. 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
  9. 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"
  10. 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.
  11. 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")
  12. 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) { }
  13. 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() } }
  14. 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() } } }
  15. 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.
  16. 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 :