Android 7 Nougat Temel Eğitim Seti
4.3 (56 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,519 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Android 7 Nougat Temel Eğitim Seti to your Wishlist.

Add to Wishlist

Android 7 Nougat Temel Eğitim Seti

Android ile uygulama yazmanın temellerini, mantığını anlayarak örneklerle öğrenebileceğiniz eğitim seti...
4.3 (56 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,519 students enrolled
Created by Emre Altunbilek
Last updated 9/2017
Turkish
Price: Free
Includes:
  • 12 hours on-demand video
  • 2 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Android programlama temeli öğrenilip, basit uygulamalar geliştirebilecek
View Curriculum
Requirements
  • Temel Programlama Bilgisi
  • Temel Java Bilgisi
Description

Android ile uygulama geliştirmek istiyorsanız bu eğitim seti size temel yapıları ve kavramları, neyin nasıl ve neden kullanıldığının mantığını öğretecek.

Ezbere kod yazmak yerine java ve android konusunda derin bilgiler vererek konuları örneklerle anlatmaya çalıştım. Bu eğitim setinde Android nedir, android studioda ne ne işe yarar konularından başlayıp ileri seviye konuları örneklerle, mantığını kavrayarak öğreneceksiniz.

Bu set bundan sonra yayınlanacak eğitim setlerine temel olacak. O yüzden lütfen anlamadığınız yerleri sormaktan çekinmeyin. Bana sosyal medya üzerinden de ulaşabilirsiniz.

Herkese faydalı olması dileğiyle.

Not: Gerek görülürse bu eğitim seti altına yeni dersler koyabilirim. Lütfen temel eğitim setinde şu konu da olmalıydı diyeceğiniz konu başlıklarını bana belirtin... 

Teşekkürler

Who is the target audience?
  • Programlama ve android konusunda kendini geliştirmek isteyen tüm arkadaşlar
Compare to Other Mobile Apps Courses
Curriculum For This Course
50 Lectures
11:46:53
+
Eğitim Seti Giriş
9 Lectures 01:33:24

Bu dersimizde eğitim seti ve kendim hakkında biraz bilgi verip eğitim setimize giriş yapıyoruz. Umarım herkese faydalı olur.

Eğitim Seti ve Öğretmen Tanıtımı
03:41

Bu derste androidin ne olduğundan, piyasaya çıkmasından günümüze kadar nasıl geliştiğinden, tarihçesinden ve çıkan versiyonları hakkında genel bilgiler verdim.

Android Nedir?
05:43

Bu derste Android mimarisinden bahsettik. Android mimarisi bir kaç katmandan oluşmaktadır ve her katmanda nelerin olduğu hakkında genel bir bilgi verdim.

Android Mimarisi
07:49

Bu dersimizde JDK ve Android Studio kurulumlarını yaptım.

JDK ve Android Studio Kurulumu
10:43

Bu derste android studioyu ilk kez çalıştırdık ve hazır şablonlardan birini seçerek ilk projemizi oluşturmuş olduk. Bir sonraki derste bu uygulamayı emülatör üzerinde çalıştırıcaz

İlk Uygulama
11:34

Bu dersimizde sanal bir cihaz oluşturup uygulamamızı nasıl test edeceğimizden bahsettim.

Emülatör Kurulumu
08:38

Bu dersimizde Android işletim sistemli telefonumuzda uygulamalarımızı nasıl test ederiz o konuyu işledim.

Bu videoda Samsung S6 model cihaz kullanılmıştır. Siz kendi telefon modelinize göre araştırma yaparsanız daha verimli olur. Çünkü modeller ve markalar arasında farklılıklar olabiliyor.

Gerçek Cihazda Test
05:25

Bu dersimizde hızlı bir emülatör olan genymotion kurulumundan bahsettim.

Genymotion windows 10 ile sorunsuz çalışmaktadır. Sorun yaşayan arkadaşlar virtual box sürümlerini güncelleyebilir ya da genymotion sitesindeki ilgili dökümanı bulup oradaki adımları izleyebilir.

Genymotion Kurulumu
13:02

Bu derste proje mimarisinden, klasörlerden ve gradle inşa sisteminin ne olduğundan bahsettim.

Bir android projesi oluşturduğumuzda karşımıza gelen ilk ekranlardaki her satır kodun ne işe yaradığından ve android projesinde hangi dosyaların olduğunu anlatmaya çalıştım

Projeye Genel bakış
26:49
+
Genel Kavramlar
7 Lectures 01:32:41

Bu derste activity’nin ne olduğundan ve ilgili methodlarından bahsettim.

package emrealtunbilek.com.activitylifecycle;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e("LIFECYCLE", "oncreate çalıştırıldı");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.e("LIFECYCLE", "onStart çalıştırıldı");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e("LIFECYCLE", "onResume çalıştırıldı");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e("LIFECYCLE", "onPause çalıştırıldı");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e("LIFECYCLE", "onStop çalıştırıldı");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e("LIFECYCLE", "onRestart çalıştırıldı");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e("LIFECYCLE", "onDestroy çalıştırıldı");
    }

    public void calistir(View v){
        if(v.getId()==R.id.button1){
            finish();
        }

    }
}


Activity Yaşam Döngüsü
08:46

Bu derste androidde butonların nasıl kullanıldığından ve buton davranışlarını ele alacak farklı methodlardan bahsettim.

Butonlar ve setOnClickListener
14:56

Bu dersimizde intent kavramından ve bir çeşiti olan explicit intenten bahsedip, küçük bir örnek yaptım.

Intent Kavramı ve Explicit Intent
11:09

Bu derste implicit intentin ne olduğundan, explicit intent ile arasındaki farklardan bahsedip, iki tane örnek yaptım.

Implicit Intent ve Örnekler
13:50

Bu derste implicit intent kullanarak bir email gönderme uygulaması yaptım. Implicit intentin kullanımıyla ilgili örnekler yapmaya devam ediyoruz

Mail Gönderme Uygulaması
11:08

Bu derste android implicit intent konusuna devam ediyoruz. İndirdiğimiz veya telefonumuzda var olan resimlere nasıl ulasıp bunları nasıl göndereceğimiz konularından bahsettik.

Ayrıca sdk değişimleri ile ilgili de bilgi verdim. API 23den sonra uygulamada permission gereken işlemler yapılacaksa bunu çalışma anında kullanıcıdan istememiz gerekiyor. Videoda yanlış bir açıklama yapmışım. Burada çıkan sorun tamamen izin verilmediği ile ilgilidir.

Bu konu ilerleyen videolarda detaylı bir şekilde anlatılacaktır. Ama kaynak kodlarına bu uygulamanın çalışan versiyonunu koyuyorum. Dediğim gibi ilerleyen videolarda Android runtime permission konusu detaylı bir şekilde anlatılacaktır.

Resim Gönderme
19:22

Kişisel Toast Mesaj ve LayoutInflater
13:30
+
Temel Layout Kavramları
7 Lectures 01:45:08

Artık androidde tasarım yaparken kullanacağımız layoutları inceliyoruz.

Viewgrouplar ve viewlara geçmeden önce herzaman bilmemiz gereken genel bilgilerden bahsettim.

Layoutlarla ilgili Genel Bilgiler
07:03

Bu derste layout tiplerinden biri olan linear layoutun ne olduğundan ve bu layout’ta sıkça kullanılacak layout weight konusundan bahsettim.

Linear Layout ve Layout Weight
15:06

Bu derste Layout Gravity ve Android Gravity kavramlarından ve aralarındaki farklardan bahsettim.

Layout Gravity ve Android Gravity
08:14

Bu derste dinamik olarka yani çalışma anında java kodu ile layout ve viewlar oluşturdum.

Çok tercih edilen bir uygulama olmasa da bir xmldeki tüm öğeleri java ile oluşturabilir ve çalısma anında yaratılmasını sağlayabilirsiniz.

Java ile Linear Layout Oluşturmak
09:06

Bu dersimizde relative layout ile ilgili kullanabileceğimiz özelliklerden bahsettim ve basit bir örnek yaptım.

Relative Layout ve Özellikleri
19:19

Bu dersimizde relative layout ile yaklaşık 1 dakikada tanımlayabileceğimiz bir layout dosyasını java kodu ile dinamik bir şekilde oluşturdum. Yaklaşık 40 dakika sürdü:)

Bu dersi android dersi olarak değil de Java da bir soruna nasıl yaklaşılır, problem parçalanarak nasıl çözülür bunla ilgili olarak dinlemenizi tavsiye ederim.

Java ile Relative Layout Tanımlama
38:33

FrameLayout ve Örnek Uygulama
07:47
+
Temel View Öğeleri
5 Lectures 01:15:12

Bu derste androiddeki text öğesinin özelliklerinden, kullanılabilecek yapılarından bahsettim.

Yazdığımız bir yazıya gölge vermek için kullanılacak xml özelliklerini anlatmaya çalıştım.

Bunları uygulamak için kullanılacak XML özellikleri şu şekilde ve ilgili textviewin içine yazıyoruz.

android:shadowColor=”@color/colorAccent” 

android:shadowRadius=”5″ 

android:shadowDx=”20″ 

android:shadowDy=”10″

Android Text ve Gölgelendirme
13:22

Bu derste android’de tanımlı olan fontlar yerine kendi belirlediğimiz fontu uygulamamızda nasıl kullanırız, nasıl tanımlarız onu anlattım.

İndirdiğimiz ve kullanmak istediğimiz font dosyasını res klasörü içinde oluşturduğumuz assets klasörünün içine kopyalıyoruz.

t=(Textview) findViewById(R.id.kisiseltextview);

Typeface kisiselFont=Typeface.createFromAsset(getAssets(), "font_adi.ttf");
t.setTypeface(kisiselFont);


Kişisel Font Kullanımı
09:11

Bu derste kullanıcının veri girmesini sağlayan Edittext ve özelliklerinden bahsettim.

Veri girişinde bazı kısıtlamalar ve istediğimiz formatta veri almak için kullanılabilecek Textwatcher interface kullanımı ile ilgili olarak basit bir örnek yaptım.

Edittext ve Textwatcher Kullanımı
25:19

Bu derste view öğelerinden checkbox ve toggle button’un ne olduğundan, ilgili methodlarından ve listenerlarından bahsedip, bunlarla ilgili örnekler yaptım.

Checkbox ve Toggle Button Kullanımı
14:09

Spinner Örneği ve Setonitemselectedlistener
13:11
+
Adapter, Listview, LayoutInflater
12 Lectures 03:06:16

Android deki adapter kavramından ve çeşitlerinden bahsettim.

Bu kavram bundan sonra işlenecek konular için temel bir kavram olduğundan lütfen anlamadığınız yerleri sorun.

Android Adapter Kavramı
06:49

Bu derste listview ile ilgili bilgiler verdim, sonrasında da listview kullanımını anlatan basit bir örnek yaptım.

Listview ve OnItemClickListener
17:15

Bu derste ilgili listviewımızı normal Activtiy sınıfı yerine listeler için özel bir sınıf olan ListActivity sınıfını kullanarak gerçekleştirdik.

Ayrıca listactivity ile normal activity sınıfları arasındaki farklardan bahsettim.

ListActivity Kullanımı
10:56

Bu derste kendi oluşturduğumuz bir layout dosyasını listview’da bir satır olarak nasıl gösteririrz ondan bahsettim.

Listview örnekleri yapmaya devam ediyoruz ama farketmişsinizdir her bir örnekte listview öğelerini kendi isteklerimize göre kişiselleştirip geliştiriyoruz.

Her bir ders bir sonraki ders için temel oluşturacağı için lütfen takıldığınız yerleri sormaktan çekinmeyin.

Burada öncelikle veri kaynağımızı belirtiyoruz. Bu örneklte veriler mevsim bilgilerini içeren bir stirng dizi… Daha sonra listview’da her bir satırın nasıl gözükeceğini belli eden bir layout oluşturmustuk. Bu layoutu Arrayadapter’a parametre olarak yolluyoruz.

Bunun yanında bu layout’da veri kaynağından okunacak verinin nereye yazılacağını belirtiyoruz. Bizim örneğimizde bu bir textview olduğundan onun id’sini verdik ve son olarak da adapterin kullanacağı veri kaynağı olan string dizimizi yolluyoruz.

Son olarak oluşturduğumuz adapter nesnesini ilgili listemize setAdapter ile verdikten sonra uygulamamız çalışıyor…

Kendi Layoutumuzla Listview Oluşturmak
10:33

Bu derste daha önceden de bahsettiğimiz LayoutInflater sınıfını adım adım öğretmeye çalıştım.

Bu konu kişisel adaptör kullanarak listview oluştururken çok işimize yaracağı için önemli. Lütfen anlamadığınız yerleri sormaktan çekinmeyin.

Layoutinflater sınıfı temel olarak XML objeleri Java sınıflarına çevirir. Çok zaman alan ve kaynak tüketen bir işlemdir. XML view’ları alır, ilgili java objeleri yaratılır, bunlara ilgili özellikler eklenir ve tüm bu işlemler her bir eleman için recursive olarak yapılır.

Layoutinflater’dan nesne üretirken getSystemService veya getLayoutInflater metholarından faydalanırız.

inflate() methodu geriye bir view dönderir. Bu methodun ilk parametresine javaya çevrilmesini istediğimiz layoutu, ikinci parametresine bu layoutu eklemek istediğimiz layout öğesinin ID’sini, üçüncü parametresine de 2. parametre olarak verdiğimiz ve inflate edilen viewın parent’ı olan view’e eklenip eklenmeyeceği bilgisini true ya da false olarak veririz.

İlgili tüm methodların anlatıldığı bu video bundan sonraki anlatılacak çoğu konu için önemli, yüzden lütfen anlamadığınız yerleri sorun.

LayoutInflater Detaylı Anlatım 1. Bölüm
17:31

Bu derste LayoutInflater sınıfını incelemeye devam ediyoruz.

Anlamadıysanız lütfen bundan sonraki videolara şans verin, çünkü yapacağımız örnekte bu sınıfı kullanacağız.

Örnekte kullandığımızda çok daha mantıklı gelecektir ve tam olarak nasıl çalıştığını ve niye kullandığımızı öğrenmiş olacaksınız.

LayoutInflater Detaylı Anlatım 2. Bölüm
10:49

Bu derste güzel bir uygulama yaparak konuya hakim oluyoruz.

Bu uygulamayı yapmak için ilgili dataları hazırladıktan sonra listviewda göstermek istediğimiz layoutu tanımlıyoruz.

Umarım konular anlaşılıyordur, takıldığınız yerleri sormaktan çekinmeyin lütfen

Custom ArrayAdapter ve Örnek Uygulama
13:41

Bu derste örneğimize devam ettik.

Kişisel Array adapterımızı tanımladık ve listviewımızın başarılı bir şekilde çalışmasını sağladık.

Custom ArrayAdapter ve Örnek Uygulama 2. Bölüm
23:41

Listviewımızı oluşturduk ama şuan için performans sorunları yaşanmakta.

Yapacağımız optimizasyonlarla daha hızlı ve efektif çalışan bir listview’a sahip olabiliriz.

Bunlardan ilki olan Object recycling yani nesnelerin tekrar kullanılmasını anlattığım bu derste, listview performansımız %150 olarak artmış olacak.

Evet yazılan 2 satır kod ve düzenlemeyle böyle bir performans artışı sağlanabilmekte.

ListView Optimizasyonu (Object Recycling)
21:27

Listviewımızın performansını arttırmaya devam ediyoruz.

Yazdığımız bir yer tutucu sınıfı ile findviewbyid methodunun sadece yeni üyeler için çalışmasını sağladık ve böylece performans kazancımızı %175 olacak şekilde artmış oldu.

Umarım anlaşılıyordur, lütfen takıldığınız yerleri sormaktan çekinmeyin.

Listview Optimization (ViewHolder Kullanımı)
14:33

Bu dersimizde adapter çeşitlerinden biri olan Baseadapter kullanarak daha önce Arrayadapter ile yaptığımız Bayraklar uygulamasını yapmaya çalışıcaz.

BaseAdapter ile Custom Listview 1. Bölüm
19:26

Base Adapter kullanarak custom listviewımızı oluşturduğumuz bu derste, Java ile nesneye yönelik programlama bilgilerimizi sonuna kadar kullandık.

Anlamadığınız yerleri sorabilir veya Temel java eğitim setine göz atabilirsiniz.

BaseAdapter ile Custom Listview 2. Bölüm
19:35
+
Gridview Kullanımı
8 Lectures 02:33:08

Bu derste öncelikle olarak Gridviewın ne olduğundan ve daha sonra da nasıl kullanacağımızı anlatmaya çalıştım.

Listview eğitimlerini anladıysanız gridview size çok kolay gelecektir ve sadece liste öğelerinizi farklı bir şekilde göstermek dışında bir farkı olmadığını göreceksiniz.

Gridview ve Örnek Uygulama 1. Bölüm
11:23

Bu derste gridview örneğimize devam ediyoruz.

Gridview için bir base adapter tanımladık ve bu sayede bayrak resimlerimiz gridview’a yerleşti.

Bir sonraki derste adapter sınıfımızı düzenleyip, daha etkili çalışması için optimizasyon işlemlerini yapıcaz.

Gridview ve Örnek Uygulama 2. Bölüm
20:51

Bu derste gridview’ın optimizasyon işlemlerini yapıyoruz.

Listview örneğinde yaptığımız işlemlerin aynısını gridview için kullandığımız adapter sınıfında uygulayıp, gridview’ın daha etkili bir şekilde çalışmasını sağlıyoruz.

Gridview Optimizasyon İşlemleri
11:31

Bu dersimizde gridview örneğimize devam ediyoruz.

Gridview üyelerine tıkladığımızda ilgili bayrak resmi ve başlığını dialog olarak karşımıza çıkacak bir activity ile kullanıcıya göstericez.

Bu sayede hem dialog kullanmayı, hem activity’den activiye veri göndermeyi hem de gridview’ın onitemclicklistener methodunun kullanımını görmüş olacağız.

Gridview Onitemclicklistener ve Dialog Activity
18:40

Bu derste çalışma anında uygulamalarımızda kullanıcıdan izin isteme işlemlerini nasıl yapacağımızdan bahsetmeye çalışıcam.

Api 23’ten sonra gelen bu kavramdan dolayı artık izinleri manifeste tanımlamak yetmiyor ve izin istenilen özellik için kullanıcıdan izin istememiz gerekiyor.


İlk başlarda karmaşık gelebilir, o yüzden adım adım ve mantığını anlatarak konuyu anlatmaya çalıştım, umarım faydalı olur.

Yazılan kodları paylaşmıyoruz, ilerleyen derslerde daha etkili bir methodtan bahsedicem ve eğer izin alma işlemi yapmamız gerekiyorsa bundan sonra o yöntemi kullanıcaz…



Runtime Permission 1. Bölüm
08:06

Bu derste androidde çalışma anında izin isteme ile ilgili sıfırdan bir örnek yapıcaz.

Yapacağımız uygulamada butona tıklanıldığında external storage’a bir klasör yaratma işlemi yapıcaz. Bunun için manifest dosyasında bu izni belirtiyoruz.

Api 23’den önceki cihazlarda uygulama kurulurken istenilen bu izin, api 23 ve sonrasında ise çalışma anında kullanıcıdan isteniyor.

Bir sonraki derste bunu çok daha kolay bir şekilde yapmak için bir sınıf oluşturucaz ve ilgili izinleri bu sınıf yardımıyla, MainActivity’i koda boğmadan yapıcaz. Bu dersleri izleyip olayın mantığını anlarsanız bir sonraki video sizin için çok kolay bir ders olacak.

Runtime Permission 2. Bölüm
25:38

Bu derste runtime permission için pratik bir yöntemi anlatıcam.

Mainactivtiy'i kodla doldurmadan oluşturduğumuz izinleri ele alan bir sınıf ile basit bir şekilde uygulamamız için izin alabileceğiz.

Oluşturduğumuz sınıfı uygulamalarınızda kolay bir şekilde kullanabilir ve gerekli izin isteme işlemlerini yapabilirsiniz.

Runtime Permission Pratik Yöntem
40:15

Screen Orientation Değişme Durumu
16:44
+
Bonus
2 Lectures 01:04
Bayram Kutlaması ve Indirimi
00:34

Yeni JAVA Kursu Yayında
00:30
About the Instructor
Emre Altunbilek
4.4 Average rating
566 Reviews
7,078 Students
7 Courses
Engineer

Ben Emre Altunbilek. 1988 Bursa doğumluyum. Ege Üniversitesi Bilgisayar Mühendisliği bölümünden 2012 yılında mezun oldum ve sonrasında çalışma hayatına atıldım.

Bir kamu kuruluşunda bilgi işlem merkezinde çalışmaktayım. İş yerinde Database Administration ,Yedekleme Sistemlerinden sorumluyum.

Php, mysql, html5, css, jquery ve laravel frameworku konusunda bilgi sahibiyim.

Android konusunda çalışmalarım devam etmektedir. Burda ve bazı sosyal medya sitelerinde eğitim setlerim mevcut ve daha fazlasını sizlerle paylaşmak için sabırsızlanıyorum. Özellikle java ve android ile ilgili yeni eğitim setlerini kısa süre içinde paylaşacağım.




.