11 Ağustos 2013 Pazar

MVC (Model View Controller) Nedir ?

Model-View-Controller (MVC), yazılım mühendisliği'nde kullanılan bir "mimari desen"dir.

Model: Uygulamanın iş mantığı (Business Logic) diye bilinen bölümüdür. Uygulama da kullanılan veri tabanı işlemleri gibi arka planda destek sağlayan bölümler model kısmında tanımlanır.Controller den gelen değerler bu katmanda işlenir.

View:Uygulamanın görsel kısmını içeren kodların bulunduğu bölümdür.(Html,Css,Javascrpit)

Controller: View ve Model arasında bir köprüdür.Modelden gelen verileri işleyerek view e aktarır.

MVC ,PHP özel bir kavram değildir.Diğer bir çok platformda da aynı mantık kullanılır. MVC kullanılmasının avantajlarından biri kod karışıklığının yaşanmaması php için örnek verilirse php tagları arasında html kullanılması  kod kalabalıklığının ortadan kalkmasına yarar.Böylelikle daha sağlıklı bir çalışma ortamı sunulur.

31 Mayıs 2013 Cuma

Avrupa'nın En Büyük Geliştirici Organizasyonlarından Birine Katılmak için Son Şans

Avrupa'nın En Büyük Geliştirici Organizasyonlarından Birine Katılmak için Son Şans
    
Android Dünyasının Tanınmış İsimleri  Android Geliştirici Günleri  2013 için Türkiye'de
   
Sponsorlar: Turkcell, Qualcomm, Blackberry, Paypal, Alcatel, İş Bank, Pozitron,  STM,  Netmera, Texas Instruments, ShiftDelete.net, Webrazzi, Tivilog, Btnet.com.tr, BThaber, Radyo ODTÜ, indir.com, Pusula Yayıncılık, Koza Yayıncılık, Seçkin Yayıncılık, paylas.com, PeakGames, ODTÜ Teknokent, Jetbrains
    
Ülkemizden ve dünyanın farklı kentlerinden Google Geliştirici Grupları ve Teknoloji topluluklarının birlikte hazırladığı etkinlikte, 7 farklı ülkeden 15 organizatör topluluk bulunuyor. Toplam 60 konuşmacının olduğu, 20 konuşmacının yurt dışından geldiği etkinliğin programı web sitesinden inceleyebilirsiniz. 1500 katılımcının beklendiği  Android Geliştirici Günleri etkinliği ODTÜ KKM'de 14-15 Haziran tarihlerinde gerçekleştirilecek. Eğer siz de hala bu etkinliğe kayıt yaptırmadıysanız bu adresten kaydınızı yaptırabilirsiniz.
    Android Geliştirici Günleri, katılımın ücretsiz olduğu, gönüllüler tarafından organize edilen ve Türkiye’de teknoloji geliştiriciliğini küresel seviyeye çıkarmak için bir kıvılcım olmayı hedefleyen,   Android teknolojileri ve mobil dünya üzerine seminerler ve yarışmalar içeren bir teknoloji konferansıdır. Etkinlikte Lars Vogel, Eric Lafortune,  Bernd Schulze, Mark Allison gibi Android dünyasının tanınmış  isimleri konuşmacı olarak yer alıyor.
        Etkinlikte ayrıca, 14 Haziran Cuma günü 13.30'da başlayacak ve 15 Haziran Cumartesi günü 13.30'da  son bulacak olan EcaHack Hackathon adlı yarışmada, Android  geliştiricileri 24 saat aralıksız kod yazarak yarışacaklar. Yarışmada dereceye girenlere  Turkcell tarafından çeşitli hediyeler verecek.
    Android Geliştirici Günleri’ne katılanlara Dubai'de iş kurma fırsatı sunan, pazara çıkabilecek yaratıcı ve yenilikçi fikirlerin arandığı Innov-a-thon'Lite girişimcilik yarışmasının Ankara ayağı da etkinlik kapsamında gerçekleşiyor. 3 saatlik maraton sonunda kazanan gruplara Dubai'de fikirlerini gerçekleştirme imkanı için ulaşım, konaklama ve danışmanlık gibi kaynaklar Turn8 tarafından sunuluyor.

3 Nisan 2013 Çarşamba

Android Tasarım Konusunda İpuçları

Merhaba Arkadaşlar bu yazıda arayüz tasarlama konusunda zorlanıyorsanız veya xml dosyalarıyla uğraşmak istemiyorsanız  işinizi kolaylaştıracak bi siteden bahsetmek istiyorum.



Bu siteyi kullanarak kolaylıkla istediğiniz tasarımları yapabilirsiniz . 

İyi Çalışmalar :)

Android Basit TODO List Yapımı

Bu uygulamamızda bir önceki dersimizde gördüğümüz options menü ve listview kullanarak  basit bir şekilde ekleme,silme ,güncelleme ve çıkış işlemlerinin yapmını görücez. Oluşturduğumuz projemizin tasarımıza göz atalım :

<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"
    android:background="@drawable/arka"
    tools:context=".MainActivity" >

     <EditText
         android:id="@+id/editText1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignParentRight="true"
         android:layout_alignParentTop="true"
         android:layout_marginTop="14dp"
         android:ems="10"
         android:hint="Buraya Yazınız..." >

        <requestFocus />
    </EditText>
     <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
         android:layout_below="@+id/editText1" >

    </ListView>

</RelativeLayout>
Şimdi de Java kodlarımıza bakalım:
package com.example.android2;

import java.util.ArrayList;
import java.util.Locale;



import android.os.Bundle;
import android.app.Activity;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnInitListener {
    EditText editText;
    ListView listView;
    ArrayList<String> arrayList;
    ArrayAdapter<String> arrayAdapter;
    TextToSpeech texttoSpeech;
    Integer a=1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText=(EditText)findViewById(R.id.editText1);
        listView=(ListView)findViewById(R.id.listView1);
        texttoSpeech= new TextToSpeech (this,this);
        texttoSpeech.setLanguage(Locale.ENGLISH);
        
        arrayList = new ArrayList<String>();
        arrayAdapter= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayList);
        listView.setAdapter(arrayAdapter);
        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                
                
                editText.setText( arrayList.get(arg2).toString());
                a=(int) arrayAdapter.getItemId(arg2);
                
                
            }
        });
    
}
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId()) {
    
    case R.id.menuKaydet:
        if(!editText.getText().equals(null)){
        arrayList.add(editText.getText().toString());
        listView.setAdapter(arrayAdapter);
        editText.setText("");
        Toast.makeText(getApplicationContext(), "Kaydedildi.", Toast.LENGTH_LONG).show();
        }
        break;
    case R.id.menuGuncelle:
    
          arrayList.remove(a-1);
        
          arrayList.add(editText.getText().toString());
            listView.setAdapter(arrayAdapter);
            arrayAdapter.notifyDataSetChanged();
            editText.setText("");
        a=a+1;
        
        Toast.makeText(getApplicationContext(), "Güncellendi.", Toast.LENGTH_LONG).show();
        
        break;
    case R.id.menuSil:
         arrayList.remove(editText.getText().toString());
         listView.setAdapter(arrayAdapter);
         editText.setText("");
        Toast.makeText(getApplicationContext(), "Silindi", Toast.LENGTH_LONG).show();
        break;
    case R.id.menuCikis:
        finish();
        Toast.makeText(getApplicationContext(), "Çıkış yapıldı.", Toast.LENGTH_LONG).show();
        texttoSpeech.speak("closing", TextToSpeech.QUEUE_ADD,null);
        break;
    default:
        break;
        
    }
    return false;
    
    
    
}
@Override
public void onInit(int arg0) {
    // TODO Auto-generated method stub
    
}

}

 Texttospeech özelligini kullanarak  texttoSpeech.speak("closing", TextToSpeech.QUEUE_ADD,null); bu komutta görüldüğü gibi closing yazısının okunmasını sağlıyoruz. 

Uygulamamızın ekran görüntüsü :

11 Mart 2013 Pazartesi

Android Options Menü Yapımı

Merhaba Arkadaşlar , bu dersimizde options menu yapımını anlatacağım. Yeni bir proje oluşturalım. Oluşturduğumuz projemizde   public boolean onCreateOptionsMenu(Menu menu)  fonksiyonunu  kulanacağız . Options Menümüzü oluşturmak için res  klasörünün altındaki menu kalsörüne yeni bir xml dosyası açmalıyız.


Oluşturduğunuz yeni .xml dosyasına istediğiniz ismi verebilirsinz.Ben altmenu dedim. Böylelilkle res->menu-> altmenu oluştu. Şimdi oluşturduğumuz altmenu.xml dosyamızı açıp içini dolduralım. 
Add butonuna tıklayıp istediğimiz kadar options menü ekliyebiliriz. Ben görüldüğü gibi üç tane ekledim. Kırmızı ile kutu içine aldığım yerlerden id ve title istediğiniz gibi değiştirebilirsiniz. Add butonuna tıkladıktan sonra şu şekilde seçerek istediğiniz seçenegi ilave edebilirsiniz.

Tasarımda hiçbir şey  yapmıyoruz. Java kodlarımıza bi bakalım.

package com.example.optionsmenu;


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.altmenu, menu);
        return true;
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
        
        case R.id.item1:
            Toast.makeText(getApplicationContext(), "İşlem1'e tıklandı.", Toast.LENGTH_LONG).show();
            break;
        case R.id.item2:
            Toast.makeText(getApplicationContext(), "İşlem2'e tıklandı.", Toast.LENGTH_LONG).show();
            break;
        case R.id.item3:
           
            Toast.makeText(getApplicationContext(), "İşlem3'e tıklandı.", Toast.LENGTH_LONG).show();
            break;
        }
        return false;
        
        
        
    }

}

Oluşturduğumuz Options menülere de tıkladığımızda Toast vermesi için şu kodu ekledim .

Toast.makeText(getApplicationContext(), "İşlem1'e tıklandı.", Toast.LENGTH_LONG).show();

Ekran görüntüsüne bakalım ;



8 Mart 2013 Cuma

Sıcaklık Birimi Dönüştürücü

Merhaba arkadaşlar ,bu uygulamamızda sıcaklık birim dönüştürücüsü yapıcaz.Yeni uyguluma açıp istediğiniz ismi verebilirsiniz. Tasarıma gelince ben Edittext,Radiobuton,Textview,Button kullandım,tasarımın şekli size kalmış istediğiniz gibi yapabilirsiniz. Burada yapmak istediğimiz celsius değerini diğer radiobutonda seçili olanlara dönüştürmektir. Uygulamamızın xml kodlarımız şu şeklidedir:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
    android:id="@+id/widget32"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

<EditText
    android:id="@+id/edit1"
    android:layout_width="318dp"
    android:layout_height="wrap_content"
    android:layout_x="0dp"
    android:layout_y="4dp"
    android:textSize="18sp" />

<RadioGroup
    android:id="@+id/widget65"
    android:layout_width="136dp"
    android:layout_height="142dp"
    android:layout_x="2dp"
    android:layout_y="52dp" >

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:text="Celsius" />

</RadioGroup>

<Button
    android:id="@+id/buton1"
    android:layout_width="62dp"
    android:layout_height="32dp"
    android:layout_x="126dp"
    android:layout_y="97dp"
    android:background="@drawable/arrow_leftright" />

<Button
    android:id="@+id/buton2"
    android:layout_width="139dp"
    android:layout_height="wrap_content"
    android:layout_x="8dp"
    android:layout_y="284dp"
    android:text="Hesapla" />

<Button
    android:id="@+id/buton3"
    android:layout_width="134dp"
    android:layout_height="wrap_content"
    android:layout_x="170dp"
    android:layout_y="283dp"
    android:text="Temizle" />

<RadioGroup
    android:id="@+id/widget66"
    android:layout_width="136dp"
    android:layout_height="174dp"
    android:layout_x="190dp"
    android:layout_y="43dp" >

    <RadioButton
        android:id="@+id/radio2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Celsius" />

    <RadioButton
        android:id="@+id/radio3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Fahrenhayt" />

    <RadioButton
        android:id="@+id/radio4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Kelvin" />

    <RadioButton
        android:id="@+id/radio5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Reaumur" />
</RadioGroup>

<EditText
    android:id="@+id/edit2"
    android:layout_width="242dp"
    android:layout_height="wrap_content"
    android:layout_x="54dp"
    android:layout_y="241dp"
    android:ems="10"
    android:textSize="18sp" >

    <requestFocus />
</EditText>

<TextView
    android:id="@+id/widget85"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_x="2dp"
    android:layout_y="256dp"
    android:text="Sonuç:"
    android:textSize="15sp" />

</AbsoluteLayout>
Uygulamada Celsius'u ,Fahrenhayt,Kelvin ve Reaumur dönüştürme formüllerini bilmek gerekir .Formüller söyledir.
 F =  C × 1.8 + 32
 K = C  + 273.15
 Re =  C × 0.8
Şimdi Java kodlarımıza göz atalım .



package com.example.sicaklikdonusturcu;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

public class Donusturucu extends Activity {
    Button buton,temizle;
    EditText edittext1,edittext2;
    RadioButton radio1,radio2,radio3,radio4,radio5,radio6,radio7,radio8;
    Integer deger,F,C,K,Re;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_donusturucu);
        buton=(Button)findViewById(R.id.buton2);
        temizle=(Button)findViewById(R.id.buton3);
        edittext1=(EditText)findViewById(R.id.edit1);
        edittext2=(EditText)findViewById(R.id.edit2);
        radio1= (RadioButton)findViewById(R.id.radio1);
        radio2= (RadioButton)findViewById(R.id.radio2);
        radio3= (RadioButton)findViewById(R.id.radio3);
        radio4= (RadioButton)findViewById(R.id.radio4);
        radio5= (RadioButton)findViewById(R.id.radio5);
        
        buton.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                
                deger=Integer.parseInt(edittext1.getText().toString());
                //celsius-fahrenhayt dönüşümü
                if(radio1.isChecked()&&radio3.isChecked())
                {
                    F=(int) (deger*(1.8)+32);
                    
                    edittext2.setText(F.toString());
                //celsius-kelvin    
                }else if(radio1.isChecked()&&radio4.isChecked())
                {
                    
                    K=deger+273;
                    edittext2.setText(K.toString());
                    //celsius-reaumur
                }else if(radio1.isChecked()&&radio5.isChecked())
                {
                    Re=(int) (deger*(0.8));
                    edittext2.setText(Re.toString());
                    //celsius-celsius
                }else if(radio1.isChecked()&&radio2.isChecked())
                {
                    Toast.makeText(getApplicationContext(), "Aynı değerleri seçtiniz.", Toast.LENGTH_LONG);
                    edittext2.setText(deger.toString());
                }
            }
        });
        
     temizle.setOnClickListener(new View.OnClickListener() {
        
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            edittext1.setText("");
            edittext2.setText("");
            radio2.setChecked(false);
            radio3.setChecked(false);
            radio4.setChecked(false);
            radio5.setChecked(false);
        }
    });
    }
    
}

Uygulamamızın ekran görüntüsü ise şu şekildedir:


Kolay Gelsin .

Soru ve Görüşleriniz için yorum yapabilirsiniz.

24 Şubat 2013 Pazar

Vücut Kitle Endeksi Hesaplama

Merhaba arkadaşlar , bu uygulamamızda basit bir şekilde  vücut kitle endeksini hesaplayan bir program yazacağız. Öncelikle yeni bir android projesi açıp tasarımı şu şekilde yapıyoruz:
Tasarım için 3 TextView ,3 EditTex,1 Button ayrıca 2 tane daha TextView kullandım ama bu TextViewlerin text özelliklerini sildim çünkü oralara hesapladığım değerleri yazdıracağım.Tasarımın xml kodları da şu şeklidedir:
 vücut kitle endeksi(BKİ)=kilo/(boy*boy) şeklinde hesaplanıyor. Yani biz projemizde EditText1 den gelen değer ve EditText2 den gelen değerlerle işlem yapıcağız.Java kodlarımıza bir göz atalım.



Öncelikle kullandığımız TextView,EditText,Buton larımızı projemize tanıttık. Daha sonra butona click olayını vererek içine butona tıklandığı zaman yapmak istediklerimizi yazdık.
kilotext=Float.parseFloat(kilo.getText().toString()) ;   bu satırın amacı EditText2 den gelen string ifadeyi float değişken tipine dönüştürmektir.
yuvarlama=(int) Math.ceil(bki);  bu satırda da hesapladığımız vücüt kitle endeksi(bki) ni matematiksel olarak en yakın tam sayıya yuvarlamasını sağladık.
En son olarakta if -else yapısını kullanarak bulduğumuz değerin aralığına göre kilomuzun nasıl olduğunu text2 ye yazdırmış olduk.
Uygulamamızın ekran görüntüsü: