Xamarin.Android : Merhaba

   Hatırlarsanız bir önceki makalem ile mobil sistemlerde C# ile uygulama geliştirmeye hızlı bir giriş yapmıştık. Xamarin ile uygulama geliştirmek için sabırsızlandığınızı düşünerek bu makalemde Xamarin.Android ile ilk Android uygulamanızı nasıl geliştireceğinizi anlatacağım.

Adroid_CSharp_Love

 

   Xamarin çevrim içi mağazasından ücretsiz sürümü indirdiyseniz fark etmişsinizdir; bu sürüm içerisinde Visual Studio desteği bulunmuyor. Bunun yerine Xamarin Studio ile uygulama geliştirebilirsiniz. Xamarin Studio aslında yeni bir ürün değil. Mono’nun nerdeyse ilk sürümlerinden beri açık kaynak kodlu olarak dağıtılan platform-bağımsız editör olan MonoDevelop, 4.0 sürümünden itibaren isim değiştirerek Xamarin Studio adını aldı. Bu ürün oldukça başarılı olsa da ReSharper v.b. pek çok eklentiyi kullanabilir olmam nedeniyle ben tercihimi Visual Studio’dan yana kullanacağım. Paylaşacağım ekran görüntüleri Xamarin Studio’ya ait olmamakla birlikte uygulama geliştirme yöntemleri aynıdır.

Yeni-Android-Projesi

 

   Konuyu daha fazla uzatmadan, isterseniz ilk android uygulamamızı oluşturalım. New Project ekranında Visual C# –> Android bölümünde hazır android proje şablonlarını bulabilirsiniz. Bu örneğimiz için seçimim “Android Application” oldu. Projemiz oluşturulduğunda karşımıza aşağıdaki ekran gelecektir;

Proje-Olusturuldu

 

   Visual Studio’nun sağ tarafında yer alan solution explorer’ı inceleyecek olursanız standart bir masaüstü projesiyle kıyaslandığında farklı bir proje hiyerarşisi göreceksiniz. Aslında daha önceden mobil sistemler için uygulama geliştirdiyseniz bu durum size çok yabancı gelmeyecektir.

  Solution explorer’da yer alan bu klasörlerin detayına inmeden önce farklı bir konudan bahsetmek istiyorum. Daha önceden java ile android uygulamaları geliştirdiyseniz bu ekran görüntüsü size  hiç yabancı gelmeyecektir; solution explorer’daki klasörler, sınıf isimleri, hiyerarşileri.. hepsi aynı notasyonda… Dolayısıyla da C# bilen android geliştiriciler hızlıca uygulamalarını geliştirmeye başlayabilirler. Xamarin mobil sistemlerde C#’ı kullanırken her zaman için mümkün olduğunca ilgili platform yapısını korumaya özen göstermekte; ki bunu ilerleyen makalelerde daha da net göreceksiniz. Bu yaklaşım özellikle platform bağımsızlığı için HTML + Javascript kullanılan çözümlerdeki başarısızlıklar göz önüne alındığında doğru gözüküyor. Bu sayede tüm platformların sadece ortak noktaları kullanmak yerine, geliştirme yaptığımız platformun tüm özelliklerine ulaşabiliyoruz.

   Bu ara bilgiden sonra klasörlere geri dönecek olursak; proje varsayılan olarak üç klasörle gelmekte: Assets, Properties, Resources. Assets (varklıklar) klasörü adından da anlaşılacağı üzere kaynak kodları dışında uygulamanız tarafından kullanılan dosyaların barındığı ana klasördür. Çalışma-zamanında bu klasör altında bulunan dosyalara Assets sınıfı yardımıyla ulaşılabilmektedir. Properties (özellikler) klasörü zaten biz C# geliştiriciler için tanıdık bir klasör. Bu özel klasör .Net assembly’mize ait meta veriyi barındırmaktadır. Resources (kaynaklar) klasörü yine tanıdık gelecektir; uygulamamız içerisinde kullanacağımız string ifadeler, imajlar ve hatta xml dosyaları bu klasör altında toplanmalıdır. Assets klasörüne benzer şekilde, çalışma-zamanında bu klasör altında bulunan kaynaklara Resource sınıfı yardımıyla ulaşılabilir.




   Yukarıda saydığı klasörler dışında Activity1.cs dosyası da mutlaka dikkatinizi çekmiştir. Daha öncede Android için uygulama geliştirdiyseniz zaten ne olduğunu biliyorsunuzdur; bilmeyenleriniz için bir başka makalede detaylandıracağım. Şimdilik, en kaba tabiri ile, uygulamamızın bir formu/ekranı olduğunu (hatta başka aktivite olmadığını düşünecek olursak, ana formu olduğunu) söyleyebilirim.

   Bu bilgiler ardından daha fazla zaman kaybetmeden ilk uygulamamızın çalıştıralım. Android uygulamaları Windows içerisinde doğrudan çalıştırılarak test edilemez. Bunun yerine Android eko sisteminin bulunduğu bir sanal makine/emulator içerisinden test edilebilir. Xamarin.Android kurulumu beraberinde Android SDK’yı da indirip kuracaktır. Dolayısıyla da test için ihtiyacımız olan sanal makineler de gelecektir. Üstelik herhangi bir ek işlem yapmaya gerek kalmaksızın uygulamamız sanal Android işletim sistemi üzerinde test edilebilir, Visual Studio’dan debug edilebilir durumda olacaktır.

  Uygulamamız hazırlandıktan sonra Visual Studio içerisinden aynı bir masaüstü uygulamasında hata ayıklama işlemi yapar gibi “Debug –> Start Debugging” ya da F5 seçeneği üzerinden hata ayıklama oturumu başlatabiliriz.

   Eğer Xamarin.Android kurulumu sonrasında ilk kez bir hata ayıklama işlemi yapacaksanız öncelikle takip etmeniz gereken bir kaç adım bulunuyor. Bu adımlar bize hata ayıklama yapabilmemiz için gerekli olan sanal makineleri tanımlamayı ve başlatmayı sağlayacaktır.

Cihaz-Secimi

   Hata ayıklamayı başlattığınızda ilk defa bu işlemi yapıyorsanız karşınıza yukarıdaki gibi boş listeye sahip bir ekran gelecektir. Bu ekran uygulamanızı hangi emulator içerisinde test etmek istediğinizi belirteceğiniz ekrandır. Burada hali hazırda çalışır durumda olan emulator’ler listelenecektir. Aynı anda birden fazla emulator çalışır durumda olabilir (farklı çözünürlük, Android sürümü, donanım v.b. sebeplerle); fakat sadece birisinde aktif olarak hata ayıklama işlemini yapabilirsiniz.

   Hata ayıklama işlemi için cihaz seçimi yaptığımız “Select Device” ekranının sol alt köşesinde “start emulator image” linki yer almakta. Bu link karşımızı önceden tanımlı olan sanal makinelerin listesini getirecek ve seçtiğimiz sanal makineyi çalıştırmamıza olanak sunacaktır;

Emulatoru-Baslat

   Gördüğünüz gibi Xamarin.Android kurulumu ile birlikte ön tanımlı olarak 5 farklı emulator tanımı gelmekte. Bu emulatorler farklı Android sürümlerini (dolayısıyla da farklı API’lerini) temsil etmekte. Uygulamanızın ihtiyaçları doğrultusunda size uygun olan emulatorü seçerek ok butonu yardımıyla başlatabilirsiniz.

   Bu noktada karşılaşabileceğiniz sıkıntılardan birisi “Start Emulator” ekranında boş bir listenin karşınıza gelmesi olabilir. Bu durumda öncelikle ortam değişkenlerinde ANDROID_SDK_HOME değerinin tanımlı olup olmadığını kontrol etmelisiniz. Bu değer tanımlı değilse aşağıdakine benzer şekilde .android klasörünün bulunduğu dizini vermelisiniz (bu dizin genelde kullanıcının ev dizini olmakta) ;

Ortam-Degiskeni

   Bu tanımlama ardından ortam değişkenlerinin yeniden okunabilmesi adına Visual Studio’yu yeniden başlatmayı unutmayın 😉

   Tüm bu işlemler ardından Select Device ekranında çalışan emulatorlerin listelendiğini görebilirsiniz;

Android-Emulator

 

   Unutmayın; bu işlemler çoğunlukla Xamarin.Android ile ilk kez çalışırken yapılmakta. Emulatorünüz çalışır durumda olduğu sürece yapmanız gereken sadece Select Device ekranında aktif durumdaki sanal makinenizi seçmek olacaktır. Bir başka not ise; hata ayıklamanız sona erdiğinde sanal makinenizi kapatmaya gerek olamadığıdır. Her hata ayıklama oturumunda uygulamanızın güncel hali sanal makineye gönderilerek otomatik olarak başlatılacaktır.




   Bir emulator üzerinde ilk defa uygulamanızı test edeceksiniz bu işlemin normalden uzun süreceğini peşinen kabul etmeniz gerekli. Bunu nedeni öncelikle Xamarin.Android eko sisteminin emulator’e kurulmasının gerekmesidir. İlk çalıştırmanızda arka planda öncelikle “Mono Shared Runtime” kurulacak, bu kurulumu kullandığınız API versiyonunun kurulması takip edecektir. Ancak bu işlemler ardından uygulamanız emulator’e gönderilecek ve hata ayıklamaya başlayabileceksiniz.

   Yukarıda sıraladığım bütün işlemler sona erip uygulamanız emulator’e gönderilerek çalıştırıldığında ise sizi aşağıdaki ekran karşılayacaktır;

Sanal-Makinede-Uygulamamiz

   Bu kadar işlem ardından sadece ekranın üst kısmında yer alan bir buton :\ ok.. bu en nihayetinde bir merhaba dünya uygulaması.. değil mi??! 😉

   Butona her bastığınızda count değişkeninin değeri bir arttırılacak ve güncel değeri ekrana yazdırılacak;

Butona-Basma

 

   Hata ayıklama için ise tek yapmanız gereken aynı bir masaüstü uygulamasında olduğu gibi ilgili satıra bir break point koymanız;

Hata-Ayiklama

   Bu noktadan sonrası aynı masaüstü uygulamalarında hata ayıklamak gibi… Bu kadar basit…

   Bir merhaba dünya uygulaması için bu kadar bilgi sanırım yeterli olacaktır. İlerleyen makalelerimde bu uygulamamız üzerinden devam ederken Xamarin.Android’in detaylarını inceleyeceğiz.

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

3 yorum

  1. ibrahim   •  

    Çok teşekkürler. Sabırsızlıkla devamını bekliyorum.

  2. Hunlu   •  

    FindViewById bunlar java komutları değil mi ?

    • Fatih Boy   •     Yazar

      Merhaba Hunlu,
      Aslında bunu Android API’si üzerinden kullanabildiğimiz bir fonksiyon gibi düşünebilirsin. Android işletim sisteminde çekirdek iki programlama dilini desteklemekte C ve Java. Android’in doğası gereği C ile yapabileceğimiz şeyler sınırlı. Dolayısıyla Android’e tam hakim olabilmek için Java ile yola devam edilmeli. Bu durumda da Xamarid.Android çalışma zamanının elinde çok fazla seçenek yok… Konunun detayları için serinin devamında yazdığım Sihirbazın Sırrı başlıklı makaleyi okumanı tavsiye ederim.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir