Neden iOS? Swift’e nasıl başladın? Başlamak istiyorum, nasıl bir yol izlemeliyim?

Merhaba arkadaşlar, bugün sizlere çok aldığım bir soru olan “Neden iOS?, Swift’e nasıl başladın?” sorularının cevaplarını vereceğim. Bunun dışında çok önemli öneriler vereceğim.

Öncelikle ilk sorumuzdan başlayalım,

Neden iOS geliştirmeyi tercih ettin?

Çok uzun bir süredir iPhone kullanıcısıyım ve iOS sevdalısıyım. Bütün bunların yanı sıra iOS hepimizin gönlünde taht kurmuş, kararlılığı ile yıllar önce (Steve Jobs, iPhone 3GS, iPhone 4) zamanlarında insanların güvenini kazanmış bir işletim sistemi. Demem o ki bende iOS’ten kopamadım, ha pişman mıyım? Asla! ☕️

iOS geliştirmeye başlamadan önce zaten coding geçmişim yaklaşık 3–4 senelik idi, daha çok web ve desktop programlama dilleri ile haşır neşirdim.

Sektörün dengelerinin mobile kayması sonucu iOS geliştirmeye karar verdim ama o zamanlar Objective-C var idi, (2014'ten bahsediyorum, WWDC öncesi) syntax’ını cidden beğenmiyordum. (hala beğenmiyorum.)

2014 WWDC yaklaştı. Apple, o WWDC’de Swift’i duyurdu. Çok heyecanlanmıştım çünkü Apple, Swift’e çok güveniyor ve yeni, güçlü bir dil olmasının yanı sıra Swift’e çok ciddi anlamda destek vereceğinin sinyallerinide veriyordu. Burası böyle…

Neden Swift kullanmalısınız?

Üstte bahsettiğim üzere Swift çok güçlü bir dil arkadaşlar, kolaylıklarından ve gücünden biraz bahsedelim.

  • Functional patterns
  • Closures
  • Protocols and extensions on structs
  • Tuples
  • Optional types
  • Interactive playground
  • Object oriented
  • Multiple return types
  • Operator overloading
  • Native collections

… ve çok daha fazlası.

Bütün bunlar geliştirme sürecini aşırı kolaylaştıran ve bir o kadarda güçlendiren konular.

“Başlamak istiyorum, nasıl bir yol izlemeliyim, sen neler yaptın?”

1. Xcode

Xcode, Apple’ın Tümleşik Geliştirme Ortamı (IDE) yazılımının adıdır. Tüm geliştirme sürecini Xcode üzerinden yapacağınız için Xcode’u çok iyi tanımanız gerekiyor.

Xcode üzerinde öğrenmeniz ve dikkat vermeniz gereken konular aşağıdaki gibidir 🤔

  1. Interface Builder
  2. Project Navigator / Project Structure
  3. Toolbar
  4. Debugging

Bu 4'ü çok önemli. Uygulamanızı Storyboard kullanarak geliştirmeyecekseniz bile (ki ben kullanmıyorum) Storyboard ve Interface Builder kavramlarını tam anlamıyla öğrenmeli ve uygulamalısınız! Bunun size çok katkısı olacaktır. Örneğin, Auto Layout (Constraint), View/Superview ve Controller/Nav & Tab Controller ilişkilerini anlamanıza katkı sağlayacaktır.

2. UIKit / Foundation Framework

Apple’ın can damarlarından olan UIKit, kullanıcı ile etkileşime gireceğiniz bir alanda size zengin UI objelerini sunuyor.

(UILabel, UITextField, UIButton, UIStepper, UISwitch vb. bir çoğu) ve eh niyahetinde UIView!

(Kullanıcıyla etkileşime girmek = UIKit)

Bunun dışında Foundation, Uygulamanızın temel işlev katmanını oluşturmaya, veri tipleri, temel OS bileşenlerine erişmenize olanak sağlıyor.

Kısacası bu iki framework’e “Core” diyebiliriz. Çünkü her zaman onlara ihtiyacımız var.

UIKit ve Foundation Framework hakkında dökümantasyon önerilerin nelerdir?

Kesinlikle Apple’ın dökümantasyonu temiz ve anlaşılabilir aşağıdaki bağlantıdan ulaşabilirsiniz. 👍🏼

UIKit Documentation by Apple

Foundation Documentation by Apple

Bunun dışında Apple’ın tüm frameworklerinin ve dökümantasyonlarına aşağıdaki bağlantıdan erişebilirsiniz.

All Documentations of App Services and Frameworks

3. Problem Çözme Sürecini Edinme

En önemli noktalardan biri!

Biliyorsunuz ki biz Bilgisayar / Yazılım Mühendisleri ve Geliştiricilerinin işi tamamen sorun çözme odaklı. Çünkü amacımız problemlere çözüm üretmek!

  1. Problemi Tanımla
  2. Araştır / Keşfet
  3. Araştırmaların sonucu probleme çözüm yolu belirle
  4. Belirlediğiniz çözüm yoluna alternatif pathler düşün
  5. Alternatifler dahilinde çözüm yolunu seç
  6. Seçilen çözüm yolunu uygula.
  7. Problemi gerçekten çözümlediğine emin olmak için sonuçları değerlendir

Bu süreci düzgün yönetirseniz çok kararlı ve yararlı sonuçlar alacağınıza eminim. 😎

4. Takıldığın Yerde Pes Etmemek

Bu yol uzun ve sizde bu yoldaki bir yolcusunuz. Yoldan ilk defa geçiyorsunuz mutlaka ayağınız takılacak veya yolda bir tehlike sizi bekliyor olacak ancak bunu deneyimlemeden yolun bir diğer ucuna geçmeniz mümkün değil.

Bunu biliyor olmalısınız, bir programlama dili öğreniyorsanız gözünüzü karartıp hepsini kabulleneceksiniz.

Problem yaşadığınızda kılavuzunuz StackOverflow olsun. Sizin yaşadığınız problemi yaşayan binlerce geliştirici olduğunu çok rahat şekilde söyleyebilirim.

Bıkmadan usanmadan sorun ve yanıt almak için çabalayın. Önerilen çözümleri projelerinize ve kodlarınıza uygularken çözüm yolunu anlamaya çalışın. Ezbercilikten kaçının(!)

5. Öğrendiklerini Uygula

Hayali projeler belirleyin ve bunları hayata geçirirmişçesine (production’a) çıkacakmışcasına geliştirmeye çalışın. Size çok büyük fayda sağlayacağına eminim.

6. Önerilen Kaynaklar (Yararlandığım Kaynaklar)

YouTube kanalları:

Lets That Build App (kendisi Amerika’da bir firmada Yazılım Mühendisi, çok faydalı ve basic seviyede videolar çektiğini düşünüyorum. Bunun dışında bir çok bilindik uygulamanın clonelarını üreterek tutorial haline getiriyor. İzlemeniz mutlaka size değer katacaktır.)

Jared Davidson (kendisi ArchettApp’in sahibi, iOS geliştirme ile ilgili güzel öneriler veriyor. İlk başladığım zamanlarda izliyordum. İzlemenizde fayda olduğunu düşünüyorum.)

Computer Science by Stanford (Evet!, yanlış duymadınız. Stanford’un Bilgisayar Mühendisliği bölümü sürekli güncellenen Xcode, iOS platformları için derslerini yeniliyor ve kaliteli bir anlatım sunduklarını söylemeden geçemeyeceğim. Kesinlikle takip edin.)


Bloglar:

Medium üzerinde takip ettiğim bir çok insanı takip edebilirsiniz hepsinin çok güzel yazıları var.

Bunun dışında;

Ray Wenderlich (Ray’in sitesinde bir çok iOS geliştirici editörlük yapıyor, çok güzel kaynaklar var. Kesinlikle bakmanızı öneririm.)

Objc.io (Burada iOS geliştirme üzerinde performans kıstaslarına önem veriliyor. Eğer basic seviyede yeni başladıysanız biraz uzak durmalısınız ancak Swift üzerinde belirli bir aşama katettikten sonra kesinlikle takip etmelisiniz. Swift Talk adı altında bir podcast çekiyorlar. Bir kısmı public, bir kısmı private, Ücretli subscribe olarak bu harika kaynaklardan yararlanabilirsiniz.)


Kitaplar:

Optimizing Collections (objc.io)

Advanced Swift (objc.io)

Core Data (objc.io)

Functional Swift (objc.io)

Ray Wenderlich’in kitapları

Mid, Advanced seviyelerde kitaplardır ancak size çok ama çok değerli bilgiler katacaktır. Mutlaka edinme şansınız var ise edinmenizi öneririm. Ben sadece Advanced Swift’i aldım ve memnunum.


(Dipnot: Eğer hali hazırda Objective-C kullanan iOS geliştiriciyseniz, Swift’e geçiş sürecinizin çok rahat olacağını söyleyebilirim, belki alışkanlıklarınızdan kurtulmak zor olabilir yalnız emin olabilirsiniz ki bir çok framework zaten aynı. Syntax’ı anlamanız yeterli.) 😋

Bunun dışında olabildiğince iOS development communitylerine katılmaya özen gösterin. NSIstanbul adında şirin mi şirin bir communitymiz var. Çok kaliteli arkadaşlıklar ve dostluklar var.

Katılabilir, paylaşımda bulunabilir ve sorunuzu belirterek fikir alışverişinde bulunabilirsiniz.

Bu yazının önem taşıdığını düşünüyorum, o yüzden ne kadar çok kişi okursa o kadar çok faydalı! 😛 iOS uygulamalar geliştirmek isteyen arkadaşlarınıza iletmeyi unutmayın.

“We 💘 Swift”

Don’t forget to support me on 👉🏼 Patreon 👈🏼

Like what you read? Give Batuhan Saka a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.