Ana içeriğe atla

Swift Giriş

İyi akşamlar arkadaşlar,

Uzun süredir karar verdiğim Swift yazı serisine başlamış bulunmaktayım. Bu seriyi hep birlikte götüreceğiz. Bende yeni öğrenmeye başladım. Tüm öğrendiklerimi not tutarmışçasına burada paylaşacağım. Böylelikle geniş bir türkçe kaynak arşivi oluşturmuş olacağız. Swift dilini iyice kavradıktan sonra IOS geçiş yapacağım. Onu da mümkün oldukça büyük arşiv şeklinde oluşturmayı planlıyorum. IDE olarak XCode kullanacağım ama Jetbrain ürünlerinden olan AppCode da kullanabilirsiniz. 30 gün ücretsiz lisans veriyor fakat öğrenci iseniz okul mailiniz ile jetbrain hesabı açıp jetbrain tüm idelerini ücretsiz kullanabilirsiniz. Eğer Mac OS X işletim sistemine sahipseniz XCode tercihiniz olsun. Kendisi de gayet başarılı bir idedir. Eeee apple ürettiği ne zaman kötü olmuş. ;) Kaynak olarakta Apple hazırladığı AppStore'dan ücretsiz indirebileceğiniz, yaklaşık 1147 sayfalık pdf takip edeceğim. Gerektiğinde başka kaynaklardan da bakabilirim. Ekstra durum olursa belirtirim. Ama örnekleri bol bol ben kendim üretmeyi planlıyorum. Konu anlatımı için pdf kullanacağım.

Bu kadar açıklamadan sonra şu Swift neymiş kendisini bir tanıyalım.
Swift, Apple IOS,MacOS,watchOS, tvOS geliştirmek için geliştirmiş olduğu yeni programlama dilidir. İlk olarak, 2 Haziran 2014 yayımlanan dil şu an 3.0.2 kararlı sürümüyle hizmet vermektedir. İlk olarak WWDC 2014 konferansında duyrulmuştur. Swift Apple'ın Cocoa ve Cocoa Touch geliştirme çatıları ve Objective C ile yazılmış çoğu Apple ürünüyle beraber çalışabilecek şekilde tasarlanmıştır. Apple pdf kaynağında ise Swift şöyle tanımlamaktadır.

"Swift, C uyumluluğunun kısıtlamaları olmaksızın, C ve Objective-C'nin en iyisini oluşturan iOS, macOS, watchOS ve tvOS uygulamaları için yeni bir programlama dilidir. Swift, güvenli programlama kalıplarını benimser ve programlamayı daha kolay, daha esnek ve daha eğlenceli hale getirmek için modern özellikler ekler. Olgunlaşan ve çok sevilen Cocoa ve Cocoa Touch çerçevelerle desteklenen Swift'in temiz tahtası, yazılım geliştirmenin nasıl yeniden tasarlanabileceğini gösteriyor."

Swift, Objective-C, Rust, Haskell,Ruby,Python,C#,CLU gibi bir çok programlama dillerinden esinlenerek tasarlanıştır. Kısaca Swift, C'sin Objective-C olarak tarif edilmektedir. Özelliklerinden bahsederek devam edecek olursak,

Swift bellek yönetimi için Otomatik Referans Sayacı (ARC) kullanır. ARC, bellek yönetimini ve kullanımını denetleyen bir araçtır. ARC bellekte oluşturulan nesneleri işlevi bittiğinde otomatik olarak temizler. C# gargabe collection (çöp toplayıcılara) örnek gösterilebilir. Bununla ilgili extra bir blog yazısı ele alınacaktır.

Swift Objective-C ile aynı çalışma zamanı sistemini kullanır fakat iOS 7 veya macOS 10.9 ve üstü versiyonları gerektirir. Swift ve Objective-C kodları uzantı ile C ve C++ da dahil aynı program içinde kullanılabilir. C’nin aksine C++ kodları doğrudan Swift içinde kullanılamaz. Bir Objective-C veya C wrapper Swift ile C++ arasında oluşturulmuş olmalıdır.

Swift giriş yaparken bir Hello World yazmadan olmaz diyerek kısaca geliştirme aracını da tanıyalım istiyorum. 

Öncelikle Xcode giriş penceremizi açıyoruz. XCode, AppStore'dan ücretsiz edinebilirsiniz.
Daha sonra "Create a new XCode project" tıklıyoruz. 

Command Line Tool tıklayarak, console projesi açıyoruz.

Böylelikle ilk yazımızı tamamlamış oluyoruz. Bundan sonraki yapımızda veri tiplerini ele alacağız. Şimdiden kolay gelsin. :)

Yorumlar

Bu blogdaki popüler yayınlar

Algoritma Kavramı, Sözde Kod ve Akış Diyagramı

Bu yazımda çoğumuzun amelelik gibi gördüğü fakat belki de en önemli konu hakkında kısaca bilgi vermek istiyorum. Bundan sonra küçük örneklerle kod yazmayı arttıracağız. Programlama dillerinden bahsetmiştik geçenlerde. Yüksek seviyeli veya düşük seviyeli diller olsun hepsinin arasında kullanım farkları haricinde çok bir farkılılık yoktur. Hayatımızda kullandığımız koca koca programları, programlama dilleri değil onları hazırlayan algoritma kaynağı oluşturur. Kısaca algoritma kavramını tanımlarsak; Algoritma, belli bir problemi çözmek veya belli bir amaca ulaşmak için çizilen yoldur. Algoritma proglamlamada kullanılan en güzel tekniktir. Neyi nasıl yapacağımızı planlamamızı sağlar. Algoritmayı oluşturanda sözde kod ve akış diyagramlarıdır. ALGORİTMA ÖRNEĞİ(resim1) Sözde Kod:Yapacağımız algoritmayı kısa olarak sözle tanımlama yöntemidir. Örneğin; İki sayının toplamını veren algoritmanın sözde kodunu yazınız. 1)BAŞLA 2)YAZ(“1.sayiyi giriniz:”) 3)OKU(S1) 4)YAZ(“2.sayiyi g...

Örnek Algoritmalar ve Örnek C++ Kodları

Örneklerimize bu başlığımız altında devam ediyoruz arkadaşlar. :) Yıl başına kadar C++ hakkında bildiğim tüm konuları ve yaptığım projeleri sizlerle paylaşacağım. Sorularınızı yorumlarda bekliyorum. Şimdiden kolay gelsin :) Algoritma 5: Yarıçapı klavyeden girilen kürenin yüzey alanını ve hacmini açıklayan algoritmanın C++ kodunu yazınız.(π=3) #include <iostream> using namespace std; int main() { float r,alan,hacim; cout<<“Yaricapi giriniz:”; cin>>r; alan=4*3*r*r; hacim=(4*3*r*r*r)/3; cout<<“Alan:”<<alan<<endl; cout<<“Hacim”<<hacim<<endl; } Algoritma 6: Katsayıları klavyeden girilen birinci dereceden denklemin kökünü bulan algoritmanın C++ kodunu yazınız. #include <iostream> using namespace std; int main() { int a,b,c,x; cout<<“Katsayilari giriniz:”; cin>>a>>b>>c; x=(c-b)/a; cout<<“Kok:”<<x; } Algoritma 7:Klavyeden yarıçapı ve dilim açısı girilen daire diliminin...

Hayatımıza Birbirinden Farklı Çözümler Sunan Problemler: Algoritmalar

Merhaba arkadaşlar, Başlıktandan anlayacağınız gibi, hayatımıza birbirinden farklı çözümler sunan problemler topluluğu olarak algoritmayı tanımlayabilirim. Bu yazı serimizde algoritmaları tek tek tanıyıp çalışma mantıklarını inceleyen analiz eden, birden farklı çözümleri karşılaştırarak gerekirse kendimizde çözümler üretebileceğimiz bir seri yaratacağız. Algoritmalar bilmece bulmaca gibidir. Üzerinde düşündüğünde ufkunuzu açar. Bu seriyi hazırlama sebebimde ufkunuzu biraz olsun açmak oldu. Bu seriye başlamadan önce bir algoritmayı tanımlarken kullanacağımız terimleri tanıtmak istiyorum. Ayrıca algoritmaların pseudo kodlarıyla Java kodlarını da paylaşacağım. Belki Swift ile olan kodlarını da paylaşabilirim. ;) Ayrıca bu kodların toplu halde github hesabımdan erişim sağlayabilirsiniz. Şimdi algoritma dünyasını daha derinden tanıyalım. Algoritma nedir? Bir problemi çözmek için işlenen komutlar kümesine, algoritma nedir. Çözülebilir Problem nedir? Bir problem için algoritma oluşt...