SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
T.C.
SAKARYA ÜNİVERSİTESİ

FEN BİLİMLERİ ENSTİTÜSÜ

MONO ile YAZILIM GELİŞTİRME

TEZSİZ YÜKSEK LİSANS BİTİRME PROJESİ

M.Buğra KANMAZ

Enstitü Anabilim Dalı

:

Enstitü Bilim Dalı

:

BİLGİSAYAR VE BİLİŞİM
MÜHENDİSLİĞİ
BİLİŞİM TEKNOLOJİLERİ

Tez Danışmanı

:

Doç. Dr. Cemil ÖZ

Şubat 2014
T.C.
SAKARYA ÜNİVERSİTESİ

FEN BİLİMLERİ ENSTİTÜSÜ

MONO ile YAZILIM GELİŞTİRME

TEZSİZ YÜKSEK LİSANS BİTİRME PROJESİ

M.Buğra KANMAZ

Enstitü Anabilim Dalı

:

Enstitü Bilim Dalı

BİLGİSAYAR VE BİLİŞİM
MÜHENDİSLİĞİ
BİLİŞİM TEKNOLOJİLERİ

:

Bu Proje .. /.. /20.. tarihinde aşağıdaki jüri tarafından Oybirliği ile kabul
edilmiştir.
Doç.Dr. Cemil ÖZ

Prof.Dr. Nejat
YUMUŞAK

Jüri Başkanı

Üye

Yrd. Doç.Dr. Nilüfer
YURTAY

Üye
ÖNSÖZ

Gelişen mobil teknolojileriyle kullanıcıların ihtiyaç duyduğu kişisel yazılımlar yerini
mobil uygulamalara bırakmaktadır. Mobil platformlarının farklı oluşu yazılım
noktasında birçok farklı dilde uygulama geliştirmeyi zorunlu kılmaktadır. Bu
durumun oluşturduğu problemin çözümü ise yazılım geliştiricilerin yaygın olarak
kullandığı C# dili ile bu mobil uygulamalar geliştirilebilmesi hatta bu uygulamaların
kolayca farklı platformlara uyarlanabilmesidir.

ii
İÇİNDEKİLER
SİMGELER VE KISALTMALAR LİSTESİ ........................................................................................ iv
ŞEKİLLER LİSTESİ ........................................................................................................................ v
ÖZET……. ................................................................................................................................. vii
SUMMARY.............................................................................................................................. viii
BÖLÜM 1.

Başlangıç .......................................................................................... 1

1.1.

Mono Nedir?.................................................................................... 1

1.2.

MonoDevelop veya Xamarin Studio ................................................ 2

1.3.

Xamarin IDE Nasıl Çalışır ? .............................................................. 2

BÖLÜM 2.

Xamarin Studio Paketinin Kurulumu ................................................ 4

2.1.

“Xamarin Installer” ile Xamarin Kurulumu ...................................... 4

2.1.1.

Yükleme sihirbazının adımları: ......................................................... 5

2.2.

Kurulumda Karşılaşılan Hatalar ve Çözümleri .................................. 9

2.2.1.

Java SDK Yüklenmesi ........................................................................ 9

2.2.2.

Android SDK Kurulumu .................................................................. 10
2.2.2.1. Android Sanal Cihaz Yöneticisi Ayarlarının Yapılması..................... 11

2.2.3.

GTK# Kurulumu .............................................................................. 13

2.2.4.

Xamarin Studio Kurulumu.............................................................. 13

2.2.5.

Xamarin.Android Kurulumu ........................................................... 13

BÖLÜM 3.

Xamarin Studio’da İlk Uygulama .................................................... 14

BÖLÜM 4.

Xamarin Studio’da “ToDo” Adlı Örnek Uygulamanın Geliştirilmesi20

4.1.

Yeni Çözüm Oluşturulması ve Uygulamanın Arayüz Tasarımı ........ 20

4.2.

Uygulamanın Kodlarının Yazılması ................................................. 25

BÖLÜM 5.

Uygulamanın Diğer Platformlarda Çalıştırılması ............................ 38

5.1.

iOS’te Uygulama Geliştirme ........................................................... 39

5.2.

Windows Phone’da Uygulama Geliştirme ..................................... 40

SONUÇ………… ......................................................................................................................... 41
KAYNAKLAR ............................................................................................................................. 42
ÖZGEÇMİŞ ............................................................................................................................... 43

iii
SİMGELER VE KISALTMALAR LİSTESİ

GUI

: Grafiksel Kullanıcı Arayüzü

GNOME

: GNU Şebeke Nesne Modeli Ortamı

IDE

: Arayüz Geliştirme Ortamı

iOS

: iPhone İşletim Sistemi

JDK

: Java Geliştirme Kiti

SDK

: Yazılım Geliştirme Kiti

iv
ŞEKİLLER LİSTESİ
Şekil 1-1Mono Mimarisi ............................................................................................. 2
Şekil 1-2 Xamarin Çalışma Mantığı ........................................................................... 3
Şekil 1-3 Xamarin Derleyicisi Çalışma Mantığı ......................................................... 3
Şekil 2-1Xamarin Kurulum Ekranı ............................................................................. 4
Şekil 2-2 Yükleme Ekranı ........................................................................................... 5
Şekil 2-3 Yükleme Seçim Ekranı ................................................................................ 6
Şekil 2-4 Android SDK'nın Kurulum Yeri Ekranı ...................................................... 6
Şekil 2-5 Yüklenmesi Gereken Programlar Listesi ..................................................... 7
Şekil 2-6 Lisans Kabul Ekranı .................................................................................... 7
Şekil 2-7 Yükleme İlerlemesi...................................................................................... 8
Şekil 2-8 Windows'un Kurulumu Konfigure Etmesi .................................................. 8
Şekil 2-9 Yükleme Hazır ............................................................................................. 9
Şekil 2-10 Android SDK Ekranı ............................................................................... 10
Şekil 2-11 Android Cihaz Emülatörü Ekleme .......................................................... 11
Şekil 2-12 Eklenecek Emülatörün Özelliklerinin Ayarlanması ................................ 12
Şekil 2-13 Emülatör Kurulumu Onayı ...................................................................... 12
Şekil 3-1 Xamarin Studio Açılış Ekranı.................................................................... 14
Şekil 3-2 Yeni Çözüm Oluşturma Ekranı ................................................................. 15
Şekil 3-3 Ana Kodun Bulunduğu Sayfa .................................................................... 15
Şekil 3-4 Kodların Tanımlanması ............................................................................. 16
Şekil 3-5 Emülatör Seçimi ........................................................................................ 17
Şekil 3-6 Emülatör Arayüzü...................................................................................... 17
Şekil 3-7 Emülatör Uygulamaları Ekranı .................................................................. 18
Şekil 3-8 Uygulamanın Açılış Ekranı ....................................................................... 18
Şekil 3-9 Uygulama Çıktısı ....................................................................................... 19
Şekil 4-1 Uygulama Arayüzü Tasarımı ..................................................................... 20
Şekil 4-2 Xamarin Studio Açılış Ekranı.................................................................... 21
Şekil 4-3 Yeni Android Uygulama Çözümü ............................................................. 21
Şekil 4-4 Çözümün İçeriği ........................................................................................ 22
v
Şekil 4-5 Kaydedilen İşler Ekranı-Ana Ekran .......................................................... 22
Şekil 4-6 Ekran Kontrolleri Kodları .......................................................................... 23
Şekil 4-7 Kontrol Özellikleri Menüleri ..................................................................... 23
Şekil 4-8 İş Ekleme Ekranı ....................................................................................... 24
Şekil 4-9 Android Cihaz Görünümü/Versiyonu Ayarlama ....................................... 24
Şekil 4-10 TaskList.cs Kaydedilen İşler (Ana ekran) İlk Kodlar .............................. 25
Şekil 4-11 "TaskView.cs" İlk Kodları....................................................................... 26
Şekil 4-12 Çözüme Yani Klasör Ekleme .................................................................. 27
Şekil 4-13 "Tasks.cs" Sınıfı Kodları ......................................................................... 28
Şekil 4-14 Bileşen Ekleme Ekranı ............................................................................ 28
Şekil 4-15 Bileşen Ekleme ........................................................................................ 29
Şekil 4-16 Çözüm Paneli ........................................................................................... 29
Şekil 4-17 "TaskViewModel" Kodları ...................................................................... 30
Şekil 4-18 "TaskView" Sınıfına Eklenecek Kodlar .................................................. 31
Şekil 4-19 "TaskList" Sınıfına Eklenecek Kodlar..................................................... 32
Şekil 4-20 "TaskListAdapter" Kodları ...................................................................... 33
Şekil 4-21Android Emulator Ekranı ......................................................................... 34
Şekil 4-22 Uygulama Ana Ekranı ............................................................................. 35
Şekil 4-23 Uygulamada İş Ekleme Ekranı ................................................................ 36
Şekil 4-24 Kaydedilen İşin Ana Ekranda Görünmesi ............................................... 37
Şekil 5-1Platform ve İşletim Sistemi Geliştirilebilirlik Matrisi ................................ 38
Şekil 5-2 iOS'te ToDo Uygulaması Görünümü ........................................................ 39
Şekil 5-3 Windows phone'da ToDo Uygulamasının Görünümü............................... 40

vi
ÖZET

Anahtar kelimeler: Mono, C#, Xamarin, Yazılım, Mobil Uygulama
Farklı platformlarda çalışabilecek yazılım veya uygulamaların geliştirilmesi birden
çok programlama dili öğrenme gereksinimine yol açmıştır. Günümüzde yaygın bir
şekilde kullanılan en güçlü nesneye dayalı programlama dili olan C# ile birden fazla
ana platformu (Android, iOS, Windows Phone gibi) destekleyecek yazılımlar ve
uygulamalar

geliştirilebilmektedir.

Böylelikle

yazılım

geliştiriciler

zaman

kazanmakta ve aynı işlemi diğer programlama dillerinden daha kısa bir şekilde
yazarak hata oranını minimuma indirmektedirler.
Geçmişi çok yeni olan bu yöntem, Xamarin Studio ile gerçekleştirilerek işletim
sistemine kurulumundan örnek bir uygulama geliştirmeye kadar anlatılmıştır. Yazılım
ve kurulum sırasında karşılaşılan hatalara çözüm yolları önerilmiştir.

vii
APPLICATION DEVELOPMENT WITH MONO
SUMMARY

Anahtar kelimeler: Mono,C#,Xamarin,Mobile Apps

The development of software that can run on different platforms or applications has
led to multiple programming language learning requirements. Nowadays applications
and software can be developed with the most powerful object-oriented programming
language C # for multi platforms such as Android, iOS and WinPhone . Thus, the
software developers are saving time and writing simpler and shorter codes for the
same objective.
This method has a very short history and it is explained from the installation to
developing a sample application by using Xamarin Studio. Solutions to problems
encountered while installation and development are also mentioned.

viii
BÖLÜM 1.

Başlangıç

1.1. Mono Nedir?
Mono 2004 yılında ortaya çıkan açık kodlu ücretsiz bir projedir. Novell şirketi
(şimdilerde Xamarin) tarafından geliştirilmişti. Mono’nun asıl amacı Microsoft.Net
uygulamalarını farklı platformlarda çalıştırmaktan ziyade Linux geliştiricileri için de
daha iyi geliştirme ortamı sağlamaktı. Mono Android, Linux, Mac OS X, Windows,
Solaris hatta PS3,Wii ve Xbox360 gibi birçok platformda çalıştırılabilir.
Mono’nun bileşenleri 3 gruptan oluşur:
1- Ana bileşenler : C# derleyicisi, Ana Dil Alt Yapısı (CLI) sanal makinası ve
ana sınıf kütüphaneleri.
2- Mono/ Linux/GNOME Geliştirme Yığını: Bu yığın, GNOME (masaüstü
kullanıcı arayüzü) kullanılarak uygulama geliştirme gereçlerini ve açık kodlu
sınıf kütüphanelerini temin eder. Bunlar; grafik kullanıcı arayüzü geliştirme
için Gtk# ( GNOME kütüphaneleri için .NET bağlayıcı seti) , Gecko render
motoru ile çalışacak Mozilla kütüphaneleri, Unix entegrasyon kütüphaneleri
(Mono.Posix), veritabanı bağlantısı kütüphaneleri, bir güvenlik yığını ve
XML şema dili RelaxNG’dir.
3- Microsoft Uyumluluk Yığını: .Net uygulamalarını Linux’a bağlamak için
koridor temin eder. Bu bileşenler ADO.NET,ASP.NET ve Windows Forms vs.
içerir.
Mono’nun mimarisi aşağıdaki resimde özetlenmiştir.
2

Şekil 1-1Mono Mimarisi

1.2. MonoDevelop veya Xamarin Studio
MonoDevelop aynı zamanda, C, C, Python, Java, ve Vala gibi dilleri desteklemesine
rağmen öncelikle C# ve diğer. NET dilleri -Nemerle, Boo ve Java (ile IKVM.NET)
gibi- için tasarlanmış bir GNOME entegre geliştirme ortamıdır. MonoDevelop
,Mono geliştiricilerin ihtiyaçlarını karşılamak için gelişmiştir. IDE sınıf yönetimi,
yerleşik yardım, kod tamamlama, Stetic (bir GUI tasarımcı), proje desteği ve entegre
debugger içerir.
2011 yılında Novell’in başka bir şirkete satılmasıyla işten çıkarılan Mono’nun
yaratıcısı Miguel de Icaza, kendi kurduğu Xamarin adlı şirket adı altında devam
edeceğini açıkladı. iOS için gelistirilmiş Mono Touch ve Android için geliştirilmiş
Mono for Android’in lisansı alınarak 2013 yılında Xamarin Studio adlı bir program
altında birleştirildi ve piyasaya sürüldü. Yazılacak uygulama da bu program
kullanılarak geliştirilecektir.
1.3. Xamarin IDE Nasıl Çalışır ?
Xamarin Studio iOS ve Android uygulamalar geliştirmek için bütünleşik
geliştirme ortamıdır. Xamarin’in çalışma mantığı aşağıdaki diyagramlarla görsel
olarak açıklanabilir.
3

Şekil 1-2 Xamarin Çalışma Mantığı

Xamarin Derleyicisi ise aşağıdaki gibi çalışır.

Şekil 1-3 Xamarin Derleyicisi Çalışma Mantığı
BÖLÜM 2.

Xamarin Studio Paketinin Kurulumu

Geliştirilecek uygulamalar Windows 7 işletim sistemi üzerinde yapılacağından
dolayı bu işletim sistemine göre kurulum adımları ayrıntılı anlatılacaktır.

2.1. “Xamarin Installer” ile Xamarin Kurulumu
İlk

adım

Xamarin

kurulum

http://www.xamarin.com/Download:

indirmek

sihirbazını
olacaktır.

bu
Yazılımın

linkten
ücretsiz

versiyonunu indirmek ilk başta tercih sebebidir. Paketi yükleyebilmek için üyelik
istenmektedir. Üyeliğin avantajı,

kurulum ve yazılım geliştirme sırasında

karşılaşılabilecek hatalara çözümler bulunmasında yardım sağlayabilmesidir. Yeni
kurulan bir platform olduğundan web sitedeki forumun kullanılması şiddetle tavsiye
edilmektedir.

Şekil 2-1Xamarin Kurulum Ekranı
5

2.1.1. Yükleme sihirbazının adımları:
Yükleme sihirbazının aşamaları şekillerle anlatılmıştır:

Şekil 2-2 Yükleme Ekranı
6

Şekil 2-3 Yükleme Seçim Ekranı

Şekil 2-4 Android SDK'nın Kurulum Yeri Ekranı
7

Şekil 2-5 Yüklenmesi Gereken Programlar Listesi

Şekil 2-6 Lisans Kabul Ekranı
8

Şekil 2-7 Yükleme İlerlemesi

Şekil 2-8 Windows'un Kurulumu Konfigure Etmesi
9

Şekil 2-9 Yükleme Hazır

Bu ekran katıldığında Xamarin ile yazılım geliştirmeye başlanılabilir.

2.2. Kurulumda Karşılaşılan Hatalar ve Çözümleri
Xamarin çok yeni bir platform olduğundan dolayı kurulum sırası yukarıda
açıklandığı gibi gerçekleşmeyebilir yani Xamarin Installer çalışmayabilir. Bu
durumda manuel yükleme seçeneği tercih edilebilir. Manuel yükleme aşağıdaki
adımlarla yapılabilir:
2.2.1. Java SDK Yüklenmesi
Aşağıdaki bağlantıdan Java JDK 1.6 veya 1.7 indirilebilir. Android SDK 32 bit JDK
ile çalışır dolaysıyla platform olarak “Windows” seçilmelidir.
10



http://download.xamarin.com/Installer/MonoForAndroid/jdk-6u39-windowsi586.exe

2.2.2. Android SDK Kurulumu


Windows SDK installer’ı aşağıdaki bağlantıdan indirilip kurulması (installer_r10windows.exe) http://developer.android.com/sdk/index.html



Kurulumun çalıştırılması.



SDK Manager’ın yükleme ardından çalıştırılması.



En azından şu versiyonların yüklenmesi gerekir:
o

Android SDK Tools, revision 16 veya yükseği

o

Android SDK Platform-tools, revision 10 veya yükseği

o

SDK Platform Android 1.6, API 4, revision 3

o

SDK Platform Android 2.2, API 8, revision 2

Not: Update All.. butonu ile kolay yolla bütün gerekli yüklemeler yapılabilir.

Şekil 2-10 Android SDK Ekranı
11

2.2.2.1. Android Sanal Cihaz Yöneticisi Ayarlarının Yapılması
-

Android

Simulator

farklı

cihazları

simule

etmek

için

çok

farklı

konfigurasyonda çalışır. Bunun için en az bir adet sanal cihaz konfigure
edilmelidir. Bu işlem “Virtual Devices” sekmesi seçilerek yapılır.

Şekil 2-11 Android Cihaz Emülatörü Ekleme

-

Sağ kısımdaki butonlardan “New” butonu seçilerek aşağıdaki ekran sayesinde
ayarlamalar yapılır:
12

Şekil 2-12 Eklenecek Emülatörün Özelliklerinin Ayarlanması

-

Gelecek mesaj kutusunda konfigürasyonu yapılan cihazın özellikleri ile ilgili
bilgiler yer alır.

Şekil 2-13 Emülatör Kurulumu Onayı
13

Bu işlem de yapıldığında Android SDK kurulumu tamamlanmış olur.

2.2.3. GTK# Kurulumu
Xamarin

içindeki

GTK

kütüphanelerinin

kurulumu

bu

linkten

sağlanır:

http://download.xamarin.com/GTKforWindows/Windows/gtk-sharp-2.12.21.msi
2.2.4. Xamarin Studio Kurulumu
Bu linkten Visual Studio’nun monodaki muadili Xamarin Studio kurulur:
http://download.xamarin.com/studio/Windows/XamarinStudio-4.0.8.msi
2.2.5. Xamarin.Android Kurulumu
Android programlamayı C#’ta gerçekleştirmek için Xamarin paketinin içinde yer
alan

bu

program

bu

linkten

indirilir

:

http://download.xamarin.com/MonoforAndroid/Windows/mono-android4.6.08007.msi
Not: Buradaki 3. ve 4. Adım Visual Studio’da çalışılacaksa atlanabilir. Bu projede
yeni teknolojilerin kullanılması açısından Xamarin Studio ile yazılım geliştirilecektir.
BÖLÜM 3.
Xamarin

Xamarin Studio’da İlk Uygulama

Paketinin

kurulumunu

tamamladıktan

sonra

her

yazılımcı

gibi

“HelloWorld” yazılımı geliştirilip test edilmesi fayda sağlayacaktır. Yazılımda bir
butona basıldığında bize mesaj vermesi istenmektedir. Uygulama geliştirmeleri
kullanım

alanı

ve

popülarite

açısından

önde

olan

Android

ortamında

gerçekleştirilecektir. Test yazılımının geliştirilmesi şu aşamalarda gerçekleştirilir:


Xamarin Studio açılış ekranından Dosya>Yeni Çözüm seçilir.

Şekil 3-1 Xamarin Studio Açılış Ekranı
15



Açılan Pencereden C# sekmesinden Android seçilir. İstenen uygulama tipine
göre yazılım geliştirilir.

Şekil 3-2 Yeni Çözüm Oluşturma Ekranı



Çözüm yaratıldığında karşıya çıkan ekran şu şekildedir.

Şekil 3-3 Ana Kodun Bulunduğu Sayfa
16



Yazılımı veya Uygulamayı geliştirmek için şu kodlar yazılır.

Şekil 3-4 Kodların Tanımlanması



Uygulama yazıldıktan sonra hata ayıklama yapılırken (debug) android
emülatörü ekranı gelir. Bu ekrandan daha önce tanımlanan android sanal
cihazı başlatılarak uygulama android ortamında test edilir.
17

Şekil 3-5 Emülatör Seçimi



Emülatör başlatıldığında bu ekran görünür.

Şekil 3-6 Emülatör Arayüzü
18



Ekranda Android işletim sistemi masaüstünün görülmesi yaklaşık 5-10
dakika süre almaktadır. Bunun nedeni Windows işletim sisteminin emülatörü
ekrana getirme sürecindeki dönüştürmedir. İşaretlenen uygulamaya tıklanır.

Şekil 3-7 Emülatör Uygulamaları Ekranı



Uygulama ekranı şu şekilde görünür.

Şekil 3-8 Uygulamanın Açılış Ekranı
19



Butona tıklandığında istenen mesaj ekranda görünür.

Şekil 3-9 Uygulama Çıktısı

Böylelikle “HelloWorld” uygulaması başarıyla çalıştırılmış olur.
20

BÖLÜM 4.

Xamarin Studio’da “ToDo” Adlı Örnek Uygulamanın
Geliştirilmesi

Her mobil cihazında işletim sistemi fark etmeksizin bulunan “Yapılacak İşler” yani
“ToDo” uygulamasının Andriod için geliştirilmesi şekillerle

anlatılacaktır.

Uygulamada girilecek işleri ekleme ekranı ve kaydedilen işlerin göründüğü ekran
olmak üzere iki ekran görüntüsü tasarlanmaktadır.

4.1. Yeni Çözüm Oluşturulması ve Uygulamanın Arayüz Tasarımı

Şekil 4-1 Uygulama Arayüzü Tasarımı



Xamarin Studio’da açılış ekranından yeni Android Uygulama dosyası
seçilerek geliştirmeye başlanır.
21

Şekil 4-2 Xamarin Studio Açılış Ekranı

Şekil 4-3 Yeni Android Uygulama Çözümü
22



Yeni Android uygulaması açıldığında çözümün içeriğinde “References“ adlı
Mono paketlerinin de bulunduğu klasör, “Components“ adlı eklentiler klasörü
bulunur.“Resources“ adlı kaynak klasörü içerisinde uygulama simgelerinin
bulunduğu “drawable“, uygulama arayüzlerinin tasarlandığı “layout“ klasörü
bulunur.

Şekil 4-4 Çözümün İçeriği



Uygulama geliştirmenin ilk aşaması olan arayüzlerin geliştirilmesi kısmı ile
başlanır. Tasarım aşamasında planlanan ekranlardan Kaydedilen İşler
ekranına ilgili kontroller eklenir.

Şekil 4-5 Kaydedilen İşler Ekranı-Ana Ekran
23



C#’ta WinForms uygulamaları gibi kotrolün üzerine çift tıklandığında
yapılacak işleri bu platformda elle girilmesi gerekmektedir. Ayrıca
ASP.Net’teki gibi kod ile ekran görünümleri ve kontrollerin görsel özellikleri
değiştirilebilir.

Şekil 4-6 Ekran Kontrolleri Kodları



Kontrollerin özellikleri menüsünden kod yazımında kullanılacak adları,
stilleri, boyutları vs. ayarları yapılabilir.

Şekil 4-7 Kontrol Özellikleri Menüleri
24



İkinci ekran olan İşlerin Eklenme Ekranı tasarımı aynı şekilde yapılır.

Şekil 4-8 İş Ekleme Ekranı



Sonraki adımda uygulama için hedeflenen Android versiyonu ve cihaz türü
için uygulamanın görünümü test edilir.

Şekil 4-9 Android Cihaz Görünümü/Versiyonu Ayarlama
25

4.2. Uygulamanın Kodlarının Yazılması

Arayüz tasarımını bitirdikten sonra kodlama kısmında sırasıyla; kaydedilen işleri
görüntüleme/listeleme, iş ekleme, eklenen işleri tanımlama, veri tabanına bağlama ve
işlerin ana ekranda nasıl görüneceği kodları yazılır. İşlemler sırasıyla şu şekilde
halledilir:


Çözüm açıldığında “MainActivity.cs” adlı dosya “TaskList.cs” yani İş Listesi
olarak adlandırılarak arayüzde eklenmiş olan kontroller ve işlevleri
tanımlanır.

Şekil 4-10 TaskList.cs Kaydedilen İşler (Ana ekran) İlk Kodlar
26



Sonrasında iş ekleme ekranı için “TaskView.cs” adlı bir boş sınıf dosyası
eklenir. İş Ekleme ekranı tasarımındaki kontroller ve işlevleri tanımlanır.

Şekil 4-11 "TaskView.cs" İlk Kodları
27



Eklenecek işlerin özelliklerini tanımlamak ve bunları veritabanına bağlamak
için çözüm içinde “Core” adlı yeni bir klasör oluşturulur. Bu klasöre “Tasks”
ve

“TaskViewModel”

Şekil 4-12 Çözüme Yani Klasör Ekleme

adlı

iki

boş

sınıf

eklenir.
28



“Tasks.cs”

İşler

sınıfında

eklenecek

işlerin

tanımlaması

yapılır.

Şekil 4-13 "Tasks.cs" Sınıfı Kodları



Daha önce bahsedilen “TaskViewModel.cs” sınıfına kod yazmadan önce
çözüm panelinden “Components” seçilir ve açılan ekrandan eklenen işlerin
kaydının

tutulacağı

Şekil 4-14 Bileşen Ekleme Ekranı

“SQLite”

bileşeni

eklenir.
29



Bu ekrandan bundan sonra yazılacak uygulamalar için birçok çeşit bileşenler
eklenerek uygulamanın işlerliği arttırılabilir.

Şekil 4-15 Bileşen Ekleme



Bileşen eklendiğinde çözüm panelinde“Components”adlı kısımda görülebilir.

Şekil 4-16 Çözüm Paneli



“SQLite” bileşeni eklendikten sonra daha önce “Core” klasöründe
tanımlanmış “TaskViewModel” adlı sınıf seçilerek kaydedilen işlerin
veritabanı ile bağlantısı kurulur. Bu sınıfınkodları “TaskView” ve “TaskList”
30

adlı

sıınfların

kodlarını

Şekil 4-17 "TaskViewModel" Kodları

da

eklentiler

yapılmasını

gerektirir.
31



“TaskView” sınıfına “TaskViewModel” ile bağlantı kurulması için gerekli
kodlar

Şekil 4-18 "TaskView" Sınıfına Eklenecek Kodlar

eklenir.
32



“TaskList”

sınıfı

kodları

Şekil 4-19 "TaskList" Sınıfına Eklenecek Kodlar

da

şu

şekilde

güncellenir.
33



Son olarak çözüm panelinde “Resources” kısmına yeni boş sınıf eklenerek
işlerin ana ekranda nasıl görüneceği ayarlanır. Bu sınıf”TaskListAdapter”
olarak adlandırılır.

Şekil 4-20 "TaskListAdapter" Kodları
34



Son kodlar da yazıldığında kurulum safhasında bilgisayara yüklenilen
Android Cihaz Yöneticisi “Device Manager” açılarak daha önceden
tanımlanan Android cihazların emülatörü çalıştırılır. Bu işlem normal bir
Windows

7

Şekil 4-21Android Emulator Ekranı

sisteminde

5-10

dakika

sürebilir.
35



Bu emülatör ekranı görüldüğünde Xamarin Studio’da çözüm “Debug” tuşu
ile çalıştırılır. Emulatorün uygulama listesinde bu uygulama tıklandığında
karşıya

Şekil 4-22 Uygulama Ana Ekranı

uygulamanın

ana

ekranı

çıkar.
36



Ekle butonuna tıklandığında karşıya çıkan ekrandan ilgili kısımlar doldurulur
ve

kaydet

Şekil 4-23 Uygulamada İş Ekleme Ekranı

tuşuna

basılır.
37



Kaydet butonuna tıklandığında iş ana ekranda görünür. Böylelikle bu basit
ama temel uygulama çalıştırılmış olur.

Şekil 4-24 Kaydedilen İşin Ana Ekranda Görünmesi
38

BÖLÜM 5.

Uygulamanın Diğer Platformlarda Çalıştırılması

Android, Windows Phone ve iOS işletim sisteminde içerikte farklı çalışmasına
rağmen Xamarin ile C# kodlarının bu 3 platformda kullanılması kusursuz olmasa da
yaratıcı bir tecrübe sunmaktadır.
İş mantığı, veri tabanı kullanımı, ağ erişimi ve diğer ortak işlevler için sadece bir kez
kod yazımı yapılarak her platform için tekrar kullanımları sağlanabilir bu şekilde
kullanıcı ara yüzleri için bir zemin oluşturularak platforma özel kullanıcı arabirimleri
gerçekleştirilir.
Xamarin ile uygulama geliştirme ya Xamarin Studio veya Visual Studio ile
yapılabilir. Seçilecek interaktif geliştirme ortamı hedeflenen platformlara göre
belirlenir.
Windows Phone uygulamaları sadece Windows ortamında geliştirilebileceğinden 3
platform için tek bir işletim sisteminde geliştirme yapılamayacaktır.

Şekil 5-1Platform ve İşletim Sistemi Geliştirilebilirlik Matrisi
39

5.1. iOS’te Uygulama Geliştirme
iOS uygulamalar geliştirmek için bir Mac OS X işletim sistemi olan bir Mac
Bilgisayara ihtiyaç vardır. Visual Studio, Xamarin’nin iOS Visual Studio eklentisi ile
de uygulama geliştirme ve dağıtma için kullanılabilir. Fakat Mac işletim sistemi
kurma ve lisanslama amaçları için yine de gereklidir.
Apple’ın XCode arayüz geliştirme ortamı derleyici ve simülatörün test amacıyla
sağlanması açısından yüklenmelidir. Uygulamayı gerçek bir cihaza göndermek ve
uygulamayı yayınlamak/yaymak için de Apple’ın Geliştirici Programı’na yıllık
99dolar üyelik ücreti ile katılınması gerekir. Geliştirilen her uygulama Apple
tarafından test edilip onaylandıktan sonra indirilmek için sisteme yüklenir.

Şekil 5-2 iOS'te ToDo Uygulaması Görünümü
40

5.2. Windows Phone’da Uygulama Geliştirme
Windows Phone uygulamaları Xamarin’i direk olarak kullanmaz. Visual Studio
2010, 2012, 2013 araç kiti ile geliştirilir. Yazılan C# kodu Xamarin kullanılarak
diğer platformlarla paylaşılabilir.

Şekil 5-3 Windows phone'da ToDo Uygulamasının Görünümü
41

SONUÇ
Xamarin Java veya Objective C dillerini kullanmayı bilmeyip C# dilinde
uzmanlaşmış olan geliştiriciler için mobil uygulama geliştirmede önemli avantajlar
sunmaktadır. Henüz çok yeni bir teknoloji olsa da arka planında 10 yıllık bir Mono
tecrübesi olan Xamarin gelecek vadeden bir teknoloji olarak kabul edilebilir.
Yükleme ve geliştirme süresince yaşanan sıkıntılara çözüm olarak forum sitelerinden
yardım alınabilir. Fakat öğrenme sürecinde öğretici video veya Türkçe yazılı kaynak
bulunması zor olmaktadır. Xamarin’in dünya çapında resmi sitesine kayıtlı 500.000
geliştiricisi bulunmaktadır.
Yapılan uygulama özelinde karşılaşılan en büyük sıkıntı veritabanı için uygulamaya
eklenen SQLite bileşeninin düzgün çalışmaması ve sorunun tam olarak
çözülememesidir. Xamarin Studio ücretsiz versiyonunu sadece 65KB’lık bir
uygulama boyutu ile sınırlamakta ve bu sınırlama birçok bileşenin uygulamaya
eklenmesini imkansız kılmaktadır. Bu projede de ücretsiz sürüm kullanıldığından
büyük ihtimalle SQLite bileşeninin düzgün çalışmamasının sebebi
tahmin edilmektedir.

budur diye
KAYNAKLAR

Erişim

[1]

http://docs.xamarin.com/guides/cross-platform/getting_started/,
04.10.2013

Tarihi:

[2]

http://docs.xamarin.com/guides/android/getting_started/ , Erişim Tarihi: 14.10.2013

[3]

http://xamarin.com/tour , Erişim Tarihi: 1.10.2013

[4]

http://docs.xamarin.com/guides/crossplatform/application_fundamentals/building_cross_platform_applications/case_studytasky/ , Erişim Tarihi: 15.12.2013, 02.02.2014

[5]

http://forums.xamarin.com/, Erişim Tarihi: 10.11.2013, 05.12.2013, 03.01.2014,
01.02.2014

[6]

http://vimeo.com/68383292 , Erişim Tarihi: 1.11.2013, 03.12.2013, 02.01.2014,
15.01.2014, 01.02.2014

[7]

http://www.youtube.com/watch?v=WkNbRUqnSSc , Erişim Tarihi: 15.10.2013

[8]

http://www.youtube.com/watch?v=IQW_00OKhRs , Erişim Tarihi: 25.11.2013

[9]

http://www.youtube.com/watch?v=0s0zh0zAaLg , Erişim Tarihi: 20.12.2013
43

ÖZGEÇMİŞ

M.Buğra Kanmaz, 27.05.1984’te Erzurum’da doğdu. İlk ve orta eğitimini Bursa’da
tamamladı.2008 yılında Dokuz Eylül Üniversitesi Matematik Bölümünden mezun
oldu.Yabancı dilini geliştirmek ve Yüksek Lisans yapmak için gittiği ABD’de
Matematik alanında çalışmalarda da bulundu.2011 yılında kesin dönüş yaptıktan
sonra askerlik vazifesini yedek subay olarak ifa etti. 2012 yılında Savunma Sanayii
Müsteşarlığı’nda Proje Asistanı olarak çalışmaya başladı. 2014 yılından itibaren
Bursa-Eskişehir-Bilecik Kalkınma Ajansı’nda Yatırım Destek Uzman Adayı olarak
çalışmaktadır.

Mais conteúdo relacionado

Semelhante a Xamarin ile Android Uygulama

Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_ProjectLimited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_ProjectSeref Ugur Demir
 
Adobe actionscript 3.0 programlama türkçe
Adobe actionscript 3.0 programlama türkçeAdobe actionscript 3.0 programlama türkçe
Adobe actionscript 3.0 programlama türkçedeniz armutlu
 
vehicle gearbox modelling
vehicle gearbox modellingvehicle gearbox modelling
vehicle gearbox modellingmustafa köstek
 
Adobe Flash as3 actionscript 3 ile programlama türkçe
Adobe Flash as3 actionscript 3 ile programlama türkçeAdobe Flash as3 actionscript 3 ile programlama türkçe
Adobe Flash as3 actionscript 3 ile programlama türkçedeniz armutlu
 
Adobe Flash ActionScript 3 Programlama Türkçe
Adobe Flash ActionScript 3 Programlama TürkçeAdobe Flash ActionScript 3 Programlama Türkçe
Adobe Flash ActionScript 3 Programlama Türkçedeniz armutlu
 
Nesne tabanlı programlama 2
Nesne tabanlı programlama 2Nesne tabanlı programlama 2
Nesne tabanlı programlama 2Erol Dizdar
 
Teknik resim ve çizim teknolojileri 520 tc0007 (1)
Teknik resim ve çizim teknolojileri 520 tc0007 (1)Teknik resim ve çizim teknolojileri 520 tc0007 (1)
Teknik resim ve çizim teknolojileri 520 tc0007 (1)Iklimlendirme Sogutma
 
Nesne tabanlı programlama 6
Nesne tabanlı programlama 6Nesne tabanlı programlama 6
Nesne tabanlı programlama 6Erol Dizdar
 
Internet programcılığı 4
Internet programcılığı 4Internet programcılığı 4
Internet programcılığı 4Erol Dizdar
 
Öncel Akademi: Uzmanlık Alan
Öncel Akademi: Uzmanlık AlanÖncel Akademi: Uzmanlık Alan
Öncel Akademi: Uzmanlık AlanAli Osman Öncel
 
Açık-Kaynak-Kod-Geçiş-Rehberi-2023.pdf
Açık-Kaynak-Kod-Geçiş-Rehberi-2023.pdfAçık-Kaynak-Kod-Geçiş-Rehberi-2023.pdf
Açık-Kaynak-Kod-Geçiş-Rehberi-2023.pdfMustafa Kuğu
 
14-İşletim Sistemleri Gelismis Özellikleri
14-İşletim Sistemleri Gelismis Özellikleri14-İşletim Sistemleri Gelismis Özellikleri
14-İşletim Sistemleri Gelismis ÖzellikleriMücahit Gürsoy
 
Türev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
Türev Ürünler ve Türk Bankacılık Sektörü UygulamalarıTürev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
Türev Ürünler ve Türk Bankacılık Sektörü UygulamalarıMehmet Evlatoğlu
 
Türev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
Türev Ürünler ve Türk Bankacılık Sektörü UygulamalarıTürev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
Türev Ürünler ve Türk Bankacılık Sektörü UygulamalarıMehmet Evlatoğlu
 
Teknik resim ve çizim teknolojileri 520 tc0029 (1)
Teknik resim ve çizim teknolojileri 520 tc0029 (1)Teknik resim ve çizim teknolojileri 520 tc0029 (1)
Teknik resim ve çizim teknolojileri 520 tc0029 (1)Iklimlendirme Sogutma
 

Semelhante a Xamarin ile Android Uygulama (20)

Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_ProjectLimited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
Limited for Linkedin_Şeref_Uğur_Demir_MSc_Graduation_Project
 
Trt staj 2
Trt staj 2Trt staj 2
Trt staj 2
 
Adobe actionscript 3.0 programlama türkçe
Adobe actionscript 3.0 programlama türkçeAdobe actionscript 3.0 programlama türkçe
Adobe actionscript 3.0 programlama türkçe
 
vehicle gearbox modelling
vehicle gearbox modellingvehicle gearbox modelling
vehicle gearbox modelling
 
Adobe Flash as3 actionscript 3 ile programlama türkçe
Adobe Flash as3 actionscript 3 ile programlama türkçeAdobe Flash as3 actionscript 3 ile programlama türkçe
Adobe Flash as3 actionscript 3 ile programlama türkçe
 
Adobe Flash ActionScript 3 Programlama Türkçe
Adobe Flash ActionScript 3 Programlama TürkçeAdobe Flash ActionScript 3 Programlama Türkçe
Adobe Flash ActionScript 3 Programlama Türkçe
 
Nesne tabanlı programlama 2
Nesne tabanlı programlama 2Nesne tabanlı programlama 2
Nesne tabanlı programlama 2
 
Teknik resim ve çizim teknolojileri 520 tc0007 (1)
Teknik resim ve çizim teknolojileri 520 tc0007 (1)Teknik resim ve çizim teknolojileri 520 tc0007 (1)
Teknik resim ve çizim teknolojileri 520 tc0007 (1)
 
Nesne tabanlı programlama 6
Nesne tabanlı programlama 6Nesne tabanlı programlama 6
Nesne tabanlı programlama 6
 
İleri programlama
İleri programlamaİleri programlama
İleri programlama
 
Internet programcılığı 4
Internet programcılığı 4Internet programcılığı 4
Internet programcılığı 4
 
Öncel Akademi: Uzmanlık Alan
Öncel Akademi: Uzmanlık AlanÖncel Akademi: Uzmanlık Alan
Öncel Akademi: Uzmanlık Alan
 
Açık-Kaynak-Kod-Geçiş-Rehberi-2023.pdf
Açık-Kaynak-Kod-Geçiş-Rehberi-2023.pdfAçık-Kaynak-Kod-Geçiş-Rehberi-2023.pdf
Açık-Kaynak-Kod-Geçiş-Rehberi-2023.pdf
 
NetCAD/NetPRO 5.0 Dijital Kitabi
NetCAD/NetPRO 5.0 Dijital KitabiNetCAD/NetPRO 5.0 Dijital Kitabi
NetCAD/NetPRO 5.0 Dijital Kitabi
 
14-İşletim Sistemleri Gelismis Özellikleri
14-İşletim Sistemleri Gelismis Özellikleri14-İşletim Sistemleri Gelismis Özellikleri
14-İşletim Sistemleri Gelismis Özellikleri
 
Türev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
Türev Ürünler ve Türk Bankacılık Sektörü UygulamalarıTürev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
Türev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
 
Türev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
Türev Ürünler ve Türk Bankacılık Sektörü UygulamalarıTürev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
Türev Ürünler ve Türk Bankacılık Sektörü Uygulamaları
 
Portlar
PortlarPortlar
Portlar
 
6-Portlar
6-Portlar6-Portlar
6-Portlar
 
Teknik resim ve çizim teknolojileri 520 tc0029 (1)
Teknik resim ve çizim teknolojileri 520 tc0029 (1)Teknik resim ve çizim teknolojileri 520 tc0029 (1)
Teknik resim ve çizim teknolojileri 520 tc0029 (1)
 

Mais de M.Bugra (Bora) Kanmaz

Mais de M.Bugra (Bora) Kanmaz (12)

Basic Data Analysis with Regression
Basic Data Analysis with RegressionBasic Data Analysis with Regression
Basic Data Analysis with Regression
 
Eskisehir Anahtar Rakamlar 2015
Eskisehir Anahtar Rakamlar 2015Eskisehir Anahtar Rakamlar 2015
Eskisehir Anahtar Rakamlar 2015
 
Bilecik Anahtar Rakamlar 2015
Bilecik Anahtar Rakamlar 2015Bilecik Anahtar Rakamlar 2015
Bilecik Anahtar Rakamlar 2015
 
Bursa Key Figures 2015
Bursa Key Figures 2015Bursa Key Figures 2015
Bursa Key Figures 2015
 
Bursa Anahtar Rakamlar 2015
Bursa Anahtar Rakamlar 2015Bursa Anahtar Rakamlar 2015
Bursa Anahtar Rakamlar 2015
 
İstatistiklerle Bursa
İstatistiklerle Bursaİstatistiklerle Bursa
İstatistiklerle Bursa
 
Kalkınma Göstergeleriyle TR41 2009-2014
Kalkınma Göstergeleriyle TR41 2009-2014Kalkınma Göstergeleriyle TR41 2009-2014
Kalkınma Göstergeleriyle TR41 2009-2014
 
T.Hobbes ve J.Locke'ın Toplum Sözleşmesi ve ve Devlet Üzerine Görüşlerinin Ka...
T.Hobbes ve J.Locke'ın Toplum Sözleşmesi ve ve Devlet Üzerine Görüşlerinin Ka...T.Hobbes ve J.Locke'ın Toplum Sözleşmesi ve ve Devlet Üzerine Görüşlerinin Ka...
T.Hobbes ve J.Locke'ın Toplum Sözleşmesi ve ve Devlet Üzerine Görüşlerinin Ka...
 
Nonlinear Differential Equations
Nonlinear Differential EquationsNonlinear Differential Equations
Nonlinear Differential Equations
 
Teşvik sistemi ve TR41
Teşvik sistemi ve TR41Teşvik sistemi ve TR41
Teşvik sistemi ve TR41
 
Math Classroom Procedures
Math Classroom Procedures Math Classroom Procedures
Math Classroom Procedures
 
Bilgiden Kümelenme Sürecine
Bilgiden Kümelenme SürecineBilgiden Kümelenme Sürecine
Bilgiden Kümelenme Sürecine
 

Xamarin ile Android Uygulama

  • 1. T.C. SAKARYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ MONO ile YAZILIM GELİŞTİRME TEZSİZ YÜKSEK LİSANS BİTİRME PROJESİ M.Buğra KANMAZ Enstitü Anabilim Dalı : Enstitü Bilim Dalı : BİLGİSAYAR VE BİLİŞİM MÜHENDİSLİĞİ BİLİŞİM TEKNOLOJİLERİ Tez Danışmanı : Doç. Dr. Cemil ÖZ Şubat 2014
  • 2.
  • 3. T.C. SAKARYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ MONO ile YAZILIM GELİŞTİRME TEZSİZ YÜKSEK LİSANS BİTİRME PROJESİ M.Buğra KANMAZ Enstitü Anabilim Dalı : Enstitü Bilim Dalı BİLGİSAYAR VE BİLİŞİM MÜHENDİSLİĞİ BİLİŞİM TEKNOLOJİLERİ : Bu Proje .. /.. /20.. tarihinde aşağıdaki jüri tarafından Oybirliği ile kabul edilmiştir. Doç.Dr. Cemil ÖZ Prof.Dr. Nejat YUMUŞAK Jüri Başkanı Üye Yrd. Doç.Dr. Nilüfer YURTAY Üye
  • 4.
  • 5. ÖNSÖZ Gelişen mobil teknolojileriyle kullanıcıların ihtiyaç duyduğu kişisel yazılımlar yerini mobil uygulamalara bırakmaktadır. Mobil platformlarının farklı oluşu yazılım noktasında birçok farklı dilde uygulama geliştirmeyi zorunlu kılmaktadır. Bu durumun oluşturduğu problemin çözümü ise yazılım geliştiricilerin yaygın olarak kullandığı C# dili ile bu mobil uygulamalar geliştirilebilmesi hatta bu uygulamaların kolayca farklı platformlara uyarlanabilmesidir. ii
  • 6. İÇİNDEKİLER SİMGELER VE KISALTMALAR LİSTESİ ........................................................................................ iv ŞEKİLLER LİSTESİ ........................................................................................................................ v ÖZET……. ................................................................................................................................. vii SUMMARY.............................................................................................................................. viii BÖLÜM 1. Başlangıç .......................................................................................... 1 1.1. Mono Nedir?.................................................................................... 1 1.2. MonoDevelop veya Xamarin Studio ................................................ 2 1.3. Xamarin IDE Nasıl Çalışır ? .............................................................. 2 BÖLÜM 2. Xamarin Studio Paketinin Kurulumu ................................................ 4 2.1. “Xamarin Installer” ile Xamarin Kurulumu ...................................... 4 2.1.1. Yükleme sihirbazının adımları: ......................................................... 5 2.2. Kurulumda Karşılaşılan Hatalar ve Çözümleri .................................. 9 2.2.1. Java SDK Yüklenmesi ........................................................................ 9 2.2.2. Android SDK Kurulumu .................................................................. 10 2.2.2.1. Android Sanal Cihaz Yöneticisi Ayarlarının Yapılması..................... 11 2.2.3. GTK# Kurulumu .............................................................................. 13 2.2.4. Xamarin Studio Kurulumu.............................................................. 13 2.2.5. Xamarin.Android Kurulumu ........................................................... 13 BÖLÜM 3. Xamarin Studio’da İlk Uygulama .................................................... 14 BÖLÜM 4. Xamarin Studio’da “ToDo” Adlı Örnek Uygulamanın Geliştirilmesi20 4.1. Yeni Çözüm Oluşturulması ve Uygulamanın Arayüz Tasarımı ........ 20 4.2. Uygulamanın Kodlarının Yazılması ................................................. 25 BÖLÜM 5. Uygulamanın Diğer Platformlarda Çalıştırılması ............................ 38 5.1. iOS’te Uygulama Geliştirme ........................................................... 39 5.2. Windows Phone’da Uygulama Geliştirme ..................................... 40 SONUÇ………… ......................................................................................................................... 41 KAYNAKLAR ............................................................................................................................. 42 ÖZGEÇMİŞ ............................................................................................................................... 43 iii
  • 7. SİMGELER VE KISALTMALAR LİSTESİ GUI : Grafiksel Kullanıcı Arayüzü GNOME : GNU Şebeke Nesne Modeli Ortamı IDE : Arayüz Geliştirme Ortamı iOS : iPhone İşletim Sistemi JDK : Java Geliştirme Kiti SDK : Yazılım Geliştirme Kiti iv
  • 8. ŞEKİLLER LİSTESİ Şekil 1-1Mono Mimarisi ............................................................................................. 2 Şekil 1-2 Xamarin Çalışma Mantığı ........................................................................... 3 Şekil 1-3 Xamarin Derleyicisi Çalışma Mantığı ......................................................... 3 Şekil 2-1Xamarin Kurulum Ekranı ............................................................................. 4 Şekil 2-2 Yükleme Ekranı ........................................................................................... 5 Şekil 2-3 Yükleme Seçim Ekranı ................................................................................ 6 Şekil 2-4 Android SDK'nın Kurulum Yeri Ekranı ...................................................... 6 Şekil 2-5 Yüklenmesi Gereken Programlar Listesi ..................................................... 7 Şekil 2-6 Lisans Kabul Ekranı .................................................................................... 7 Şekil 2-7 Yükleme İlerlemesi...................................................................................... 8 Şekil 2-8 Windows'un Kurulumu Konfigure Etmesi .................................................. 8 Şekil 2-9 Yükleme Hazır ............................................................................................. 9 Şekil 2-10 Android SDK Ekranı ............................................................................... 10 Şekil 2-11 Android Cihaz Emülatörü Ekleme .......................................................... 11 Şekil 2-12 Eklenecek Emülatörün Özelliklerinin Ayarlanması ................................ 12 Şekil 2-13 Emülatör Kurulumu Onayı ...................................................................... 12 Şekil 3-1 Xamarin Studio Açılış Ekranı.................................................................... 14 Şekil 3-2 Yeni Çözüm Oluşturma Ekranı ................................................................. 15 Şekil 3-3 Ana Kodun Bulunduğu Sayfa .................................................................... 15 Şekil 3-4 Kodların Tanımlanması ............................................................................. 16 Şekil 3-5 Emülatör Seçimi ........................................................................................ 17 Şekil 3-6 Emülatör Arayüzü...................................................................................... 17 Şekil 3-7 Emülatör Uygulamaları Ekranı .................................................................. 18 Şekil 3-8 Uygulamanın Açılış Ekranı ....................................................................... 18 Şekil 3-9 Uygulama Çıktısı ....................................................................................... 19 Şekil 4-1 Uygulama Arayüzü Tasarımı ..................................................................... 20 Şekil 4-2 Xamarin Studio Açılış Ekranı.................................................................... 21 Şekil 4-3 Yeni Android Uygulama Çözümü ............................................................. 21 Şekil 4-4 Çözümün İçeriği ........................................................................................ 22 v
  • 9. Şekil 4-5 Kaydedilen İşler Ekranı-Ana Ekran .......................................................... 22 Şekil 4-6 Ekran Kontrolleri Kodları .......................................................................... 23 Şekil 4-7 Kontrol Özellikleri Menüleri ..................................................................... 23 Şekil 4-8 İş Ekleme Ekranı ....................................................................................... 24 Şekil 4-9 Android Cihaz Görünümü/Versiyonu Ayarlama ....................................... 24 Şekil 4-10 TaskList.cs Kaydedilen İşler (Ana ekran) İlk Kodlar .............................. 25 Şekil 4-11 "TaskView.cs" İlk Kodları....................................................................... 26 Şekil 4-12 Çözüme Yani Klasör Ekleme .................................................................. 27 Şekil 4-13 "Tasks.cs" Sınıfı Kodları ......................................................................... 28 Şekil 4-14 Bileşen Ekleme Ekranı ............................................................................ 28 Şekil 4-15 Bileşen Ekleme ........................................................................................ 29 Şekil 4-16 Çözüm Paneli ........................................................................................... 29 Şekil 4-17 "TaskViewModel" Kodları ...................................................................... 30 Şekil 4-18 "TaskView" Sınıfına Eklenecek Kodlar .................................................. 31 Şekil 4-19 "TaskList" Sınıfına Eklenecek Kodlar..................................................... 32 Şekil 4-20 "TaskListAdapter" Kodları ...................................................................... 33 Şekil 4-21Android Emulator Ekranı ......................................................................... 34 Şekil 4-22 Uygulama Ana Ekranı ............................................................................. 35 Şekil 4-23 Uygulamada İş Ekleme Ekranı ................................................................ 36 Şekil 4-24 Kaydedilen İşin Ana Ekranda Görünmesi ............................................... 37 Şekil 5-1Platform ve İşletim Sistemi Geliştirilebilirlik Matrisi ................................ 38 Şekil 5-2 iOS'te ToDo Uygulaması Görünümü ........................................................ 39 Şekil 5-3 Windows phone'da ToDo Uygulamasının Görünümü............................... 40 vi
  • 10. ÖZET Anahtar kelimeler: Mono, C#, Xamarin, Yazılım, Mobil Uygulama Farklı platformlarda çalışabilecek yazılım veya uygulamaların geliştirilmesi birden çok programlama dili öğrenme gereksinimine yol açmıştır. Günümüzde yaygın bir şekilde kullanılan en güçlü nesneye dayalı programlama dili olan C# ile birden fazla ana platformu (Android, iOS, Windows Phone gibi) destekleyecek yazılımlar ve uygulamalar geliştirilebilmektedir. Böylelikle yazılım geliştiriciler zaman kazanmakta ve aynı işlemi diğer programlama dillerinden daha kısa bir şekilde yazarak hata oranını minimuma indirmektedirler. Geçmişi çok yeni olan bu yöntem, Xamarin Studio ile gerçekleştirilerek işletim sistemine kurulumundan örnek bir uygulama geliştirmeye kadar anlatılmıştır. Yazılım ve kurulum sırasında karşılaşılan hatalara çözüm yolları önerilmiştir. vii
  • 11. APPLICATION DEVELOPMENT WITH MONO SUMMARY Anahtar kelimeler: Mono,C#,Xamarin,Mobile Apps The development of software that can run on different platforms or applications has led to multiple programming language learning requirements. Nowadays applications and software can be developed with the most powerful object-oriented programming language C # for multi platforms such as Android, iOS and WinPhone . Thus, the software developers are saving time and writing simpler and shorter codes for the same objective. This method has a very short history and it is explained from the installation to developing a sample application by using Xamarin Studio. Solutions to problems encountered while installation and development are also mentioned. viii
  • 12. BÖLÜM 1. Başlangıç 1.1. Mono Nedir? Mono 2004 yılında ortaya çıkan açık kodlu ücretsiz bir projedir. Novell şirketi (şimdilerde Xamarin) tarafından geliştirilmişti. Mono’nun asıl amacı Microsoft.Net uygulamalarını farklı platformlarda çalıştırmaktan ziyade Linux geliştiricileri için de daha iyi geliştirme ortamı sağlamaktı. Mono Android, Linux, Mac OS X, Windows, Solaris hatta PS3,Wii ve Xbox360 gibi birçok platformda çalıştırılabilir. Mono’nun bileşenleri 3 gruptan oluşur: 1- Ana bileşenler : C# derleyicisi, Ana Dil Alt Yapısı (CLI) sanal makinası ve ana sınıf kütüphaneleri. 2- Mono/ Linux/GNOME Geliştirme Yığını: Bu yığın, GNOME (masaüstü kullanıcı arayüzü) kullanılarak uygulama geliştirme gereçlerini ve açık kodlu sınıf kütüphanelerini temin eder. Bunlar; grafik kullanıcı arayüzü geliştirme için Gtk# ( GNOME kütüphaneleri için .NET bağlayıcı seti) , Gecko render motoru ile çalışacak Mozilla kütüphaneleri, Unix entegrasyon kütüphaneleri (Mono.Posix), veritabanı bağlantısı kütüphaneleri, bir güvenlik yığını ve XML şema dili RelaxNG’dir. 3- Microsoft Uyumluluk Yığını: .Net uygulamalarını Linux’a bağlamak için koridor temin eder. Bu bileşenler ADO.NET,ASP.NET ve Windows Forms vs. içerir. Mono’nun mimarisi aşağıdaki resimde özetlenmiştir.
  • 13. 2 Şekil 1-1Mono Mimarisi 1.2. MonoDevelop veya Xamarin Studio MonoDevelop aynı zamanda, C, C, Python, Java, ve Vala gibi dilleri desteklemesine rağmen öncelikle C# ve diğer. NET dilleri -Nemerle, Boo ve Java (ile IKVM.NET) gibi- için tasarlanmış bir GNOME entegre geliştirme ortamıdır. MonoDevelop ,Mono geliştiricilerin ihtiyaçlarını karşılamak için gelişmiştir. IDE sınıf yönetimi, yerleşik yardım, kod tamamlama, Stetic (bir GUI tasarımcı), proje desteği ve entegre debugger içerir. 2011 yılında Novell’in başka bir şirkete satılmasıyla işten çıkarılan Mono’nun yaratıcısı Miguel de Icaza, kendi kurduğu Xamarin adlı şirket adı altında devam edeceğini açıkladı. iOS için gelistirilmiş Mono Touch ve Android için geliştirilmiş Mono for Android’in lisansı alınarak 2013 yılında Xamarin Studio adlı bir program altında birleştirildi ve piyasaya sürüldü. Yazılacak uygulama da bu program kullanılarak geliştirilecektir. 1.3. Xamarin IDE Nasıl Çalışır ? Xamarin Studio iOS ve Android uygulamalar geliştirmek için bütünleşik geliştirme ortamıdır. Xamarin’in çalışma mantığı aşağıdaki diyagramlarla görsel olarak açıklanabilir.
  • 14. 3 Şekil 1-2 Xamarin Çalışma Mantığı Xamarin Derleyicisi ise aşağıdaki gibi çalışır. Şekil 1-3 Xamarin Derleyicisi Çalışma Mantığı
  • 15. BÖLÜM 2. Xamarin Studio Paketinin Kurulumu Geliştirilecek uygulamalar Windows 7 işletim sistemi üzerinde yapılacağından dolayı bu işletim sistemine göre kurulum adımları ayrıntılı anlatılacaktır. 2.1. “Xamarin Installer” ile Xamarin Kurulumu İlk adım Xamarin kurulum http://www.xamarin.com/Download: indirmek sihirbazını olacaktır. bu Yazılımın linkten ücretsiz versiyonunu indirmek ilk başta tercih sebebidir. Paketi yükleyebilmek için üyelik istenmektedir. Üyeliğin avantajı, kurulum ve yazılım geliştirme sırasında karşılaşılabilecek hatalara çözümler bulunmasında yardım sağlayabilmesidir. Yeni kurulan bir platform olduğundan web sitedeki forumun kullanılması şiddetle tavsiye edilmektedir. Şekil 2-1Xamarin Kurulum Ekranı
  • 16. 5 2.1.1. Yükleme sihirbazının adımları: Yükleme sihirbazının aşamaları şekillerle anlatılmıştır: Şekil 2-2 Yükleme Ekranı
  • 17. 6 Şekil 2-3 Yükleme Seçim Ekranı Şekil 2-4 Android SDK'nın Kurulum Yeri Ekranı
  • 18. 7 Şekil 2-5 Yüklenmesi Gereken Programlar Listesi Şekil 2-6 Lisans Kabul Ekranı
  • 19. 8 Şekil 2-7 Yükleme İlerlemesi Şekil 2-8 Windows'un Kurulumu Konfigure Etmesi
  • 20. 9 Şekil 2-9 Yükleme Hazır Bu ekran katıldığında Xamarin ile yazılım geliştirmeye başlanılabilir. 2.2. Kurulumda Karşılaşılan Hatalar ve Çözümleri Xamarin çok yeni bir platform olduğundan dolayı kurulum sırası yukarıda açıklandığı gibi gerçekleşmeyebilir yani Xamarin Installer çalışmayabilir. Bu durumda manuel yükleme seçeneği tercih edilebilir. Manuel yükleme aşağıdaki adımlarla yapılabilir: 2.2.1. Java SDK Yüklenmesi Aşağıdaki bağlantıdan Java JDK 1.6 veya 1.7 indirilebilir. Android SDK 32 bit JDK ile çalışır dolaysıyla platform olarak “Windows” seçilmelidir.
  • 21. 10  http://download.xamarin.com/Installer/MonoForAndroid/jdk-6u39-windowsi586.exe 2.2.2. Android SDK Kurulumu  Windows SDK installer’ı aşağıdaki bağlantıdan indirilip kurulması (installer_r10windows.exe) http://developer.android.com/sdk/index.html  Kurulumun çalıştırılması.  SDK Manager’ın yükleme ardından çalıştırılması.  En azından şu versiyonların yüklenmesi gerekir: o Android SDK Tools, revision 16 veya yükseği o Android SDK Platform-tools, revision 10 veya yükseği o SDK Platform Android 1.6, API 4, revision 3 o SDK Platform Android 2.2, API 8, revision 2 Not: Update All.. butonu ile kolay yolla bütün gerekli yüklemeler yapılabilir. Şekil 2-10 Android SDK Ekranı
  • 22. 11 2.2.2.1. Android Sanal Cihaz Yöneticisi Ayarlarının Yapılması - Android Simulator farklı cihazları simule etmek için çok farklı konfigurasyonda çalışır. Bunun için en az bir adet sanal cihaz konfigure edilmelidir. Bu işlem “Virtual Devices” sekmesi seçilerek yapılır. Şekil 2-11 Android Cihaz Emülatörü Ekleme - Sağ kısımdaki butonlardan “New” butonu seçilerek aşağıdaki ekran sayesinde ayarlamalar yapılır:
  • 23. 12 Şekil 2-12 Eklenecek Emülatörün Özelliklerinin Ayarlanması - Gelecek mesaj kutusunda konfigürasyonu yapılan cihazın özellikleri ile ilgili bilgiler yer alır. Şekil 2-13 Emülatör Kurulumu Onayı
  • 24. 13 Bu işlem de yapıldığında Android SDK kurulumu tamamlanmış olur. 2.2.3. GTK# Kurulumu Xamarin içindeki GTK kütüphanelerinin kurulumu bu linkten sağlanır: http://download.xamarin.com/GTKforWindows/Windows/gtk-sharp-2.12.21.msi 2.2.4. Xamarin Studio Kurulumu Bu linkten Visual Studio’nun monodaki muadili Xamarin Studio kurulur: http://download.xamarin.com/studio/Windows/XamarinStudio-4.0.8.msi 2.2.5. Xamarin.Android Kurulumu Android programlamayı C#’ta gerçekleştirmek için Xamarin paketinin içinde yer alan bu program bu linkten indirilir : http://download.xamarin.com/MonoforAndroid/Windows/mono-android4.6.08007.msi Not: Buradaki 3. ve 4. Adım Visual Studio’da çalışılacaksa atlanabilir. Bu projede yeni teknolojilerin kullanılması açısından Xamarin Studio ile yazılım geliştirilecektir.
  • 25. BÖLÜM 3. Xamarin Xamarin Studio’da İlk Uygulama Paketinin kurulumunu tamamladıktan sonra her yazılımcı gibi “HelloWorld” yazılımı geliştirilip test edilmesi fayda sağlayacaktır. Yazılımda bir butona basıldığında bize mesaj vermesi istenmektedir. Uygulama geliştirmeleri kullanım alanı ve popülarite açısından önde olan Android ortamında gerçekleştirilecektir. Test yazılımının geliştirilmesi şu aşamalarda gerçekleştirilir:  Xamarin Studio açılış ekranından Dosya>Yeni Çözüm seçilir. Şekil 3-1 Xamarin Studio Açılış Ekranı
  • 26. 15  Açılan Pencereden C# sekmesinden Android seçilir. İstenen uygulama tipine göre yazılım geliştirilir. Şekil 3-2 Yeni Çözüm Oluşturma Ekranı  Çözüm yaratıldığında karşıya çıkan ekran şu şekildedir. Şekil 3-3 Ana Kodun Bulunduğu Sayfa
  • 27. 16  Yazılımı veya Uygulamayı geliştirmek için şu kodlar yazılır. Şekil 3-4 Kodların Tanımlanması  Uygulama yazıldıktan sonra hata ayıklama yapılırken (debug) android emülatörü ekranı gelir. Bu ekrandan daha önce tanımlanan android sanal cihazı başlatılarak uygulama android ortamında test edilir.
  • 28. 17 Şekil 3-5 Emülatör Seçimi  Emülatör başlatıldığında bu ekran görünür. Şekil 3-6 Emülatör Arayüzü
  • 29. 18  Ekranda Android işletim sistemi masaüstünün görülmesi yaklaşık 5-10 dakika süre almaktadır. Bunun nedeni Windows işletim sisteminin emülatörü ekrana getirme sürecindeki dönüştürmedir. İşaretlenen uygulamaya tıklanır. Şekil 3-7 Emülatör Uygulamaları Ekranı  Uygulama ekranı şu şekilde görünür. Şekil 3-8 Uygulamanın Açılış Ekranı
  • 30. 19  Butona tıklandığında istenen mesaj ekranda görünür. Şekil 3-9 Uygulama Çıktısı Böylelikle “HelloWorld” uygulaması başarıyla çalıştırılmış olur.
  • 31. 20 BÖLÜM 4. Xamarin Studio’da “ToDo” Adlı Örnek Uygulamanın Geliştirilmesi Her mobil cihazında işletim sistemi fark etmeksizin bulunan “Yapılacak İşler” yani “ToDo” uygulamasının Andriod için geliştirilmesi şekillerle anlatılacaktır. Uygulamada girilecek işleri ekleme ekranı ve kaydedilen işlerin göründüğü ekran olmak üzere iki ekran görüntüsü tasarlanmaktadır. 4.1. Yeni Çözüm Oluşturulması ve Uygulamanın Arayüz Tasarımı Şekil 4-1 Uygulama Arayüzü Tasarımı  Xamarin Studio’da açılış ekranından yeni Android Uygulama dosyası seçilerek geliştirmeye başlanır.
  • 32. 21 Şekil 4-2 Xamarin Studio Açılış Ekranı Şekil 4-3 Yeni Android Uygulama Çözümü
  • 33. 22  Yeni Android uygulaması açıldığında çözümün içeriğinde “References“ adlı Mono paketlerinin de bulunduğu klasör, “Components“ adlı eklentiler klasörü bulunur.“Resources“ adlı kaynak klasörü içerisinde uygulama simgelerinin bulunduğu “drawable“, uygulama arayüzlerinin tasarlandığı “layout“ klasörü bulunur. Şekil 4-4 Çözümün İçeriği  Uygulama geliştirmenin ilk aşaması olan arayüzlerin geliştirilmesi kısmı ile başlanır. Tasarım aşamasında planlanan ekranlardan Kaydedilen İşler ekranına ilgili kontroller eklenir. Şekil 4-5 Kaydedilen İşler Ekranı-Ana Ekran
  • 34. 23  C#’ta WinForms uygulamaları gibi kotrolün üzerine çift tıklandığında yapılacak işleri bu platformda elle girilmesi gerekmektedir. Ayrıca ASP.Net’teki gibi kod ile ekran görünümleri ve kontrollerin görsel özellikleri değiştirilebilir. Şekil 4-6 Ekran Kontrolleri Kodları  Kontrollerin özellikleri menüsünden kod yazımında kullanılacak adları, stilleri, boyutları vs. ayarları yapılabilir. Şekil 4-7 Kontrol Özellikleri Menüleri
  • 35. 24  İkinci ekran olan İşlerin Eklenme Ekranı tasarımı aynı şekilde yapılır. Şekil 4-8 İş Ekleme Ekranı  Sonraki adımda uygulama için hedeflenen Android versiyonu ve cihaz türü için uygulamanın görünümü test edilir. Şekil 4-9 Android Cihaz Görünümü/Versiyonu Ayarlama
  • 36. 25 4.2. Uygulamanın Kodlarının Yazılması Arayüz tasarımını bitirdikten sonra kodlama kısmında sırasıyla; kaydedilen işleri görüntüleme/listeleme, iş ekleme, eklenen işleri tanımlama, veri tabanına bağlama ve işlerin ana ekranda nasıl görüneceği kodları yazılır. İşlemler sırasıyla şu şekilde halledilir:  Çözüm açıldığında “MainActivity.cs” adlı dosya “TaskList.cs” yani İş Listesi olarak adlandırılarak arayüzde eklenmiş olan kontroller ve işlevleri tanımlanır. Şekil 4-10 TaskList.cs Kaydedilen İşler (Ana ekran) İlk Kodlar
  • 37. 26  Sonrasında iş ekleme ekranı için “TaskView.cs” adlı bir boş sınıf dosyası eklenir. İş Ekleme ekranı tasarımındaki kontroller ve işlevleri tanımlanır. Şekil 4-11 "TaskView.cs" İlk Kodları
  • 38. 27  Eklenecek işlerin özelliklerini tanımlamak ve bunları veritabanına bağlamak için çözüm içinde “Core” adlı yeni bir klasör oluşturulur. Bu klasöre “Tasks” ve “TaskViewModel” Şekil 4-12 Çözüme Yani Klasör Ekleme adlı iki boş sınıf eklenir.
  • 39. 28  “Tasks.cs” İşler sınıfında eklenecek işlerin tanımlaması yapılır. Şekil 4-13 "Tasks.cs" Sınıfı Kodları  Daha önce bahsedilen “TaskViewModel.cs” sınıfına kod yazmadan önce çözüm panelinden “Components” seçilir ve açılan ekrandan eklenen işlerin kaydının tutulacağı Şekil 4-14 Bileşen Ekleme Ekranı “SQLite” bileşeni eklenir.
  • 40. 29  Bu ekrandan bundan sonra yazılacak uygulamalar için birçok çeşit bileşenler eklenerek uygulamanın işlerliği arttırılabilir. Şekil 4-15 Bileşen Ekleme  Bileşen eklendiğinde çözüm panelinde“Components”adlı kısımda görülebilir. Şekil 4-16 Çözüm Paneli  “SQLite” bileşeni eklendikten sonra daha önce “Core” klasöründe tanımlanmış “TaskViewModel” adlı sınıf seçilerek kaydedilen işlerin veritabanı ile bağlantısı kurulur. Bu sınıfınkodları “TaskView” ve “TaskList”
  • 41. 30 adlı sıınfların kodlarını Şekil 4-17 "TaskViewModel" Kodları da eklentiler yapılmasını gerektirir.
  • 42. 31  “TaskView” sınıfına “TaskViewModel” ile bağlantı kurulması için gerekli kodlar Şekil 4-18 "TaskView" Sınıfına Eklenecek Kodlar eklenir.
  • 43. 32  “TaskList” sınıfı kodları Şekil 4-19 "TaskList" Sınıfına Eklenecek Kodlar da şu şekilde güncellenir.
  • 44. 33  Son olarak çözüm panelinde “Resources” kısmına yeni boş sınıf eklenerek işlerin ana ekranda nasıl görüneceği ayarlanır. Bu sınıf”TaskListAdapter” olarak adlandırılır. Şekil 4-20 "TaskListAdapter" Kodları
  • 45. 34  Son kodlar da yazıldığında kurulum safhasında bilgisayara yüklenilen Android Cihaz Yöneticisi “Device Manager” açılarak daha önceden tanımlanan Android cihazların emülatörü çalıştırılır. Bu işlem normal bir Windows 7 Şekil 4-21Android Emulator Ekranı sisteminde 5-10 dakika sürebilir.
  • 46. 35  Bu emülatör ekranı görüldüğünde Xamarin Studio’da çözüm “Debug” tuşu ile çalıştırılır. Emulatorün uygulama listesinde bu uygulama tıklandığında karşıya Şekil 4-22 Uygulama Ana Ekranı uygulamanın ana ekranı çıkar.
  • 47. 36  Ekle butonuna tıklandığında karşıya çıkan ekrandan ilgili kısımlar doldurulur ve kaydet Şekil 4-23 Uygulamada İş Ekleme Ekranı tuşuna basılır.
  • 48. 37  Kaydet butonuna tıklandığında iş ana ekranda görünür. Böylelikle bu basit ama temel uygulama çalıştırılmış olur. Şekil 4-24 Kaydedilen İşin Ana Ekranda Görünmesi
  • 49. 38 BÖLÜM 5. Uygulamanın Diğer Platformlarda Çalıştırılması Android, Windows Phone ve iOS işletim sisteminde içerikte farklı çalışmasına rağmen Xamarin ile C# kodlarının bu 3 platformda kullanılması kusursuz olmasa da yaratıcı bir tecrübe sunmaktadır. İş mantığı, veri tabanı kullanımı, ağ erişimi ve diğer ortak işlevler için sadece bir kez kod yazımı yapılarak her platform için tekrar kullanımları sağlanabilir bu şekilde kullanıcı ara yüzleri için bir zemin oluşturularak platforma özel kullanıcı arabirimleri gerçekleştirilir. Xamarin ile uygulama geliştirme ya Xamarin Studio veya Visual Studio ile yapılabilir. Seçilecek interaktif geliştirme ortamı hedeflenen platformlara göre belirlenir. Windows Phone uygulamaları sadece Windows ortamında geliştirilebileceğinden 3 platform için tek bir işletim sisteminde geliştirme yapılamayacaktır. Şekil 5-1Platform ve İşletim Sistemi Geliştirilebilirlik Matrisi
  • 50. 39 5.1. iOS’te Uygulama Geliştirme iOS uygulamalar geliştirmek için bir Mac OS X işletim sistemi olan bir Mac Bilgisayara ihtiyaç vardır. Visual Studio, Xamarin’nin iOS Visual Studio eklentisi ile de uygulama geliştirme ve dağıtma için kullanılabilir. Fakat Mac işletim sistemi kurma ve lisanslama amaçları için yine de gereklidir. Apple’ın XCode arayüz geliştirme ortamı derleyici ve simülatörün test amacıyla sağlanması açısından yüklenmelidir. Uygulamayı gerçek bir cihaza göndermek ve uygulamayı yayınlamak/yaymak için de Apple’ın Geliştirici Programı’na yıllık 99dolar üyelik ücreti ile katılınması gerekir. Geliştirilen her uygulama Apple tarafından test edilip onaylandıktan sonra indirilmek için sisteme yüklenir. Şekil 5-2 iOS'te ToDo Uygulaması Görünümü
  • 51. 40 5.2. Windows Phone’da Uygulama Geliştirme Windows Phone uygulamaları Xamarin’i direk olarak kullanmaz. Visual Studio 2010, 2012, 2013 araç kiti ile geliştirilir. Yazılan C# kodu Xamarin kullanılarak diğer platformlarla paylaşılabilir. Şekil 5-3 Windows phone'da ToDo Uygulamasının Görünümü
  • 52. 41 SONUÇ Xamarin Java veya Objective C dillerini kullanmayı bilmeyip C# dilinde uzmanlaşmış olan geliştiriciler için mobil uygulama geliştirmede önemli avantajlar sunmaktadır. Henüz çok yeni bir teknoloji olsa da arka planında 10 yıllık bir Mono tecrübesi olan Xamarin gelecek vadeden bir teknoloji olarak kabul edilebilir. Yükleme ve geliştirme süresince yaşanan sıkıntılara çözüm olarak forum sitelerinden yardım alınabilir. Fakat öğrenme sürecinde öğretici video veya Türkçe yazılı kaynak bulunması zor olmaktadır. Xamarin’in dünya çapında resmi sitesine kayıtlı 500.000 geliştiricisi bulunmaktadır. Yapılan uygulama özelinde karşılaşılan en büyük sıkıntı veritabanı için uygulamaya eklenen SQLite bileşeninin düzgün çalışmaması ve sorunun tam olarak çözülememesidir. Xamarin Studio ücretsiz versiyonunu sadece 65KB’lık bir uygulama boyutu ile sınırlamakta ve bu sınırlama birçok bileşenin uygulamaya eklenmesini imkansız kılmaktadır. Bu projede de ücretsiz sürüm kullanıldığından büyük ihtimalle SQLite bileşeninin düzgün çalışmamasının sebebi tahmin edilmektedir. budur diye
  • 53. KAYNAKLAR Erişim [1] http://docs.xamarin.com/guides/cross-platform/getting_started/, 04.10.2013 Tarihi: [2] http://docs.xamarin.com/guides/android/getting_started/ , Erişim Tarihi: 14.10.2013 [3] http://xamarin.com/tour , Erişim Tarihi: 1.10.2013 [4] http://docs.xamarin.com/guides/crossplatform/application_fundamentals/building_cross_platform_applications/case_studytasky/ , Erişim Tarihi: 15.12.2013, 02.02.2014 [5] http://forums.xamarin.com/, Erişim Tarihi: 10.11.2013, 05.12.2013, 03.01.2014, 01.02.2014 [6] http://vimeo.com/68383292 , Erişim Tarihi: 1.11.2013, 03.12.2013, 02.01.2014, 15.01.2014, 01.02.2014 [7] http://www.youtube.com/watch?v=WkNbRUqnSSc , Erişim Tarihi: 15.10.2013 [8] http://www.youtube.com/watch?v=IQW_00OKhRs , Erişim Tarihi: 25.11.2013 [9] http://www.youtube.com/watch?v=0s0zh0zAaLg , Erişim Tarihi: 20.12.2013
  • 54. 43 ÖZGEÇMİŞ M.Buğra Kanmaz, 27.05.1984’te Erzurum’da doğdu. İlk ve orta eğitimini Bursa’da tamamladı.2008 yılında Dokuz Eylül Üniversitesi Matematik Bölümünden mezun oldu.Yabancı dilini geliştirmek ve Yüksek Lisans yapmak için gittiği ABD’de Matematik alanında çalışmalarda da bulundu.2011 yılında kesin dönüş yaptıktan sonra askerlik vazifesini yedek subay olarak ifa etti. 2012 yılında Savunma Sanayii Müsteşarlığı’nda Proje Asistanı olarak çalışmaya başladı. 2014 yılından itibaren Bursa-Eskişehir-Bilecik Kalkınma Ajansı’nda Yatırım Destek Uzman Adayı olarak çalışmaktadır.