C ve Objective-C dilleri tabanlıdır. Bu dillerin karmaşasından kurtarılmış olup 7 tane programlama dilinden esinlenmiştir.
Esnek ve kolay bir mimariye sahiptir.
Yazılım geliştirmeye yeni başlayanlar için oldukça basit ev anlaşılabilir yapıdadır.
Nesne tabanlı dildir.
Açık kaynaklıdır.
Syntax yapısı: camelCase
Swift programlama dilinin standart kütüphanesi sınıflar, protokoller, global fonksiyonlar, yapılar, data türleri bulunmaktadır.
Declaration yani bir değişkenin kullanılmadan önce derleyiciye bildirilmesi/tanıtılmasıdır.
Type Inference yani tür çıkarımı mekanizması
String Interpolation yani metin(String) içerisine veri (değişken, sabit) koymak. \()
immutable
Multi Paradigm yani çok paradigmalı dil yapısına sahiptir.
Dictionary Hash Map
Set
if else condition
Fonksiyonlar
Tuple Çoklu değerleri tek bir birleşik değere dönüştürür.
Fonksiyon Overload yani Fonksiyon Yükleme. Aynı isimde farklı parametrelere sahip fonksiyonlar tanımlama
Literal yani değişmez, sabit
? demek opsiyonel/muallak,
! kodun başında olursa tersi/değili, sonunda olursa değeri kesin/mutlak demektir.
Type casting yani Tip Dönüştürme. Otomatik tip dönüştürme yoktur.
Closure
Structure
Enum : Enum’ı bir grup bağlantılı değer için ortak bir tür tanımlama olarak düşünebiliriz. Kod içinde bu değerleri güvenli bir şekilde kullanabiliriz. Enum’ı bir çeşit seçeneklendirme olarak düşünebiliriz.
Stack
Class yapısı
Struct
Optional
Inheritance - Miras
Force unwrap
Implicitly unwrap
Properties
Method
Kalıtım nedir?
Protokol nedir? interfacer olarak da geçiyor.
implemente- uygulamak
Generic
Sequence - Sıra
TASARIM PATERNLERİ (MVC, DI, DP)
>>MVC Design Pattern - Model-View-Controller Design Pattern : Birbiri ile aynı işi yapan uygulama komponentlerini gruplandırıp birbirleri ile haberleşmelerini sağlamak. Yani View katmanından (Kullanıcının gördüğü katman) lardaki dosyalar ile kullanıcıya ana veritabanından gelen veya bilgiyi işleyen, kuran mekanizma yani Model'ın farklı alanlarda olması. Yani bilginin işlendiği alanın aynı bir komponent, bilgiyi gösteren alanında ayrı bir komponent olup birbiri ile haberleşmesidir. Temel olarak separation of concerns denilen Birbirleriyle ilişkili yapıların beraber olup farklı yapılarında birbirleriyle bazı kontrol yapıları üzerinden haberleşmesi prensibine dayanıyor.
>>Dependency Injection
>>Delegate Pattern
Front-End ve Back-End uygulamalar.
ViewDidLoad
interpolation - Katmak, Ekleme yapmak
Maintenance - Yazılım bakımı
Runtime
Handle
Tuple:
Declarative:
Optionals: Bir değişkenin belirtilen tipteki değere sahip olup olmadığını kontrol eden yapılardır. Nil Check işleminde if let kullanılması tavsiye edilir.
Nil Check : Bir değişkende değerin var olup olmadığının kontrol edilmesi.
Unwrap:
Typealias : Tiplere takma ad takabiliriz.
Global Scope: Kodun her yerinde kullanılabilecek tanımlanan değişkendir.
Local Scope: : Kodun yalnızca fonksiyonlar vs. gibi local yerlerde kullanabilecek değişkenlerdir.
Break : Ayrıl, terket, sonlandır.
fallthrough : Swift dilinde Switch-case'de break kullanmamıza gerek yok. koşul sağlandıktan sonra switch'ten çıkıp koda devam ediyordu. Switch'ten çıkmamasını istiyorsak fallthrough eklemeliyiz. fallthrough ekleyince bir sonraki case'ye girip sonra çıkıyor. Bir sonraki case'de de kullanabiliriz.
ternary operatörü: ?
enum : Farklı durumların kontrol edilmesini sağlayacak sıralı listeler oluşturmak için kullanılır.
mutable : Değişebilir demektir. var
immutable : Değişmez, sabit demektir. let
replace: Yer değiştirmek
Swift Açık kaynak kodlu programlama dilidir.
Visual Studio'nun yalnızca Windowslarda çalıştığı için, Xcode'da yalnızca MACOS cihazlarda çalışıyor.
Frameworkler 2 tane var. UIKit Xcode 11 ve öncesinde vardı, Xcode 11'den sonra SwiftUI eklendi.
Xcode ile yazılan uygulamaların AppStore'ye atılabilmesi için imzalanması zorunludur.
Distrubitable : Dağıtılabilir
Kodları Run etmek : Çalıştırmak
Compile etmek: Derlemek, derleyip binary hale getirmek
IDE :
SDK :
IOS Deployment Target minimum 13 yapın. (Project ve Target kısımlarından ayrı ayrı yapın.)
XCode 10.3 öneriliyor. Çünkü SwiftUI desteklemeyen en yüksek sürüm bu. UI
XCode'de Products klasörü sanal bir klasör olup XCode projemizin derlenmiş versiyonunu orada tutuyor.
Main.storyboard = Ana Storyboardımızdır.
LaunchScreen.storyboard : Developer'lar genelde bu storyboardı siliyor. Uygulamanın açılışta göstereceği ekran budur. Developerlar açılış ekranını Main.storyboard kısmına gömüyorlar. XCode'de "App Icons and Launch Images" kısmından uygulamanın açılış ekranının hangi ekran olacağını seçiyorsunuz.
Devices Orientation : Hepsini seçelim. Çünkü daha sonra açamıyorsunuz. Hepsini seçin kodlarla kapatıp açabiliyorsunuz zaten.
Assets.xcassets : Uygulamanın AppStore'deki iconlarını ve farklı çözünürlükteki cihazlardaki iconlarını ayarlıyorsunuz.
ViewController = Kodlarımızı yazacağımız yerdir.
AppDelegate.swift = Özel bir dosyadır. AppDelegate diye özel bir class var içerisinde. Uygulamamız ilk başlatıldığı zaman IOS'un çalıştıracağı ilk yer burasıdır.
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
Uygulamalarımızın Versiyonlarını 3 haneli yani Major.Middle.Minor şeklinde kullanalım. Build nolarını ise 4 haneli kullanalım.