içindekiler

Transkript

içindekiler
İÇİNDEKİLER
VII
İÇİNDEKİLER
1 GİRİŞ 1
Bu Kitap Kimler İçin? Temel Kavramlar 1
5
iOS İşletim Sistemi 5
iOS Kısaltması Nereden Geliyor? 6
iOS İşletim Sisteminin Katmanları 7
1. Çekirdek İşletim Sistemi Katmanı (Core OS) 7
Security Framework 7
Accelerate Framework 8
External Accessory Framework 8
LibSystem Kütüphanesi 8
2. Çekirdek Hizmetler Katmanı (Core Services) 8
3. Medya Hizmetleri Katmanı (Media Services) 12
iOS Yazılım Geliştirme Kiti Araçları 17
1. Xcode Entegre Geliştirme Ortamı (Xcode IDE) 17
2. iOS Simulator 18
3. Interface Builder 18
4. Instruments 19
5. Apple LLVM Derleyicisi 20
2 IOS İŞLETİM SİSTEMİ 21
iOS İşletim Sisteminin Tarihçesi 21
iOS Kullanan Cihazlar ve Farkları 22
iOS İşletim Sisteminin Sürümleri 25
iPhone OS 1.0 25
iPhone OS 2.0 25
iPhone OS 3.0 25
iOS 4 ve Multitaskıng Kavramı 25
Multitasking 26
iOS 5 ve Getirdiği Yenilikler 26
iOS 6 ve Getirdiği Yenilikler 27
iOS 7 ve Getirdiği Yenilikler 27
iOS 8 SDK ve Getirdiği Yenilikler 27
Bundan Sonrası 28
VIII
SWIFT VE OBJECTIVE-C İLE UYGULAMALI iOS SDK
3 GELİŞTİRME ORTAMLARININ KURULUMU iOS SDK ve Geliştirme Ortamlarının İndirilmesi 29
29
Mac OS X AppStore Uygulaması 29
Aracılığıyla Xcode’un Son Stabil Sürümünü İndirmek 29
iOS SDK ve Geliştirme Ortamlarının Kurulumu 30
İlk Objective C Programımız 32
Apple Firmasının Geliştiriciler İçin Kullanıma Sunduğu
http://developer.apple.com Sitesine Kaydolmak 37
iOS Developer Program’a Yıllık $99 Karşılığında Üye Olmak 38
4 OBJECTIVE-C PROGRAMLAMA DİLİNE GİRİŞ 41
Giriş 41
Objective-C Dilinin Tarihçesi Objective-C Dilinin Özellikleri 41
43
Objective-C = (ANSI C + SmallTalk) 43
Objective-C Programlama Ortamının Bileşenleri 44
Objective-C Diliyle C Tabanlı Diğer Programlama Dillerinin Karşılaştırılması 45
C ve Objective-C 45
Objective-C ile C Progmlama Diline Yapılan Eklentiler 46
Yeni Ön İşlemci (Preprocessor) Direktifleri 46
Sade Eklentiler 47
SmallTalk Söz Dizimi 48
Mesaj Kavramı 48
Runtime 49
Karakter Katarlarının Ele Alınış Biçimi ve NSString Sınıfı 50
NSLog 50
Yeni Anahtar Kelimeler 53
#import 53
id 54
BOOL Veri Tipi 55
nil 56
SEL 57
Özel Nümerik Veri Tipleri 57
NSInteger 58
NSUInteger 58
CGFloat 58
Objective-C Anahtar Kelimeleri 59
İÇİNDEKİLER
IX
Sınıf, Nesne, Kategori ve Protokol Tanımlarken Kullanılan Direktifler 59
Encapsulation (Sarmalama) için Kullanılan Anahtar Kelimeler 60
Protokol (Protocol) Tanımına Özel Anahtar Kelimeler 62
Kategori (Category) Tanımına Özel Anahtar Kelimeler 62
Dille İlgili Diğer Anahtar Kelimeler 62
Metot ve Fonksiyon Kavramları Üzerine 64
Üye Değişkeni Kavramı Üzerine 64
Objective-C Uygulamalarının Genel Yapısı 65
Sınıf ve Nesne Kavramı 76
Özet 77
Bundan Sonrası 5 OBJECTIVE-C DİLİNDE NESNE, SINIF, METOT VE KALITIM KAVRAMLARI 78
79
Nesne(Object) Kavramı 79
Sınıf (Class) Kavramı 82
Sınıf ve Nesne Arasındaki İlişki 83
Örnek Bir Sınıf Tasarımı ve Bu Sınıftan Oluşturulan Nesnelerin Kullanımı 86
Arayüz ve İmplementasyon Dosyaları 89
Arayüz (Interface) Dosyasının Yapısı 89
@interface Anahtar Kelimesi 89
NSObject Sınıfı ve Kök (Root) Sınıflar 90
Üye Değişkenler 92
Objective-C’de Metotlar (Fonksiyonlar) 93
Sınıf Metotları ve Nesne (Instance) Metotları 94
Objective-C Sınıflarında Bulunan Metotların Genel Sözdizimi 96
1- Hiç Parametre Almayan Metotlar 96
2- Tek Parametre Alan Metotlar 97
3- Birden Fazla Parametre Alan Metotlar 98
Uygulama (Implementatıon) Dosyasının Yapısı 100
self Anahtar Kelimesi 105
alloc Metodu 106
Kendi Değer Atayıcı Metotlarımızı Tasarlamak (Designated Initializers) 108
Kalıtım Kavramı 110
Ogrenci Sınıfının Arayüz Dosyası (Ogrenci.h) 112
Ogrenci Sınıfının Uygulama (Implementation) Dosyası (Ogrenci.m) 114
Personel Sınıfının Arayüz Dosyası (Personel.h) 117
X
SWIFT VE OBJECTIVE-C İLE UYGULAMALI iOS SDK
Personel Sınıfının Uygulama (Implementation) Dosyası (Personel.m) 118
Uygulama Dosyası (main.m) 120
Metot Geçersiz Kılma (Overrıde) İşlemi 125
Metotların Aşırı Yüklenmesi 126
Bundan Sonrası 126
6 HAFIZA YÖNETİMİ VE BİLMEMİZ GEREKEN DİĞER ÖNEMLİ KAVRAMLAR 127
Primitif Değişkenler ile Nesne Değişkenlerin Bellekteki Görünümü 127
Hafıza Yönetimi Yöntemleri 131
Hafızanın Elle Yönetilmesi (Manual Memory Management) ve Referans Sayma 132
(Reference Counting) Yöntemi Referans Sayma Yöntemi 132
133
Ownership (Sahiplik) Kavramı 135
Elverişli Metotlar (Convenience Methods) 136
Bir Metottan Nesne Döndürmek 137
AutoRelease Mesajı 140
İleride Otomatik Olarak Silinecek Nesneler 141
Havuzu (Autorelease Pool) 141
@autoreleasepool Direktifi 141
İç İçe Havuzlar (Nested Autorelease Pools) 142
Havuz Tanımlamadan autorelease Çağırmak 142
Retain Mesajı ve RetainCount Kavramı 142
Retain Mesajı 142
RetainCount 143
Nesneleri Kopyalamak copy Metodunun Kullanımı MutableCopy Metodu 145
148
151
Elle Hafıza Yönetiminde Dikkat Edilmesi 152
Gereken Önemli Noktalar 152
Dengesiz Retain Release Çağrıları Retain Döngüsü 152
153
Garbage Collection (Çöp Toplayıcı) 153
Memory Leak (Hafıza Sızıntısı) Kavramı 155
Automatic Reference Counting (Otomatik Referans Sayma) 156
Bundan Sonrası 161
İÇİNDEKİLER
7 SWIFT PROGRAMLAMA DİLİ Swıft Programlama Dili’nin Özellikleri 163
164
Swift Programlama Dili İçin Minimum Gereksinimler 165
İlk Swift Projemiz 165
Değişken Tanımlama 168
Temel Veri Tipleri 169
Sabit Değişkenler 170
Program Akışı 171
Konsola Yazdırma 171
Tip Metotları veya Bilinen Adıyla Sınıf Metotları (Type Methods) 174
Metotların Dönüş Tipleri 175
Tip Metotlarının Çağrılması 176
Bundan Sonrası 8 SWIFT PROGRAMLAMA DILI, KONTROL YAPILARI, DÖNGÜLER, DIZILER VE
VERI YAPILARI (KOLLEKSIYONLAR) 176
177
Kontrol Yapıları 177
If Yapısı 177
If-else yapısı 178
else-if yapısı 178
switch-case Deyimi 179
switch-case ile Belirli Değer 180
Aralıklarına Göre Aksiyon Almak 180
Aralık Operatörü (Range Operator) 180
Tam Kapalı Aralık Operatörü - Closed Range Operator ( ... ) 180
Yarı Kapalı Aralık Operatörü - Half Closed Range Operator ( ..< ) 180
Döngüler 182
For Döngüleri 183
For .. in .. Yapısı 183
Geleneksel For Döngü Yapısı 185
While Döngüsü 185
Diziler 186
Diziye Eleman Ekleme 187
Araya Eleman Ekleme 187
Dizi Elemanlarına Erişim 188
Diziden Eleman Çıkarma 188
XI
XII
SWIFT VE OBJECTIVE-C İLE UYGULAMALI iOS SDK
Diziden Belirli Bir İndisteki Elemanı Çıkarma 189
Dizi Elemanlarına For Döngüsüyle Erişim 189
Dizilerin Tipini Belirlemek 190
Diziye Boş Değer Atamak (Diziyi İlk Kullanıma Hazırlamak) 191
Sözlük Yapısı (Dictionary) 191
Sözlüklerin Tanımlanması 192
Sözlüğe Eleman Eklenmesi 192
Belirli Bir Anahtar Değerine Sahip Elemana Erişim 192
Sözlüklere Tanımlama Esnasında Değer Atama 193
Sözlükten Belirli Bir Elemanın Çıkarılması 193
Sözlükteki Belirli Bir Elemanın Değerinin Güncellenmesi 194
Sözlükteki Elemanlara Döngüler 194
Yardımıyla Ulaşmak 194
Bundan Sonrası 9 IOS PROGRAMLAMA TEMELLERI VE XCODE GELIŞTIRME ORTAMI YAPILARI 194
195
Giriş 195
XCode ile Objective-C Tabanlı iOS Projesi Örneği Adım 1: Projenin Oluşturulması XCode Geliştirme Ortamının Ana Bileşenleri 196
196
200
Adım 2: Projenin Arayüzünün Tasarlanması 205
Adım 3: Projenin Arayüz Bileşenlerinin Proje Koduna Bağlanması 216
MVC (Model View Controller) Mimarisi 216
Model Katmanı 216
View(Görüntü Katmanı) 217
Controller Katmanı 217
Tasarladığımız Ekran için Controller Sınıfının Oluşturulması IBOutlet Kavramı 218
223
TextFıeld(UITextFıeld) Bileşenleri için Bağlantı Oluşturulması 224
Label (UILabel) Bileşeni için Bağlantı Oluşturulması 227
Adım 4: Projenin Kodlanması Tasarladığımız Ekran için Model Sınıfının Oluşturulması 231
231
Adım 5: Projenin Derlenip Çalıştırılması ve Gerekiyorsa Debug
(hata ayıklama) Sürecine Alınması Bundan Sonrası 236
236
İÇİNDEKİLER
10 SWIF T OBEB OKEK UYGULAMASI YAPILARI 239
Giriş 239
XCode ile Swift Tabanlı iOS Projesi Örneği 239
Adım 1: Projenin Oluşturulması 240
Adım 2: Projenin Arayüzünün Tasarlanması 240
Adım 3: Projenin Arayüz Bileşenlerinin Proje Koduna Bağlanması 241
Adım 4: Projenin Kodlanması 245
Adım 5: Projenin Derlenip Çalıştırılması ve Gerekiyorsa Debug
(hata ayıklama) Sürecine Alınması 250
Swift Programlama Dilinde Optional(Seçime Bağlı) Değişken Kavramı 250
İsteğe Bağlı Değişkenler Hakkında Kurallar 252
Neden IBOutlet Değişkenlerinin Sonunda ! İşareti Var? 253
Bundan Sonrası 11 EKRANLAR ARASI GEÇİŞ YAPILARI 253
255
Giriş 255
XCode ile Swift Tabanlı iOS Projesi Örneği Delegasyon Kavramı Bundan Sonrası 12 TEMEL DOSYA IŞLEMLERI VE UITABLEVIEW KONTROLÜ ILE
TEKRARLI VERILERIN GÖSTERILMESI YAPILARI 255
270
274
275
Giriş 275
Bölümde Geliştireceğimiz Uygulama Hakkında Bilgi 277
Uygulamanın İçindeki Dosyalar 279
Uygulamanın Arayüzünün Tasarlanması 280
Arayüz Bileşenlerinin Controller Sınıflarıyla Bağlanması 287
Film Sınıfının Modellenmesi Filmler.plist Dosyasının Oluşturulması ve İçeriği 288
289
Plist Dosyasına Okuma ve Yazma 292
Controller Sınıflarını İçerikleri 294
Bundan Sonrası 304
13 SQLITE İLE VERİTABANI İŞLEMLERİ 305
Giriş 305
SQLite Veritabanı Hakkında Bilgi Fimler.db İsimli SQLite Veritabanının Oluşturulması 306
307
XIII
XIV
SWIFT VE OBJECTIVE-C İLE UYGULAMALI iOS SDK
Film Tablosuna Başlangıç Verisinin Yüklenmesi 310
Filmler.db isimli SQLite Veritabanı Dosyasının Projeye Eklenmesi 312
Filmler.db isimli SQLite Dosyasına Erişim için Gerekli Hazırlıklar 313
Adım 1: SQLite C Kütüphanesinin Projeye Eklenmesi 313
Adım 2: SQLiteDB isimli Swift Kütüphanesinin Projeye Dahil Edilmesi 314
Adım 3: Swift ile C’de Yazılmış Ana Kütüphanenin Bağlanması ve Swift Kodu İçerisinde
Objective-C Kütüphanesinin Çağrılması 315
Swıft İçerisinden Veritabanına Erişim filmleriListele Metodu filmleriListele Metodunun FilmListesiVC.swift İçinde Kullanımı filmEkle metodu filmEkle Metodunun FilmEkleVC.swift İçinde Kullanımı filmSil metodu filmSil Metodunun FilmDetayVC.swift İçinde Kullanımı 317
319
320
321
321
322
323
Film.swift Dosyasında Yapılan Güncelleme 324
Uygulamanın Çalışması 324
Filmler.db İsimli Veritabanı Dosyasının Uygulama İçerisindeki Yeri 325
Bundan Sonrası 14 SWIFT İLE VİDEO OYNATMAK VE IPAD İÇİN UYGULAMA GELİŞTİRMEK 326
327
Giriş 327
İlk Uygulama: UIWebView Bileşeni İçerisinde Video Oynatma 329
İkinci Uygulama: MediaPlayer.framework Kullanarak Video Oynatma 334
Bundan Sonrası 15 SWIFT ILE SES OYNATMAK VE OTOMATIK KONUMLANDIRMA
(AUTO LAYOUT) ÖZELLIĞI 340
341
Giriş 341
Ses Uygulaması 341
Bundan Sonrası 353

Benzer belgeler

Attacking iOS Applications

Attacking iOS Applications ¡  Sertan  Kolat   ¡  Security  Beast   ¡  Avanteg  –  Güvenlik  Denetimi  &  Servisler  

Detaylı