Androıd Studıo da Nedir?

Android-Studio_logo

Geçen yazımızda Android uygulama geliştirmek için Android Studio kullanacağımızdan bahsetmiştik. Bir önceki yazıya buraya tıklayarak ulaşabilirsiniz.

Android Studio’ya İlk Bakış:

Son kullanıcı olarak bakarsak (bir ürün kullandığımız için son kullanıcı oluyoruz) tasarım olarak incelediğimizde, Android Studio’nun diğer Android IDE’lerinin önünde olduğunu söyleyebilirim. Zira renk düzeni, teması, simgeler ile tasarımı güçlendirilmiştir.

Intellisense’i çok güçlü, fakat bazen takılabiliyor. Bu durumda kapatıp açmanız gerekebilir. Bir interface’i implemenet ettiğinizde, interface’in methodları otomatik olarak eklenmiyor. Normalde “Alt+Enter” kominasyonuyla açılan hata çözüm önerisi intellisense’i, fonksiyonları eklemeyi önermiyor. Onun yerine class tanımlaması yaptğınız, yani dosyanın başına gidip satır sayının bulunduğu tarafta hata baloncuğu çıkmasını beklemeniz gerekir.

Gradle kullandığından dolayı, kütüphane ekleme, dependency işlemleri çok kolay. Tek bir satır ile bir kütüphane ekleyip, kütüphanenin dosyasını(.jar) kendisinin indirmesini sağlayabiliyorsunuz.

JetBrains IntelliJ Idea üzerine kurulmuş bir yapı olduğu için, Intejli Idea’da bulunan güçlü refactoring ve  intention actions özelliği gibi yazılımcının işini kolaylaştıracak yanları güçlüdür.

Google tarafından direkt olarak desteklenmektedir, bundan dolayı gelişmiş bir IDE olma yolunda sağlam adımlarla ilerlemektedir.

Özellikle Android SDK  bağlamında konuşmak gerekirse, SDK yönetimi ve diğer işlemler (AVD vb.) işlemler çok güzel dizayn edilmiş ve çok iyi yönetilmiştir. Kullanılan Android SDK’nin güncelliği yitirmesi durumunda yazılımcıyı haberdar etmesi artı bir özellik katmıştır.

Debugger modulünün kullanımı çok kolay. Değişkenlerin içlerindeki değerler ve debug işleminin yapıldığı satırdaki değerler direkt ayrı gösteriliyor. Örneğin bir if içinde (a.lenght ==b[0].length) gibi bir kontrol var ise ayrı alanlarda “a.length” ve “b[0].length” değerlerini göstermektedir. Bu da özellikle uzun kodlarda işi çok kolaylaştırmaktadır.

Cihazın içinde oluşan bütün logcat‘ler ve hatalar debugger attach edildiği takdirde gözüküyor.

Bu kadar olumlu yanlarını saydık ama beta olmasından kaynaklandığını umduğum bariz olumsuzlukları da bulunmaktadır.

Grandle bazen hata verebiliyor ve eklediğiniz kütüphane bir anda eklenmemiş gibi gözüküp derlerken hata alabilirsiniz. Bu durumda tek çare bilgisayarcı atasözünü uygulamak. Yeniden başlat düzelir.

Debug moda geçtiğinizde bazen uygulamayı çok yavaş deploy edebiliyor veya uygulamanın çok yavaş çalışmasına neden olabiliyor. Bir debugger attach etmişken yanlışlıkla ikinciyi de attach etmeyi denerseniz, debugger hata veriyor. Bu durumda emülatorü kapatıp açmak veya cihazın bağlantısı koparıp yeniden takmak çözüm olabilir.

Ram kullanımı büyük sıkıntı. Özellikle bilgisayarınız uzunca süre kapatmadan beklemeye alarak kullananlardan iseniz Android Studio çok büyük ram miktarları ile çalışmaya başlayabiliyor ve ram sıkıntısı olmasa bile bilgisayarı fareyinin takılmasına neden olacak ölçüde kasabiliyor. Tek çözüm IDE’yi yeniden başlatmak.

Özellikle support library‘lerde designer hata veriyor. Hatayı aşmanın yolunu bulabilmiş değilim.

Fakat içtenlikle belirtebilirim, Android Studio beta olduğu halde ben proje kaybı veya nedensiz bir anda kapanma tarzı hatalarla karşılaşmadım. Ve yine içtenlikle söylüyebilirim ki Java’nın kanayan yarası IDE’lerdir. Android Studio bu kanayan yaraya merhem olabilir fakat ısrarla karşılaştırmamı isteyenlere cevap olarak Android Studio şu anlık bir Visual Studio değil, bunu belirtmek gerekir.

 

İlk Projemiz – Proje Oluşturma

Klasik bir ilk proje olan “Hello” uygulaması ile başlıyoruz. Proje oluşturmayı anlattıktan sonra ekranımızdaki neyin ne işe yaradığından bahsedeceğim.

1-) Android Studio’yu açın. Karşınıza aşağıdaki gibi bir ekran çıkacak. New Project‘i seçiyoruz.

android-studio-1

2-) Uygulamamızın adını Application Name alanına, takma ismimizi veya Play Store’da kullanmak istediğimiz ismimizi Company Domain alanına yazıyoruz. Sonunda “.com” kullanmanız dahilinde paket adı “com.<appDomain>.<appName>” olarak otomatik olarak ayarlanacaktır. İsterseniz paket adını Edit yazısına basarak düzenleyebilirsiniz. Fakat paket adınızın Play Store’da kolay bulunabilir olmanız için kullanacağınız takma ismi içermesine dikkat edin. Next‘e basıp ilerleyin.

android-studio-2

3-) Platformaları seçme zamanı. Hangi platformalara uygulama geliştireceğinizi seçin. Burada dikkat edilmesi gereken sey, seçilen minimum SDK’nın kapsama oranı. Basit bit uygulama için yüksek SDK seçmeniz takdirde uygulamanız düşük bir kitleye hitap etmektedir. Mümkün olduğunca SDK’yı minimum tutup Support Library’lerden faydalanmakta yarar vardır. Seçimden sonra Next‘e basıp ilerliyoruz.

android-studio-3

4-) Bu örnekte telefon ve tableti seçtik. Burada seçeceğimiz tip, her programın paradigması olan main yerine geçecek ve uygulamamız ilk açıldığında bizi karşılayacak ekran componentini belirleyecektir, bir nevi. Bu örnekte Blank Activity seçip Next‘e basıp ilerliyoruz.

android-studio-4

5-) Seçtiğimiz Activity’mize isim vermemizi istiyor. Bunun ilk açılışta çalışacak Main Activity olduğunu hatırlamamızı sağlayacak bir isim veriyoruz ve Finish’e basıyoruz.

android-studio-5

6-) Android Studio, şu an seçtiğimiz değerlere uygun proje dosyamızı ve projeye bağlı GradleManifest gibi dosyaları türetiyor. Bütün bu dosyaları ne işe yaradığını ileride anlatacağım.

android-studio-6

7-) Blank Activity ile bir uygulama açtığımızda karşımıza bu ekran gelecektir. Bundan sonrası parmaklara kuvvet diyebiliriz. Fakat elimizi koda bulaştırmadan önce biraz neyin, ne olduğunu inceleyelim.

android-studio-7

 

Toolbar 

1) Synchronize: Proje dosyaları üzerinde Android Studio üzerinden değil başka bir program yardımıyla oynamış veya projenizde kullanmak üzere bir dosya eklemişseniz ve Android Studio kendisi senkronize etmemişse (otomatik senkronize etmektedir) senkronize edilmesini sağlar.

2) Find: Aktif olan pencerede yani dosyada arama yapmanız sağlar.

3) Replace: Aktif olan pencerede dosya boyunca aradığınız değeri başka değerle değiştirmenizi sağlar.

4) Make Project: Kısaca derleme diyebiliriz.

5) Select Configuration: Build, Debug ve Run işlemlerinde IDE’nin nasıl davranacağını belirleyen konfigurasyon ayarlarını yapmanızı sağlar.

6) Run App: Uygulamanın Debugger eklenmeden telefona-emulatore deploy edilmesini sağlar.

7) Debug App: Uygulamanın Debug modunda telefona-emulatöre deploy edilmesini sağlar.

8) Attach Debugger: Telefon – emulator üzerinde çalışan kendi uygulamamıza veya başka herhangi bir uygulamaya debugger eklememizi sağlar.

9) Settings: Android Studio’nun ayarlarına ulaşmamızı sağlar.

10) Project Structure: Android SDK, JDK ve diğer bileşenlerin ayarlarının yapıldığı, bilgisayar üzerindeki yerlerinin değiştirilebildiği yerdir.

11) Sync Project with Gradle Files: Projenin gradle dosyalarına uygun olarak senkronize edilmesini sağlar. Bu şu anlama gelir gradle dosyası üzerinde oynama yaptğımızda Android Studio kendisi senkronize etmezse bu butona basıp senkronize edebiliriz.  Gradle’nin ne olduğu aşağıda açıklanacaktır.

12) AVD Manager: Android SDK ile yüklenen Android Virtual Device Manager‘i kısayoldan başlatabilmemizi sağlar. AVD, SDK Manager aracılığıyla yüklediğimiz cihaz imajlarıyla yeni bir sanal cihaz oluşturmamızı ve uygulamalarımız telefona gerek duymadan bilgisayardan çalıştırabilmemizi sağlar.

13) SDK Manager: Adından anlaşıldığı gibi Android SDK ile ilgili güncellemeleri denetleyebileceğimiz, yeni API’ları indirebileceğimiz yerdir.

14) Android Device Monitor: Çalışan cihazların durumunu görebileceğimiz yerdir.

15) Help TopicsIntellij IDEA hakkında yardım başlıklarını görebileceğimiz siteyi açar.

16) Search: Her yerde arama yapmamızı sağlar. Yani bütün proje içindeki dosyalarda arama yapabilmemize imkan tanır.

 

Project Tab

android-studio-project-tab

 

1) src: Projemize ait source dosyalarımızı içeren klasördür.

2) java:  Java paketlerimizi (app packages) içeren klasördür.

3) package name: Projemizi oluştururken kullandığımız isimle üretilen paket ismidir. Uygulama kullanılacak classları barındırır.

4) res: Uygulama kullanılan kaynakları(resources) içeren klasördür. Resimler, metinler, videolar, layoutlar hepsi bu klasörde bulunur.

5) drawable-xxx: Uygulamada kullanılan simgeleri, navigation drawer resimlerini vs. içeren klasördür. her biri farklı boyutlarda  aynı dosyaları içerir.

6) layout: Uygulamamızda kullanılan layout dosyalarımızı barındıran klasördür. Activitylerimizin, Fragmentlarımızın, templatelerimizin vs. layout dosyaları burada bulunmalıdır. Bazı tür layout dosyaları için bir zorunluluk yoktur fakat bulunması proje dosyamıza sonradan baktığımızda daha rahat anlamamıza yardımcı olur.

7) menu: Uygulamamızda kullandığımız menülerimizin layout dosyalarını barındırır. her activity için ayrı bir meü dosyası bulunur. Bu da her activity’de farklı menüler göstermemize yardımcı olur.

8) values: Uygulamamızda kullandığımız metinleri, sitil dosyalarını, kod okunurluğunu artırmak için kullanacağımız renk kodlarını barındırır. Value dosyasında kullandığımız xml attribute tagine göre, bütün resource dosyaları gibi “R” yapısının içerisinde indekslenir. R’nin ne olduğu aşağıda açıklanacaktır.

9) AndroidManifest.xml: Uygulamamızın manifest dosyasıdır. Manifest dosyası aracılığıyla Android’e bu uygulama nerden başlayacak, hangi sistem servislerini kullanacak, hangi yetkileri talep etmekte, hangi activityleri barındıracak gibi bilgileri veririz.

10) build.gradle: Derleme işlemine ait Gradle dosyasıdır. Buradaki minSdkVersion ve targetSdkVersion daha önce AndroidManifest dosyasında bulunan değerlerin aynısıdır. compileSdkVersion da projemizin compile etmek istediğin SDK versiyonunu belirtir. Gradle’nin ne olduğunu aşağıda açıklanacaktır.

11) proguard-rules.pro: Proguard kurallarının olduğu dosyadır. ProGuard’ın ne olduğu aşağıda açıklanacaktır.

 

R Nedir?

R yapısı, resource dosyasında bulunan bütün dosyaları indeksleyerek uygulama içerisinde direkt olarak “R.string.xxx” veya “R.layout.yyy” biçiminde ulaşabilmemizi sağlayan classtır.

 

Gradle Nedir?

Android uygulama geliştirme işlemini otomatikleştiren yani otomatize eden bir derleme sistemidir. Android Studio’nun daha işlevsel çalışmasına yardımcı olur.

Gradle build,debug ve release işlemlerini daha hızlandırmakta ve kolaylaştırmaktadır. eklenen kütüphaneyi bulup, kütüphane dosyasını direk olarak indirip projeye kendisi ekler, proje klasöründe değişiklik yapıldığında bu değişikliği otomatik olarak projeye yansıtır,  Gradle Android uygulaması geliştirme aşamalarını otomatize eden bir build sistemidir. Gradle test, debug ve release işlemlerini daha kolay hale getirmektedir. Android için tercih edilmesinin sebebi de içinde xml, resim ve font dosyaları gibi Android projesinde gereken diğer bileşenleri barındıran paketlerin oluşturulabilmesidir. Biz kod yazarken Grandle arkada projeyi sürekli kontrol etmektedir.

 

ProGuard Nedir?

ProGuard’ın iki amacı vardır. Bunların birincisi Java Class’ları compile edildikten sonra kolay biçimde decompile edilebilmektedir. Decompile edildiğinde, java classları değişken isimlerinde stringlere kadar ortaya çıkıyor. ProGuard, değişken isimlerini anlamsızlaştırıp, stringleri ve diğer tipteki değişkenleri, sabit olarak içlerine atanan değeri, örneğin sabit olarak bir API Key değişken gibi, belirli bir kriptolama işlemine tabi tutup kodlama işlemini yapar. Kodun içine anlamsız instruction’lar ekler. Yani kısaca java classları üzerine yapılan obfuscate işlemini engeller,zorlaştırır.  Classların yapısını bozmadan boyutlarını küçültmekle de sorumludur. Daha detaylı bilgi için şu sayfayı ziyaret edebilirsiniz. Android Developers – ProGuard

Bu yazımızda sizlere Android Studio’yu basitçe tanıttım. Android Studio’yu daha detaylı öğrenmek ve kısayollar ve ipuçları hakkında bilgi edinmek için Android Developers altında şu sayfayı ziyaret edebilirsiniz.  Android Developers : Android Studio

Bir sonraki yazımızda elimizi koda bulaştırıp activitylerle uğraşıp basit kodlar yazacağız. Her zamanki gibi takipte kalın 🙂

Reklamlar

Androıd Studıo da Nedir?” üzerine 7 yorum

  1. Geri bildirim: Android – Android Mimarisi, Activity ve Fragment! | Metehan Toksoy
  2. Ben liseden henüz mezun oldum. Visual studio’da 2 projem var. Biri okullar arası konuşma diğeri ise alışveriş sitesi. Şimdi de Android Studio’ya geçip kendimi geliştirmek istiyorum. Açıkcası bilmediğim çok terim var ama araştırıyorum. Anlatımınız için çok teşekkür ederim. Takip te kalacağım.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s