22 Şubat 2015 Pazar

İlk Android Uygulamamızı Yapıp Telefonda Çalıştıralım


Bu yazımda android'te basit bir hesap makinesini nasıl yapacağımızı ve yaptığımız bu uygulamayı telefonumuza yükleyip nasıl çalıştıracağımızı anlatacağım. Daha önce hiç denemediyseniz öncelikle geliştirme ortamını bilgisayarınıza kurmalısınız. Bunun için hemen bu adrese girerek Android SDK'i indirin ve Eclipse'sinize entegre edin. Bunun nasıl yapıldığını yazmayacağım (çünkü unuttum ve şimdi hatırlamak için zaman harcamak istemiyorum) ama bu videoyu izleyerek kolayca yapabilirsiniz. Yada bu adresten Android Studio'yu kurarak herhangi bir entegrasyon yapmadan doğrudan uygulama geliştirmeye başlayabilirsiniz. Ama baştan söyleyeyim bu örnek için ben emektar Eclipse'imi kullanacağım. Daha sonraki yazılarımda Android Studio'ya geçersem orada da devam edebilirim.

Başlamadan önce söylemeliyim ki aşağıda yazdığım kodları direk verdim ve yeri geldiğinde bir kaç kısa açıklamada yaptım. Kodlar sizi korkutmasın. Bu bir ders değil o yüzden kodlar üzerinde fazla durmayın. Eğer java'ya aşina değilseniz kodları anlamakta güçlük çekebilirsiniz bu yüzden kodlara çok takılmayın. Burada adım adım bir proje nasıl oluşturulur, test edilir ve telefona yüklenir bunları göreceksiniz. Android programlamayı öğrenmek istiyorsanız java ile başlamanızı tavsiye ederim.

Öyleyse hemem Eclipse'i açıp File>New>Android Application Project diyerek yeni bir proje oluşturalım.


İlk pencerede uygulamanıza bir isim verin. Sonra next diyerek ilerleyin ve son pencerede Finish butonuna tıklayarak projenizi açın.




Sol paneldeki Package Explorer'dan projenizi bulup içersinden
res>layout>activity_main.xml dizininden activity_main_xml dosyasını açın. 


Bu dosya uygulamamızın görsel düzenini tasarlamamızı sağlar. Eclipse penceresi altında Graphical Layout sekmesine geçerseniz bu işi kod yazmadan da yapabilirsiniz. Tek yapmanız gereken soldan kullanmak istediğiniz bileşeni uygulamanızın üstüne taşımak. Çoğu profesyonal programcı activity_main.xml kullanmayı tercih eder ki bizde ilerki derslerde bunu yapacağız. Çünkü xml kodları ile çok daha esnek bir tasarım yapabiliriz. 


Şimdi aşağıdaki basit arayüzü oluşturacağız. Bunun için soldaki paletten 3 tane TextView (Number1, Number2, Result), 3 tane EditText ve 4 tanede Buton (+,-,*,/) ekleyin.


Eklediğiniz bu bileşenleri sağ taraftaki structure menüsünden görebilir ve onları seçerek bir takım özelliklerini aşağıda ayarlayabilirsiniz. Şimdilik sadece TextView'lerin ve Buton'ların text özelliklerini değiştirerek resimdeki haline getirelim.


Eğer kendiniz Graphical Layout ile yapamadıysanız activity_main.xml dosyasını açıp aşağıdaki kodu içerisine kopyalayın. Aynı görünüşü elde edeceksiniz.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="25dp"
        android:layout_marginTop="20dp"
        android:text="Number1 :" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="16dp"
        android:text="Number2 :" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="17dp"
        android:layout_toRightOf="@+id/textView1"
        android:ems="10"
        android:inputType="textPersonName" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_alignTop="@+id/textView2"
        android:ems="10" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_toRightOf="@+id/button1"
        android:text="-" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView2"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="27dp"
        android:text="+" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button2"
        android:layout_below="@+id/button2"
        android:layout_marginTop="17dp"
        android:text="*" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button3"
        android:layout_alignBottom="@+id/button3"
        android:layout_toRightOf="@+id/button3"
        android:text="/" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button3"
        android:layout_marginTop="24dp"
        android:text="Result : " />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView3"
        android:layout_alignBottom="@+id/textView3"
        android:layout_toRightOf="@+id/textView3"
        android:ems="10" />

</RelativeLayout>

Evet şimdi kod kısmına geçiyorum. Bunun için yine sol panele gidip projeniz içerisinde src>paket isminiz>MainActivity.java dosyasını açalım. Bu uygulamamızın çalıştıracağı java programı olacak. Eğer java'ya aşina değilseniz hazırladığım java derslerini takip edebilirsiniz. 





Kodumuz aşağıdaki gibi. Doğrudan alıp MainActivity.java'nın içerisine yapıştırın.

package com.example.calculator;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

 
Button b1,b2,b3,b4;
EditText tf1,tf2,tf3;
 
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

b1 = (Button) findViewById(R.id.button1);
b2 = (Button) findViewById(R.id.button2);
b3 = (Button) findViewById(R.id.button3);
b4 = (Button) findViewById(R.id.button4);
  
tf1 = (EditText) findViewById(R.id.editText1);
tf2 = (EditText) findViewById(R.id.editText2);
tf3 = (EditText) findViewById(R.id.editText3);
  
b1.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
float sayi1 = Integer.parseInt(tf1.getText().toString());
float sayi2 = Integer.parseInt(tf2.getText().toString());

float sonuc = sayi1 + sayi2;

tf3.setText(Float.toString(sonuc));
}
  
});
  
b2.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
float sayi1 = Integer.parseInt(tf1.getText().toString());
float sayi2 = Integer.parseInt(tf2.getText().toString());

float sonuc = sayi1 - sayi2;

tf3.setText(Float.toString(sonuc));
}
 
 
});


b3.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
float sayi1 = Integer.parseInt(tf1.getText().toString());
float sayi2 = Integer.parseInt(tf2.getText().toString());

float sonuc = sayi1 * sayi2;

tf3.setText(Float.toString(sonuc));
}

 
});
 
 
b4.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
float sayi1 = Integer.parseInt(tf1.getText().toString());
float sayi2 = Integer.parseInt(tf2.getText().toString());

float sonuc = sayi1 / sayi2;

tf3.setText(Float.toString(sonuc));
}
 
 
});    
 
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}

Şimdi kodumuzu biraz açıklayalım. Öncelikle MainActivity sınıfının içerisinde b1,b2,b3,b4 adında 4 tane buton ve tf1,tf2,tf3 adında 3 tane metin alanı tanımladık. Bunları onCreate metodu içerisinde daha önce activity_main.xml dosyası içerisinde tanımlamış olduğumuz nesnelere atamış olduk. Ondan sonra tek yaptığımız iş OnClickListener sınıfını butonların setOnClickListener metodları içerisinde gerçekleyerek (implementation) her biri için ilgili butona basıldığında ne yapılması gerektiğini yazdık. Buda işlem yapılacak sayıları birinci ve ikinci EditText'lerden getText() metodu ile alarak birinci buton için toplama ikincisi için çıkarma üçüncüsü için çarpma ve dördüncüsü için ise bölme işlemi yapmak. İşlemin sonucunu ise üçüncü EditText'te setText() metodunu kullanarak yazdırdık. Hepsi bu kadar.

Şimdi bir sanal makine oluşturarak programımızı önce bilgisayarda test edelim. Bunun için menüden Android Virtual Device Manager'a tıklayın. 


Açılan pencereden sağ taraftaki New seçeneğini seçerek yeni bir sanal makine oluşturalım.


Sanal makinenize bir isim verin ve aşağıdaki ayarlamaları yaparak OK butonuna tıklayarak bitirin.


Şimdi Run>Run Configurations... seçeneklerine tıklayarak aşağıdaki pencereyi açın. Açılan pencereden Target kısmına geçin soldan projenizi sağdan da oluşturduğunuz SanalMakine'yi seçin ve Run'a tıklayın.





Bilgisayarınız sanal makineyi yüklerken aşağıdaki ekran bilgisayarınızın hızına göre uzun bir süre ekranda kalabilir. Çalışmıyor deyip kapatmayın sabırla bekleyin, açılacaktır.


Uygulamanız çalıştıktan sonra aşağıdaki gibi görünecek.


Bu sanal emülatör modunda farenizi kullanabilirsiniz. Denemek için EditText'lere sayı değerleri girin ve istediğiniz işlem butonuna basın. Sonucun alttaki EditText'te çıktığını göreceksiniz.

Şimdi hazırladığımız bu uygulamayı telefonumuza yükleyelim. Bunu için sol panelden bin>res>Calculator.apk (kendi projeniz için bu isim farklı olabilir) dosyasını bulun  ve telefonunuza atın.



Bu uygulamayı yükleyebilmek için telefonunuzun güvenlik ayarlarından kaynağı belli olmayan uygulamaların yüklenmesi seçeneğini aktifleştirin. Bundan sonra uygulamanızı telefonunuza yükleyin ve çalıştırın.


İşte ilk android uygulamamızı yazıp, test edip, telefonumuzda çalıştırmış olduk. Umarım sizler için faydalı olmuştur. Sonraki yazımda görüşmek üzere.

Esen kalın.

@Emin_Ucer



Hiç yorum yok:

Yorum Gönder