View
219
Download
0
Category
Preview:
Citation preview
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
1/44
T.C.
BILECIK SEYH EDEBALI NIVERSITESI
MHENDISLIK FAKLTESI
BILGISAYAR MHENDISLIGI
IOS PROGRAMLAMA
GRENCININ ADI SOYADI: ZHAL CALAYOGLU
PROJE-2 ALISMASI
DANISMAN : gr. Gr. Murat ZALP
14 Ocak 2015
BILECIK
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
2/44
T.C.
BILECIK SEYH EDEBALI NIVERSITESI
MHENDISLIK FAKLTESI
BILGISAYAR MHENDISLIGI
IOS PROGRAMLAMA
GRENCININ ADI SOYADI: ZHAL CALAYOGLU
PROJE-2 ALISMASI
DANISMAN : gr. Gr. Murat ZALP
14 Ocak 2015
BILECIK
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
3/44
ZET
Projenin Amac
Bu projede Windows isletim sistemi zerine Mac isletim sistemi kurularak Mac ortam
tannacaktr.Ayrca Ios uygulamas gelistirmek iin gerekli olan IDE ler arastrlp gre-
nilmeye alslacak ve bu ortamda uygulama gelistirilmesi saglanacaktr.
Projenin Kapsam
Proje iki blmden olusmaktadr.Birinci blmde sanal bir isletim sistemi kurmak iin
gerekli imajlar ve Windowsa MAC OS X kurmak iin neler gerekli arastrlp MAC OS
X isletim sistemi kurulumu gereklestirilmistir.Ikinci blmde MAC zerinde basit uy-
gulamalar gelistirebilmek iin gerekli IDE kurulmus bu IDEde kullanlacak dilin temel
yaps grenilip uygulama gereklestirilmeye alslmstr.
Sonular
Bu projede asl ama sanal bilgisayar zerinde IOS uygulamalar gelistirebilmek oldugu
iin Xcode editrnde Objective-c temel bilgileri ile basit uygulamalar gelistirilmistir.
ii
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
4/44
TESEKKR
Bu projenin basndan sonuna kadar hazrlanmasnda emegi bulunan ve beni bu konuya
ynlendiren saygdeger hocam ve dansmanm Sayn gr. Gr. Murat ZALPa tm kat-
klarndan ve hi eksiltmedigi desteginden dolay tesekkr ederim.
ZHAL CALAYOGLU
14 Ocak 2015
iii
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
5/44
Iindekiler
ZET ii
TESEKKR iii
1 GIRIS 1
1.1 Proje alsma Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 BLM 1 : KURULUM SRECI 3
2.1 Windowsa Sanal Olarak MAC OS X Kurmak . . . . . . . . . . . . . . . 3
2.1.1 VMware sanal makine zerinden Mac OS X Mavericks 10.9 Ku-rulumu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 MACIsletim Sistemi zerinde Uygulama Gelistirme . . . . . . . . . . . 8
2.3 XCode Uygulama Gelistirme Ortam . . . . . . . . . . . . . . . . . . . 9
2.3.1 IOS SIMULATOR . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 INTERFACE BUILDER . . . . . . . . . . . . . . . . . . . . . . 10
2.3.3 FRAMEWOKS . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 BLM 2 : UYGULAMA SRECI 13
3.1 Ilk Uygulama : Hello World . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Basit Kullanc Girisi Uygulamas . . . . . . . . . . . . . . . . . . . . . 16
3.3 Dijital Saat Uygulamas . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Hatrlatc Uygulamas . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 MapKit Uygulamas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
SONULAR 37
KAYNAKLAR 38
ZGEMIS 39
iv
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
6/44
1 GIRIS
Bu proje alsmas asagdaki amalar dogrultusunda olusturulmustur.
(i) Windows zerine sanal olarak MAC bir isletim sistemi kurulmas .
(ii) Sanal isletim sistemi zerinden uygulama gelistirebilmek iin kullanlmas gereken
editr nedir grenilmesi
(iii) Kullanlan XCode editrne ait Objective C dilinin grenilmeye alslmas.
(iv) Objective C ile basit uygulamalar gelistirilmesi.
IOS iin uygulama gelistirebilmek iin Apple bir bilgisayara sahip olmamz gerekli-
dir.Ancak Applen fiyatlarndan tr herkes bu bilgisayarlara sahip olamamaktadr.Yine
de uygulama gelistirmek isteyenler iin bir zm yolu daha sunulmustur.O da Windows
zerine sanal olarak bir Mac kurmaktr.Bu elbette gerek bir Apple zelligini ve hzn
sunmayacaktr.Ama merak edenler iin Apple dnyasn grebilme ve basit uygulama-
larla grenebilme imkan sunar.Bu projede sanal fakat gereginden hz gibi etmenlerden
dolay pekte fark olmayan MAC OS X isletim sistemi kurulmas ve kullanlmas konu-sunda alsmalar yaplmstr.
1
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
7/44
1.1 Proje alsma Plan
2
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
8/44
2 BLM 1 : KURULUM SRECI
2.1 Windowsa Sanal Olarak MAC OS X Kurmak
Windows zerine Mac kurmak iin gerekenler sunlardr; ncelikle Virtual Box veya VM-
Ware sanallastrma cihazlarn kurmak gerekmektedir. Bu cihazlar bilgisayara sanal bir
isletim sistemi kurmay saglamaktadr. Sanallastrma Teknolojisi destekli Intel islemci:
Sanal makine alstrmak iin sanallastrma destegi olan bir islemci gerekmektedir. Intel
Core 2 Duo ve sonras neredeyse btn islemciler bu destege sahiptir. Ek olarak bu zel-
ligin BIOSta devrede olmas gerekmektedir. Her ne kadar ogunlukla bu zellik devrede
olsa da, baz durumlarda islemci desteklese dahi devre ds olabilmektedir. Bu baglamda
BIOS a girip Hardware Virtualization seenegini Enable yapmanz gerekmektedir. VM-
ware Mavericks imaj sadece Intel islemcilerde alsmaktadr.
64 BitIsletim sistemi: Mac OS X, 64 Bit bir isletim sistemi ve bu baglamda alsabilmesi
iin sanal makinenin kurulu oldugu isletim sisteminin de 64 Bit olmas sarttr.Islemciniz
64 Bit desteklemiyorsa sanal makinede Mavericks kullanlmamaktadr.
Projede sanal isletim sistemi kurulmas srasnda hem VmWare hem de Virtual Box imaj-
lar kurularak denemeler yapld.Ilk olarak VM VirtualBoxn 4.10.16 srm kurularak
basland.Ancak sanal Macin her baslatlmasnda oturum ama basarsz adnda ayn hata
ile karslasld.Bunun nedenini arastrmak grenmek iin VirtualBoxa Linux gibi baska
sanal makineler kurularak tekrar denendi islem sonucunda sorunun VM VirtualBoxn
4.10.16 srmndeki hatadan kaynaklandg anlasld.VirtualBoxn bir nceki srmleri
tekrar kurularak denenmeye basland.Bu asamalardan sonra Mac OS X iin gerekli sanal
makine olusturuldu.
2.1.1 VMware sanal makine zerinden Mac OS X Mavericks 10.9 Kurulumu
PCYE MAC OS X KURULUMUIIN GEREKLI YAZILIMLAR;
(i) VMWare Player: Sanal makine kurulumu iin gereklidir, Windows isletim sistemi
zerinde farkl bir sanal isletim sistemi kullanlmasn saglar.
(ii) OSX Mavericks: Kurulacak olan isletim sistemidir.
3
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
9/44
Ilk nce bilgisayara VMware Workstation kuruldu.Kurulumu gereklestirmek iin gerekli
olan OS X Mavericks 10.9 Retail VMware Image i indirildi. kartlan .zip dosya ieri-
sinde asagdaki yol takip edilerek install.cmd dosyasnn zerine sag tklayp, Ynetici
olarak alstr denildi.
Bylece VMware Unlocker yardm ile VMware Workstation a Mac OS X deste gi ka-
zandrld. Zip dosyasn kardgmz klasrde /OS X Mavericks 10.9 Retail VMware
Image/OS X Mavericks yolunu izleyerek OS X Mavericks.vmxe tkland.
4
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
10/44
VMworkstation OS X Mavericks seilmis bir sekilde kt.
SETTINGS blmndeki gerekli ayarlamalar yapldktan sonra sol st ksedeki baslatma
butonuna tkland.
5
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
11/44
Sistem baslatlarak almas sagland.Apple ikonu ekranda grld.
Uzun sre beklenilmesine karsn Mac isletim sistemi arayzne ulaslamad.Bu sorunun
zmne iliskin yaplan arastrmalar sonucu masastnde yeni bir klasr olusturularak
Virtual Machine Settings -> Options -> Shared Folders iinde ki Folder Sharing zelli gi
Always enabled olarak ayarlanp,masastnde ki klasr eklendi.
6
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
12/44
Bulundugumuz lke seildi.
Kullanlacak klavye tr seildi.
7
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
13/44
Gerekli ayarlamalar yapldktan sonra MAC kurulum asamas baslatld.
2.2 MACIsletim Sistemi zerinde Uygulama Gelistirme
Mac isletim sistemi IOS uygulamalar gelistirebimek iin gerekli olan IDE ler arast-
rld.En ok bilinen editrlerin XCode ve Swift oldugu grenildi.Ancak Swift daha yeni
gelismekte olan bir IDE oldugu iin XCode editr tercih edildi.XCode editrnn Apple
Store zerinden indirilmesi denendi. Ancak Apple store dan kurmaya alslan XCodeun
en son srm olan 6.0 d.Sanal olarak kurmus olunan Mac eski bir srm oldugundan
XCodeun en son srmn desteklememekteydi.Bunun zerine Xcodeun daha alt s-
rmleri indirilmeye alsld.Ancak Apple store da sadece son srmne ulaslmaktayd.
8
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
14/44
Bunun zerine Torrentz den Xcodeun 5.1 srm bulunarak indirmek durumunda ka-
lnd.
Su anda alsmakta olunan Xcode un eski srm olan 5.1.1 srmdr.
XCode ortam genel hatlaryla grenildikten sonra bu ortamda kullanlacak dili grenme
asamalar baslad.Objective- C olarakta bilinen nesne ynelimli bir dil kullanlmakta-
dr.Bu dil hem C yi hemde Java y andrmaktadr.Ama metodlarn ve fonksiyonlarn is-
levleri ve kullanlmas asndan bir o kadarda farkl bir dildir.
2.3 XCode Uygulama Gelistirme Ortam
XCode derleyicisi, iOS uygulamas gelistirmek iin kullanlan bir IDEdir. MacOS isletim
sistemine sahip bir bilgisayar olmas halinde XCode indirilebilir ve kurulabilir. XCode,
yazlm gelistirici iin olduka kullansl ve ergonomik bir gelistirme ortamdr. Tek sorun,
neyin hi kod yazlmadan ve daha kolay nasl yaplacagnn grenilebilmesi iin gerekli
olan srenin uzunlugudur.
XCode kurulumunu gereklestirdikten sonra XCode nin genel yapsndan bahsedeyim.
Xcode ile proje olustururken asagdaki ekran karsmza kmaktadr.Bu ekran olusturula-
cak xcode projesi iin kullanlacak hazr templateleri iermektedir.
Bunlar su sekildedir: Navigation-based Application: Bir navigasyon men sablonuna sa-
hip proje olusturur. OpenGL ES Application: 3D grselleri olusturabildigimiz projedir.
Split View-based Application: Kullanlan pencerenin, iki kolona blnms bir layout
sablonu seklinde proje olusturur. Tab Bar Application: Sekmelerden olusan bir sablon
zerinden proje olusturur. Utility Application: Birden fazla sayfadan olusan animasyon
sablonuna sahip bir projedir. View-based Application : Bir Controller ve bir Viewden olu-
san sablon projedir. Window-based Application: Bos , iinde hi bir MVC(Model View
Controller) sablonu bulunmayan, hepsi kendi tarafmzdan hazrlanmas gereken bir pro-
jedir. Proje alsmlarnda Split View-based Application sablonu kullanlmaktadr.Sablon
tr seildikten sonra gerekli ayarlamalar yaplp Xcode projesi olusturulmaktadr.Xcode
editrndeIOS Simulator veInterface Builder adnda iki nemli birlesen yer almaktadr.
9
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
15/44
2.3.1 IOS SIMULATOR
Gelistirilen uygulamalar cihaz zerine yklemeden simle edilmesini saglayan bir bile-
sendir.
2.3.2 INTERFACE BUILDER
Iphone veIpad uygulamalarnn arayzlerini grsel olarak dizayn etmek iin kullanlan
Interface Builder arac sayesinde srkle-brak mantgyla uygulamalar zerindeki La-
bel ve TextField gibi kontrollerin ekran zerinde nereye konumlayacagn belirleyebilir
ve bu kontroller zerinde herhangi bir olay gereklestiginde arkaplanda alsan snflarla
etkilesim kurarak ,hangi snftaki hangi kod parasnn alsacagn grsel olarak belirle-
yebiliriz.
10
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
16/44
Sekilde XCodeun Interface Builder ekran gzkmektedir.Ekrandaki sol panel program
dosyalarnn yer aldg ksmdr.Genellikle ViewContreller.h ve ViewController.m dosya-
slarna girilerek kod yazm gereklestirilir.Ortadaki ekran ise ViewControllerdr.Bilesenlerin
srkleyip brakldktan sonra simlatr ekrannda grlecek ksmdr.Ayrca ViewCon-
rollera eklenen bilesenlerin evetleri bu ekranda olusturularak daha az kod yazmna ola-
nak saglamaktadr.Sagstksedeki panelde ise Viewe eklenen bilesenlerin propertiesleri
yer almaktadr.Bu panel ile rnegin; arkaplan renkleri,yaz puntolar,bilesenlere eklenen
olaylar kontrol edilebilmektedir.Sag alt ksede bulunan panelde ise bilesenlerin ktp-
hanesi yer almaktadr.Buradan Vieweklenmek istenen bilesen srklenip braklarak ek-
lenebilir.// XCode ile uygulama olustururken Interface Buildern sol panelinde bulunan
ViewController.h yani baslk dosyas ViewController.m yani uygulama dosyalar ile is-
lem yaplmaktadr.Bunlardan .h uzantl dosyamz arayzmzn tanmlandg dosyadr
yani arayze eklenecek buttonlar labeller burada tanmlanmak durumundadr..m uzan-
tl dosya ise uygulama dosyasdr yani burada fonsiyonlar ve metotlar tanmlanr.Ayrca
birde main.storyboard dosyas vardr burda ise hazlanan arayz grntleyebilir size,font
ve arka plan renkleri ayarlanabilir ayrca .h dosyasna eklenen islevleri burada fiziksel ola-
rak ta eslestirilmesi gerekmektedir.
11
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
17/44
2.3.3 FRAMEWOKS
XCode ile uygulama gelistirirken bilinmesi gereken bir diger konu ise Frameworklerdir.Bu
yaplar Objective -C dilinde kullanlan temel snflar iererek bir nevi at konumunda-dr.Uygulama gelistiriRken programda kullanlan snflarn hangi atya ait oldugu bilin-
mesi gereklidir.Aksi taktirde program hatasz dahi olsa nesnelerin atlar eklenmedigi
iin hata ile karslaslacaktr.Asagda uygulama gelistirirken kullandgm ve bilinmesi ge-
reken temel atlardan bahsedilmistir;
Foundation Framework:Objective -C ile uygulama gelistirirken kullanlan temel snflar
olan NSObject ,NSString gibi snflar ierir.
Core Foundation Framework: C programlama dili tabanl bir uygulama ats olan CoreFoundation Uygulama ats,programlama yaparken kullanlan temel veri tiplerini daha
kullansl hale getiren esitli fonksiyonlar ierir.
Event Kit Framework:Objective-C ile takvim ve alarm uygulamalarn gelistirebilmek
iin tasarlanms uygulama atsdr.
UIKit Framework:Uygulama gelistiriken kullanc ile direk iletisim kurulmasn sagla-
yan Label ve TextField gibi nesneleri barndrr.
Map Kit Fremawork :Harita uygulamas gelistirirken kullanlacak metot ve snfar ie-
rir.
Core Location Framework:Bu uygulama atsnda genelikle cografi konum verilmesi
gereken uygulamalarda kullanlmas gereken metotlar ierir.
12
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
18/44
3 BLM 2 : UYGULAMA SRECI
3.1 Ilk Uygulama : Hello World
IOS uygulama srecinin basnda XCode editrnde Hello World uygulamas olusturuldu.Bu
uygulamann asamalar su sekildedir:
Ilk olarak Mainstoryboard ksmnda ViewControllere Label ve Button eklendi.Label ve
Buttonun ad degistirildi.Sonra baska bir ViewController eklenerek ayn sekilde ona da
Label ve Button konuldu.Ilk arayzdeki Button bileseni ikinci arayze bagland ve zel-
ligi modal seildi.Bu asama resimde gsterildigi sekildedir.
Ikinci arayzde bulunan Label bileseninin eventna baglama islemi yapld.Butonun iinde
Action eylemi olusturularak Touch Up Inside zelligi seilerek baglama islemi yapld.
13
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
19/44
Uygulama simlatrde alstrlarak resimde gsterilen hali elde edildi.Arayzlerin ara-
snda geis yaplarak ekrana HelloWorld yazdrld.
14
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
20/44
View2.h
#import //Label ve Buton iin
kullanlacak Framework ekleniyor
@interface View2 : UIViewController
{
IBOutlet UILabel *lbl;//Label event interface ile
baglanmstr
}
-(IBAction)Button:(id) sender;//Butona basldg anda
15
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
21/44
olayn gereklesmesi iin interface ile action
olusturuluyor.
@end
View.m
#import "View2.h"//Baslk dosyas egrlyor.
@implementation View2
//Baslk dosyasnda tanmlanan buton action iin
metodu olusturuluyor.Bu metot ile butona basldg anda
NSString snfndan tretilen string ifade Labelde
gzkmektedir.
-(IBAction)Button:(id) sender{
lbl.text=[NSString stringWithFormat:@"HelloWorld"];
}
@end
3.2 Basit Kullanc Girisi Uygulamas
Bu uygulamada ViewController zerine 4 tane bilesen eklendi.Label bileseni adnz gi-
riniz seklinde bir mesaj yazlmak iin kullanlmstr.Hibir event yoktur.Textfield bile-
seninde ise kullancdan isim alnmaktadr.Outlet olay eklenir.Textfield in altnda bulu-
nan Label bileseni ise Textfield dan girilen ismi ekrana yazdrmak iin kullanlr.Buna
da ayn sekilde outlet olay eklenir.Son bilesen olan butonaa ise action olay eklene-
rek,kullancdan alnan ismin Labelda gzkmesi saglanmaktadr.
Uygulama resimleri
16
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
22/44
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
23/44
IBOutlet UITextField *Kullanici_Ismi;
}
//Interfacede bulunan butona basldg anda olayn
gereklesmesi iin metot tanmlanyor.
-(IBAction) YazdirMetodu;
@end
ViewController.m
#import "ViewController.h"//Baslk dosyas agrlyor.
@interface ViewController ()
@end
@implementation ViewController
-(IBAction) YazdirMetodu:(id)sender
{
//Texfielde girilen string deger iin bellekte yer
ayrlyor.Daha sonra string deger Labela
yazdrlyor.
NSString *MetniOku = [[NSString alloc] initWithFormat:
@"Hosgeldiniz Sayn, %@", [Kullanici_Ismi text]];
//Textte girilen ve bellege kaydedilen veri agrlyor.
[Metin setText:MetniOku];
}
@end
3.3 Dijital Saat Uygulamas
Yaplmas tasarlanan alarm uygulamasnda kullanlacak dijital saat iin sistem saatini ala-
bilecek basit bir uygulama olusturuldu.Bylelikle alarm uygulamas iin gereken n ha-
18
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
24/44
zrlk,dijital saat olusturularak tamamland.
Ekranda gzkecek dijjtal saat iin ViewControllera Label bileseni eklenerek event bag-
lants yapld.
Uygulama Resimleri
ViewController.h
#import
@interface ViewController : UIViewController {
IBOutlet UILabel *label;//Label olay tanmlanyor.
NSTimer *saat ;//NSObject snfndan kaltm olarak
19
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
25/44
alnan NSTimer nesnesi saat iin tanmlanyor.
}
-(void)saatFonk;//Deger gndermeyen Fonk tanmlanyor.
@end
ViewController.m
#import "ViewController.h"//Baslk dosyas agrlyor.
@interface ViewController ()
@end
@implementation ViewController
//NSString snfndan treyen NSDateFormatter nesnesi
saat formatnn gsterimi iin ayarlanyor.
Bellekte yer ayrlyor.
- (void)saatFonk{
NSDateFormatter *formatter =
[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm:ss"];
//Format ayarlanan saat labela yazdrlyor.
label.text = [formatter stringFromDate:[NSDate date]];
}
// Dijital saat iin saydrlma yaplyor.Bunun iin
baslk dosyasnn hazr metodu olan viewDidload fonk
kullanlyor.
- (void)viewDidLoad
{
[super viewDidLoad];
saat =[NSTimer scheduledTimerWithTimeInterval:0.5\\
target:self
selector:@selector(saatFonk)\\
userInfo:nil
repeats:YES];
20
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
26/44
}
//Program da hazr gelen metot oldugu iin baslk
dosyasnda tanmlanmad.Programda bir islevi yok
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
@end
3.4 Hatrlatc Uygulamas
Ilk basta alarm uygulamas olarak tasarlanan uygulama,simlatrde ki sesli uyar soru-
nundan dolay hatrlatc uygulamas olarak degistirildi.Bu uygulamada kullancnn gire-
cegi herhangi bir konu ve yine kullancnn belirleyecegi tarih ve saatte ekrana bir uyar
mesaj gelecektir.Simlatr o anda kapal olsa dahi kullanc yoksaymadg srece sim-
latr her atgnda uyar olarak ana mende gsterilmektedir.Ayrca arayze eklenenschedule control bileseni sayesinde kullancnn girdigi konunun her dakika,saat,gn ve
haftada tekrar hatrlatlmas ayar yaplmaktadr.Arayze eklenen buton bilesenlerinden
Ayarla butonu ile hatrlatma konusu ayarlanrken Sil butonu ile de silinebilmektedir.
Arayzde bulunan 5 bilesen iinde event lar Referencing Outlets sayesinde arayzle bag-
lant saglanmstr.
Uygulama Resimleri
21
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
27/44
HatirlaticiViewController.h
22
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
28/44
#import //Interfacede bilesenler iin
at ekleniyor.
@interface HatirlaticiViewController : UIViewController
//Snf olusturulup nerden tredigi belirtiliyor.
{
UITextField *hatirlatText;//Texfield
tanmlamas yaplyor.
UISegmentedControl *scheduleControl;//
UIButton *setButton;//Ayarla butonunun tanmlamas yaplyor.
UIButton *clearButton;//Sil butonu tanmlamas
yaplyor.
UIDatePicker *datePicker;//DatePicker tanmlamas yaplyor.
}
//Bilesenlerde olusturulan olaylar gderiliyor.
@property (nonatomic,retain) IBOutlet UITextField
*hatirlatText;
@property (nonatomic,retain) IBOutlet
UISegmentedControl *scheduleControl;
@property (nonatomic,retain) IBOutlet UIButton
*setButton;
@property (nonatomic,retain) IBOutlet UIButton
*clearButton;
@property (nonatomic,retain) IBOutlet UIDatePicker
23
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
29/44
*datePicker;
- (IBAction)clearNotification;//Sil butonu action tanmlanyor.
- (IBAction)scheduleNotification;
- (void)showReminder:(NSString *)text;//Hatrlatcnn
ekranda mesaj vermesini saglayan metot tanm
yaplyor.
@end
HatirlaticiViewController.m,
#import "HatirlaticiViewController.h"//Baslk dosyas
agrlyor.
@implementation HatirlaticiViewController//olusturulan
snf agrlyor.
//Baslkta tanmlanan zellikler iin program
derlendiginde eventlarn olusmas saglanr.
@synthesize hatirlatText;
@synthesize scheduleControl;
@synthesize setButton;
@synthesize clearButton;
@synthesize datePicker;
//Asagdaki metot ile kullancnn ayarlams oldugu
tarihe gre textte girilen metnin ekrana yklenmesi
saglanr.
- (void)viewDidLoad {
24
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
30/44
datePicker.minimumDate = [NSDate date];
hatirlatText.delegate = self;
}
//Bilesenler iin bos deger gnderilmesi saglanr.
- (void)viewDidUnload {
[super viewDidUnload];
self.hatirlatText = nil;
self.scheduleControl = nil;
self.clearButton = nil;
self.setButton = nil;
self.datePicker = nil;
}
}
//Bu metot ile hafzaya eklenen nesneler
kullanlmadgnda hafzaya geri iade etmek iin
kullanlmstr.
- (void)dealloc {
[hatirlatText release];
[scheduleControl release];
[clearButton release];
[setButton release];
[datePicker release];
[super dealloc];
}
25
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
31/44
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
32/44
break;
case 2:
notif.repeatInterval =
NSHourCalendarUnit;
break;
case 3:
notif.repeatInterval =
NSDayCalendarUnit;
break;
case 4:
notif.repeatInterval =,
NSWeekCalendarUnit;
break;
default:
notif.repeatInterval = 0;
break;
}
//scheduladaki index degerine gre textin
tekrarlanmas saglanyor.Nesne kaldrlrsa
bellege kaydedilen nesnenin yeri bellege iade
ediliyor.
NSDictionary *userDict = [NSDictionary
dictionaryWithObject:hatirlatText.text
forKey:kRemindMeNotificationDataKey];
notif.userInfo = userDict;
[[UIApplication sharedApplication]
scheduleLocalNotification:notif];
[notif release];
}
27
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
33/44
}
//Bu metot ile eklenen nesne iin hafzada yer ayrlr
ve eklenen nesne uyar penceresinde gzkr.
- (void)showReminder:(NSString *)text {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Hatrlat"
message:text delegate:nil
cancelButtonTitle:@"TAMAM"
otherButtonTitles:nil];
[alertView show];
[alertView release];
}
@end
Uygulama Resimleri
28
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
34/44
29
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
35/44
3.5 MapKit Uygulamas
Son uygulamada sensrler kullanlarak kullancnn anlk konumunu alan bir IOS uygu-
lamas gelistirilmeye alsld.Ancak simlatrden deger aldg iin ve telefonda deneme
imkan olmadg iin program srekli default bir konum belirledi.Bunun nereden kay-
naklandg bulundu.XCode alstrldktan sonra destek ksmnda sanal makinenin aldg
koordinatn default olarak ayarlanan ksm degisildi.Burada da makine birka lkeyi baz
olarak koordinat olusturdu.Bunun zerine kod ksmnda belirlenen koordinatlar girilerek
kullanc konumlandrlmas bir nevi elle yapld.
XCode ile map uygulamas gelistirirken kullanc konumunun simlatrde gsterilecegi
harita iin arayzde MkMapView adl nesne kullanld.Bu nesne IOSta harita uygulamas
iin kullanlan zel bir nesnedir.Arayz hazrladktan ve baglama olayn gereklestir-
dikten sonra kod ksmna geildi.
30
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
36/44
ViewController.h
#import //Bilesen ats ekleniyor.
#import //MapView bileseni iin ats
ekleniyor.
#import //Lokasyon
verilmesi iin ats ekleniyor.
@interface ViewController : UIViewController {
MKMapView *mapView;//Interfacede eklenen Map
bileseni tanmlanyor.
}
@end
ViewController.m
#import "ViewController.h"//Baslk dosyas agrlyor.
#import "pin.h"//Pin iin baslk dosyas agrlyor.
@implementation ViewController
31
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
37/44
- (void)viewDidLoad {
[super viewDidLoad];
mapView = [[MKMapView alloc]
initWithFrame:self.view.bounds];
mapView.mapType = MKMapTypeHybrid;
//Harita iin enlem ve boylam degerleri belirlenir.
CLLocationCoordinate2D coord =
{latitude: 38, longitude: 27};
//Lokasyona gre hatitada yaknlastrma
degerleri girliyor.
MKCoordinateSpan span =
{latitudeDelta: 2, longitudeDelta: 2};
MKCoordinateRegion region = {coord, span};
//Koordinantlar verilen blgeye pin
yerlestiriliyor.Mesaj yazdrlyor.
[mapView setRegion:region];
[self.view addSubview:mapView];
pin *mypin = [[pin alloc]
initWithName:@"Buradayim"coordinate:
CLLocationCoordinate2DMake(38, 27)];
[self->mapView addAnnotation:mypin];
}
32
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
38/44
//.m dosyasna hazr eklnene bir metotdur default olarak
eklendigi iin pek bir islevi olmuyor.
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
Map uygulamasnda pin eklenmeden sadece lokasyon girilerek olusturulan harita grn-
ts sekilde gsterilmektedir.Burada grirlen enlem ve boylam degerlerine uygun harita
grnts alnr ancak net konum belirlenmemistir.Sekildeki harita grntsndeIzmirin
enlem ve boylam degerleri grirlerek olusturulmustur.
Bu islemlerden sonra kod ksmnda girilen koordinat alnyordu ancak tam olarak git-
tigi nokta belli degildi.Bu noktay simlatrde gstermek amacyla pin ekleme islemi
yapld.Ayrca o nokta iin pine tklandgnda Buradaym ifadesi grlmesi sagland.
Kullancnn konumunun daha net anlaslmas iin pin ignesi eklenmistir.Bunun iin yeni
bir view class dosyas alp lokasyanona bagl pin konumlandrlmas iin gereken me-
totlar eklenmistir.Sekilde yeni bir View Class dosyas almas gsterilmektedir.
33
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
39/44
pin.h
#import //Genel snfn
atsdr.
#import
// pin adnda NSObject snfndan treyen bir snf
olusturulmustur.
@interface pin : NSObject //Pin iin
gerekli bir ktphane eklenir.
34
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
40/44
//verilen koordinatlar yani pinin bulundugu
koordinatlar, herhangi bir isimle kaydedilmisse bu
ismin grnmesine araclk eden nesne olarak
tanmlanmstr.
//her kanaldan ulaslamayan ve gnderilen nesnenin
kopyasn alan pointer olusturulur.
@property (nonatomic,copy) NSString *title;
//Pinin bulundugu koordinantlarn alnabilmesi iin
tanmlanmstr.
@property (nonatomic,assign) CLLocationCoordinate2D
coordinate;
-(id)initWithName:(NSString*
)name coordinate
:(CLLocationCoordinate2D)coordinate;
@end
pin.m
#import "pin.h"
//Pinin baslk dosyas agrlr.
@implementation pin
//Baslk dOsyasnda tanmlanan dosyamz agrlyor.
@synthesize title,coordinate;// zellik metotlarnn
derlenme annda olusturulmasn saglar.
//Bir konumu kolaylkla tanmlamak iin initWithName
35
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
41/44
metodunu ekliyoruz. Bu metodun islemi i degiskenleri
hzlca tanmlamak olacaktr.
- (id)initWithName:(NSString*)pinName coordinate:
(CLLocationCoordinate2D)pinCoordinate
{
if ((self = [super init]))
{
self.title = pinName;
self.coordinate = pinCoordinate;
}
return self;
}
@end
Uygulamann Son Hali Grnts
36
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
42/44
SONULAR
Bu proje uygulamas sonucunda sadece MAC OSX isletim sistemine sahip bir bilgisayarla
yaplabilecek uygulamalarn Windowsta da gelistirilebilecegi grenildi.Ayrca Windowsbilgisarnn islemcisine gre sanal Macin performansnn nasl degistrebilecegi grlms
oldu.
37
8/10/2019 2015 - Zhal Calayolu - IOS Programlama
43/44
Kaynaklar
[1] http://docs.unity3d.com/ScriptReference/index.html
[2] http://docs.unity3d.com/Manual/index.html
[3] http://yasirkula.com/category/oyun-tasarimi/unity-3d/
[4] http://kursiyernet.meb.gov.tr/Default.aspx
[5] http://unitytr.wordpress.com/
[6] http://pixelnest.io/tutorials/2d-game-unity/
[7] http://answers.unity3d.com/
[8] http://stackoverflow.com/
[9] http://learnunity2d.com/
[10] http://tr.wikipedia.org/wiki/Unity_3D
38
http://docs.unity3d.com/ScriptReference/index.htmlhttp://docs.unity3d.com/Manual/index.htmlhttp://yasirkula.com/category/oyun-tasarimi/unity-3d/http://kursiyernet.meb.gov.tr/Default.aspxhttp://unitytr.wordpress.com/http://pixelnest.io/tutorials/2d-game-unity/http://answers.unity3d.com/http://stackoverflow.com/http://learnunity2d.com/http://tr.wikipedia.org/wiki/Unity_3Dhttp://tr.wikipedia.org/wiki/Unity_3Dhttp://learnunity2d.com/http://stackoverflow.com/http://answers.unity3d.com/http://pixelnest.io/tutorials/2d-game-unity/http://unitytr.wordpress.com/http://kursiyernet.meb.gov.tr/Default.aspxhttp://yasirkula.com/category/oyun-tasarimi/unity-3d/http://docs.unity3d.com/Manual/index.htmlhttp://docs.unity3d.com/ScriptReference/index.html8/10/2019 2015 - Zhal Calayolu - IOS Programlama
44/44
ZGEMIS
KIS
ISEL B
ILG
ILER
Ad Soyad : ZHAL CALAYOGLU
Uyrugu : T.C
Dogum Yeri ve Tarihi: KASTAMONU 06.07.1992
Adres : Bilecik
Telefon : 05434467327
e-mail : zuhalcalayoglu@gmail.com
EGITIM DURUMU
Lisans grenimi : Bilecik Seyh Edebali niversitesi, Bilecik
Bitirme Yl : 2015
Lise : TOSYA LISESI, KASTAMONU/TOSYA
Stajlar : KUZEY ANADOLU KALKINMA AJANSI VE TURK TELEKOM
ILGI ALANLARI
YABANCI DILLER : Ingilizce
Recommended