iOS Geliştirici Olmak İçin Bilmeniz Gerekenler
Twitter’da gezerken son teknoloji arttırılmış gerçeklik ile yapılmış iPhone uygulamalarını mı gördünüz? Ya da bir geliştiricinin AppStore pazarını kullanarak tek başına binlerce dolar yapma hikayesini mi okudunuz? Motivasyonunuz nereden kaynaklanıyor bilmiyorum fakat iOS geliştirme günümüzde gittikçe popülerleşen uçsuz bucaksız konuları barındıran bir iş kolu hâline gelmiş durumda.
Apple’ın geliştiricilere sunmuş olduğu teknolojileri kullanarak SpriteKit ile oyun yapabilir, WatchKit ile bir saate uygulama geliştirebilirsiniz ya da HomeKit ile akıllı bir ampül yakıp söndürebilirsiniz.
Yapabileceklerinizin hayal gücünüzle sınırlandığı bu platforma ilk adım attığınızda nereden başlamanız gerektiğini kestirememeniz oldukça normal. Bu yazıda iOS geliştirme dünyasındaki teknolojileri kategorize ederek size daha net bir perspektif sunmaya çalıştım.
iOS 101
Junior iOS Geliştirici pozisyonlarına başvurabilmek ya da hayalinizdeki uygulamayı hayata geçirebilmek için sahip olmanız gereken temel yetkinliklerin listesi üç aşağı beş yukarı şöyle:
- İngilizce: Bu sularda herkes İngilizce konuşur 🙃
- Xcode & Interface Builder
- UIKit: Images, labels, text views, buttons, pickers…
- Swift ya da Objective-C
- Auto Layout: Farklı ekran boyutlarına ve oryantasyonlarına uygulama geliştirebilmek
- MVC (Modal-View-Controller)
- Xib’s, Storyboards, Segues yapılarıyla ekran gösterimi ve geçişi yapabilmek
- Delegation ve Key-Value Observation
- TableView
- CollectionView
- UserDefaults ve CoreData kullanarak yerel hafızada veri depolayabilmek
- REST API’lere ağ istekleri gönderip alabilmek
- JSON/XML/HTML parse
- Git
- Bilgisayar biliminin temel veri yapıları ve algoritmalarına aşinalık
- Clean Code prensiplerini bilmek
- Thread, eş zamanlılık, asenkron yapıları anlamak
- App Store’a uygulama yükleme aşamalarını bilmek
iOS 201
Yukarıda listelenen temel konular üzerinde çalıştınız, araştırdınız ve uygulamalar geliştirdiniz. Bu listedeki maddeler hakkında bir fikrinizin olması, en azından bir kaçıyla haşır neşir olmak ise sizi bir adım daha ileri götürecek:
- iOS Design: Human Interface Guidelines’ı okumak ve iyi tasarımı iyi yapan şeyin neler olduğunu anlamak
- XCode ile debug yapabilmek
- Instruments
- Eğer Swift biliyorsanız, biraz da Objective-C bilgisi
- Eğer Objective-C biliyorsanız, biraz da Swift bilgisi
- ARC ve Non-ARC
- StackView
- Push Notifications
- Local Notifications
- WebKit
- CocoaPod ve üçüncü parti kütüphaneler
- ASO (App Store Optimizasyonu)
- Birim test, entegrasyon testleri, TDD hakkında az da olsa aşinalık
- SOLID prensiplerini bilmek
iOS ∞
Eğer yukarıdaki konuları hallettiyseniz iOS dünyasının nasıl çalıştığını anlıyor ve yeni teknolojileri çok daha kolay öğrenebiliyorsunuz. Bu aşamada yazdığım maddeler ise geliştirmekte olduğunuz projenin gereksinimlerine göre çeşitlilik gösterecek konular. İlk aşamada bunları öğrenmek için vaktinizi harcamayın. Yeri geldiğinde onlar zaten sizi bulacaklar :)
Liste çok daha uzayıp gidebilir fakat küçük bir örnekleme yapacak olursak:
- HomeKit
- WatchKit
- HealthKit
- ARKit
- Game Center
- SpriteKit
- GameKit
- MacOS geliştirme
- Core ML
- Core Audio
- Core Animation
- CloudKit
- Core Motion
- Core Location
- MapKit
- In-App Purchases
- AdmoB veya benzeri reklam sağlayıcılar
Hepsi ve Daha Fazlası:
iOS geliştiricisi olmak uzun olduğu kadar eğlenceli de bir süreç. Bu süreçte ihtiyacınız olan en önemli şey biraz motivasyon, biraz sabır. Bu motivasyonu sağlayabilmenizin en kolay yolu ise o anki bilgilerinizle bir şeyler üretmek.
Bir sonraki yazılarımda temel gereksinimlerden itibaren iOS geliştirmeyi anlatmaya başlıyorum. Yazılar boyunca birlikte uygulamalar geliştirecek ve kendi kendinize pratik yapmanız için sonunda size “challenge”lar vereceğim.
Bu yazıyı sevdiysen ve yararlı olduğunu düşünüyorsan benzerlerinin gelmesi için 👏🏻 butonuna tıklayarak destek olabilirsin ^^
Ve tabii ki yeni yazılardan haberdar olmak için Twitter’dan takip etmeyi unutma :)
Kaynak:
- https://www.raywenderlich.com/1797/ios-tutorial-how-to-create-a-simple-iphone-app-part-1
- https://forums.raywenderlich.com/t/1-year-of-swift-but-still-learning-at-a-slow-pace-any-suggestions/22035
- http://roadfiresoftware.com/2014/04/how-to-become-a-professional-ios-developer/
- http://blog.teamtreehouse.com/every-junior-ios-developer-needs-know
- http://lifehacker.com/i-want-to-write-ios-apps-where-do-i-start-1644802175