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
¡ Sertan
Kolat
¡ Security
Beast
¡ Avanteg
–
Güvenlik
Denetimi
&
Servisler