En Sağlam Swift Kursu

Başlık çok iddalı oldu ancak tüm samimiyetimle diyorum ki öğrenebileceğiniz mükemmel bir kaynak. Swift ile ilgili kaynak araştırması yaparken karşıma çıkan en sağlam kursu sizlere paylaşmak istiyorum.

İsminden de anlaşılacağı gibi 100 günlük bir eğitim sunmaktadır. Tabi 100 gün belirtilen maksimum süre. Daha erken bitirmek sizlerin ellerinizde. 2 tane kural bulunmaktadır.

  1. Her gün en az 1 saat Swift ile zaman geçirmen
  2. Ve insanlara sosyal medya üzerinde sürecini paylaşman

Ben de bu süreci burada sizlerle paylaşmak istiyorum. Bunun için bir tane Github Repo oluşturdum ve orada gün gün paylaşacağım kodları. MackDown ile kodların açıklamalarını yazmaya gayret gösterdim. Böylece sizlerde bakabilirsiniz.

Burada ki eğitim öylesine kaliteli ki, internette takip etmeye başladığım eş zamanlı kursları bırakıp sadece buraya yönelmeye başladım. İlk başta, Swift programlama dilini anlatırken daha sonrasında UIKit de her kod parçacığını satır satır anlatıyor. İsterseniz video izleyip geçebilirsiniz, isterseniz yazılı metni okuyarak bir kitap okuyormuş gibi detaylı çalışabilirsiniz. Benim insanlara tek önereceğim yer Swift’e ilk başlayanlar için kesinlikle burası.

İlk olarak söylemek isterim ki, bu site İngilizce ve İngilizce okuyup, dinleyip anlama yetkinliğiniz yoksa maalesef geçmek zorunda kalacaksınız.

Ben kendi notlarımı Github profilimde ayrı bir repo oluşturarak notlar oluşturarak anlatmaya çalıştım. Daha sonra burada gün gün ana konuları yazdım.

Github Repo linkim için tıklayınız.

100 Days Of Swift sitesine gitmek için tıklayınız.

Diğer yazılarım için tıklayınız.

İçindekiler

1-12 Günler: Introduction to Swift

İlk 12 gün işin biraz sıkıcı ancak en önemli kısmını öğreniyoruz. Swift ile ilk tanışma zamanı, dile ilk hakim olma zamanı. Tabi başka dilden geçen bizler, bu ilk 12 günü 1 günde de geçebiliriz. Seçim tamamen bize bağlı 🙂 Ancak yine de bütün günlere bi göz gezdirmenizi tavsiye ederim.

1. Gün – Variables, Simple data types, and String interpolation

Değişkenler, basit veri tipleri, ve string interpolation.

Github uzantım için tıklayabilirsiniz.

2. Gün – Arrays, Dictionaries, Sets, and Enums

Bir diziyi enumarated ile döngüde çağırma. Array, Tuple ve Set arasında ki farklar. Dict kullanımı. Enumlar.

Github uzantım için tıklayabilirsiniz.

3. Gün – Operators and Conditions

Klasik operator kullanımları burada da var. Ancak; ++, — yok. Daha sonra, Switch Case yapısı daha kullanışlı.

Github uzantım için tıklayabilirsiniz.

4. Gün – Loops, Loops and More Loops

foreach kullanımı, sonsuz döngüde while kullanımı gibi çok ama çok temel döngüler.

Github uzantım için tıklayabilirsiniz.

5. Gün – Functions, Parameters, and Errors

Klasik fonksiyon kullanımları. ⭐️ Variadic fonksiyon kullanımı. Errow throw etme. Daha sonra, inout kullanımı.

Github uzantım için tıklayabilirsiniz.

6. Gün – Closures Part One

Temel Closure kullanımı. Ardından, Closure içerisinde fonksiyon kullanımı.

Github uzantım için tıklayabilirsiniz.

7. Gün – Closures Part Two

Closure içerisinde short-hand kullanımı yani $0.

Github uzantım için tıklayabilirsiniz.

8. Gün – Structs, Properties, and Methods

Struct kullanımı. Daha sonra, Struct içerisinde bir değişkende didSet kullanımı. Ardından, Struct içerisinde mutating kullanımı. Biraz biraz da String & Array kullanımı.

Github uzantım için tıklayabilirsiniz.

9. Gün – Access control, static properties, and laziness

Struct içerisinde lazy kullanımı. Ardından, static ya da private kullanımı.

Github uzantım için tıklayabilirsiniz.

10. Gün –  Classes and Inheritance

Class yapısı ve inherit etme. Ek olarak, class ile struct arasındaki fark. Daha sonra, Class da deinit etme.

Github uzantım için tıklayabilirsiniz.

11. Gün – Protocols, Extensions, and Protocol Extensions

Protocol oluşturma. Protocol’den inherit edilerek Struct, Class oluşturma. Daha sonra, extension yapısı. Ardından, Extension ile protocol kullanımı.

Github uzantım için tıklayabilirsiniz.

12. Gün –  Optionals, Unwrapping, and Typecasting

Nil (Null) kontrolüdür. if let ile kontrol etme yapılır. Aynı şekilde, Guard let ile de yapılmaktadır. Daha sonra, Unwrapping ve Typecasting adı altında, tip dönüşümleri.

Github uzantım için tıklayabilirsiniz.

13-15 Günler: Consolidation I

12 günde Swift temelleri atıldı. iOS uygulama geliştirmeye başlamadan önce son bir hazırlık, son bir tekrar zamanı. Öğrendiklerimizi tekrar etme ve test çözme zamanı.

13. Gün – Swift Review, Day One

Değişkenler, veri tipleri, operatörler, Array kullanımı gibi temel konularda tekrar edildi.

Github uzantım için tıklayabilirsiniz.

14. Gün – Swift Review, Day Two

Fonksiyonların kullanımı, optional, class ve struct yapısı tekrar edildi.

Github uzantım için tıklayabilirsiniz.

15. Gün – Swift Review, Day Three

Properties, closures, polymorphism, typecasting ifadeleri tekrar edildi.

Github uzantım için tıklayabilirsiniz.

16-22 Günler: Starting iOS

Öğrendiğimiz temel Swift dilini kullanarak temel bir şekilde UIKit kullanmaya başlıyoruz. Kemerlerinizi bağlayın iOS uygulama geliştirmeye başlıyoruz.

16. Gün – Proje 1 -> Storm Viewer

FileManager ile Assets resimlerine erişme. Ardından, TableView ile ekranda gösterme.

Github uzantım için tıklayabilirsiniz.

17. Gün – Proje 1 -> Storm Viewer

imageView kullanma. Tabbarı gizleme. Daha sonra, TableView’dan bir sonraki sayfaya veri aktarma. NavigatorPush ile.

Github uzantım için tıklayabilirsiniz.

18. Gün – Proje 1 -> Storm Viewer Final

1. projeyi tamamladım. Github uzantımda ekran videosunu görebilirsiniz. Aynı zamanda, Challenge lar ile birlikte yaptım ve kodları paylaştım.

Github uzantım için tıklayabilirsiniz.

19. Gün – Proje 2 -> Guess The Flag

Butona, setImage ekleme. Daha sonra, kod ekranında butonun boyutlarını, çerçevesini vs. ayarlama.

Github uzantım için tıklayabilirsiniz.

20. Gün – Proje 2 -> Guess The Flag

Shuffle ve random metotları kullanıldı. ⭐️ Butona Tag ekleme. Alert Dialog kullanma.

Github uzantım için tıklayabilirsiniz.

21. Gün – Proje 2 -> Guess The Flag Final

2. projeyi tamamladım. Github uzantımda ekran videosunu görebilirsiniz. Aynı zamanda, Challenge lar ile birlikte yaptım ve kodları paylaştım.

Github uzantım için tıklayabilirsiniz.

22. Gün – Proje 3 -> Social Media Final

rightBarButtonItem ve #Selector kullanımı. Ardından, Guard let ile jpegData erişimi. Daha sonra, paylaşma butonu mesela sosyal medya için.

3. projeyi tamamladım. Github uzantımda ekran videosunu görebilirsiniz. Aynı zamanda, Challenge lar ile birlikte yaptım ve kodları paylaştım.

Github uzantım için tıklayabilirsiniz.

23. Gün: Consolidation II

FileManager’ı daha öncesindenden farklı bir şekilde kullandım. FileManager çok geniş bir kütüphane. Ayrıca incelenmesi lazım. Ardından, Ayrı Swift dosyasından Dict’ten bayrak isimlerini çekme ve bayrakları mesajlaşma kısmında paylaşma.

2. Milestone projesini tamamladım. Github uzantımda ekran videosunu görebilirsiniz. Aynı zamanda, Challenge lar ile birlikte yaptım ve kodları paylaştım.

Github uzantım için tıklayabilirsiniz.

24-31 Günler: Web views, User input, and Auto Layout

Biraz daha detayına iniyoruz. TableView verilerini daha iyi yönetebileceğiz ve iOS becerilerimizi daha çok geliştirebileceğimiz bir 1 haftaya hazır olun. Bu süreçte gerçekten hiç sıkılmayacaksınız. Swift her geçen gün kendini daha çok hayran bırakıyor.

24. Gün -> Proje 4 – Easy Browser

Android Java’da WebView ile blog sayfamın uygulamasını yapmıştım. Şimdi sıra iOS’da. Kütüphane ve WKWebView importu. Daha sonra, tabbar butonu ile webview sayfalarına gitme.

Github uzantım için tıklayabilirsiniz.

25. Gün -> Proje 4 – Easy Browser

decidePolicyFor kullanımı. Yani, WebView’da izinler kısmı.

Github uzantım için tıklayabilirsiniz.

26. Gün -> Proje 4 – Easy Browser Final

4. projeyi tamamladım. Github uzantımda ekran videosunu görebilirsiniz. Aynı zamanda, Challenge lar ile birlikte yaptım ve kodları paylaştım.

Github profilim için tıklayabilirsiniz.

27. Gün -> Proje 5 – Word Scramble

Weak – Unowned – Strong arasında ki farklar not ettim. Devamında, Bundle Url ile txt dosyasından verileri çektim.

Github profilim için tıklayabilirsiniz.

28. Gün -> Proje 5 – Word Scramble

Uygulama içi gerekli olan algoritmaları yazdım. Örneğin, txt içerisinde bulunan bir kelime var mı yok mu kontrolü. Kelime içerisinde kelime aramak için harfleri parçalama algoritması ve son olarak parçalanan algoritmanın bir doğru bir kelime olup olmadığı kontrolü. Bunun için, UITextChecker() sınıfını kullandım. Kelime doğruluğunu kontrol eden bir sınıf.

Github profilim için tıklayabilirsiniz.

29. Gün -> Proje 5 – Word Scramble Final

5. projeyi tamamladım. Github uzantımda ekran videosunu görebilirsiniz. Aynı zamanda, Challenge lar ile birlikte yaptım ve kodları paylaştım.

Github profilim için tıklayabilirsiniz.

30. Gün -> Proje 6 – Auto Layout

Auto layout kavramı. Daha sonra, sadece kod olarak auto layout yapma.

Github profilim için tıklayabilirsiniz.

31. Gün -> Proje 6 – Auto Layout Final

6. projeyi tamamladım. Github uzantımda ekran görüntülerini görebilirsiniz. Aynı zamanda, Challenge lar ile birlikte yaptım ve kodları paylaştım.

Önemli Not: bugün, AutoLAyout’ı kod ekranında tam manasıyla nasıl yazılır, detaylı bir şekilde inceleniyor.

Github profilim için tıklayabilirsiniz.

32 Gün: Consolidation III

TableView tekrarı ve paylaşma butonunu tekrar eden bir proje oldu.

3. Milestone projesini tamamladım. Github uzantımda ekran videosunu görebilirsiniz. Aynı zamanda, Challenge lar ile birlikte yaptım ve kodları paylaştım.

Github profilim için tıklayabilirsiniz.

33-40 Günler: Codable, buttons, and GCD

33. Gün -> Proje 7 – Whitehouse Petitions

Codable Protocol kullanarak JSON Parse işlemi yapmayı öğrendim.

Github profilim için tıklayabilirsiniz.

34. Gün -> Proje 7 – Whitehouse Petitions

E-bültene Abone Ol Merak etmeyin. Spam yapmayacağız.

Yazar

Gezen, okuyan ve sıradanlıktan kurtulmak isteyen bir öğrenci

İlgili Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Hızlı yorum için giriş yapın.

Kayıt Ol

VEYA

Zaten üye misiniz? Giriş Yap

Giriş Yap

VEYA

Henüz üyeliğiniz yok mu? Kayıt Ol