0% found this document useful (0 votes)
186 views10 pages

Swift House

This document provides information about Swift programming language and various iOS development topics: - Swift is a programming language for Apple platforms that is type-safe, supports static and dynamic dispatch, tuples, generics, structs with methods, higher order functions, and pattern matching. - New features of Swift 5.7/5.6 and OOP concepts in Swift are discussed. The states and lifecycles of iOS apps, views, and view controllers are explained. Concepts like functions, optionals, closures, memory management, Grand Central Dispatch, and more are summarized. - Links are provided to learn about Core Data, Auto Layout, Size Classes, networking, design patterns like MVV

Uploaded by

Santosh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
186 views10 pages

Swift House

This document provides information about Swift programming language and various iOS development topics: - Swift is a programming language for Apple platforms that is type-safe, supports static and dynamic dispatch, tuples, generics, structs with methods, higher order functions, and pattern matching. - New features of Swift 5.7/5.6 and OOP concepts in Swift are discussed. The states and lifecycles of iOS apps, views, and view controllers are explained. Concepts like functions, optionals, closures, memory management, Grand Central Dispatch, and more are summarized. - Links are provided to learn about Core Data, Auto Layout, Size Classes, networking, design patterns like MVV

Uploaded by

Santosh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

What is Swift?

https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
https://developer.apple.com/swift/

● Programming language for Apple products


● Type-safe language
● Static & Dynamic Dispatch whereas ObjC only Dynamic Dispatch
● Tuples and multiple return values
● Generics
● Structs that support methods, extensions, and protocols
● Higher order functions, e.g., map and filter
● Advanced control flow with do, guard, defer, and repeat keywords
● Enums can have payloads and support pattern matching

Swift 5.7/5.6 new features

https://www.hackingwithswift.com/swift/5.7
https://github.com/twostraws/whats-new-in-swift-5-6

OOPs Concept
https://medium.com/swift-india/oops-in-swift-998738407423

State of an iOS app


https://www.techrepublic.com/blog/software-engineer/understand-the-states-and-transitions-of-a
n-ios-app/ (Quick Rev.)
https://medium.com/@chinthaka01/the-execution-states-of-an-ios-application-84e117132e27

App/VC/Lifecycle for Swift / Swift UI


https://medium.com/@ansujain/ios-application-life-cycle-d517a3c44e7e
https://manasaprema04.medium.com/application-life-cycle-in-ios-f7365d8c1636
https://bradbambara.wordpress.com/2015/01/18/object-life-cycle-uiview/
https://medium.com/swlh/ios-app-lifecycle-explained-4e2f9d2370ab

Functions
https://code.tutsplus.com/tutorials/swift-from-scratch-function-parameters-types-and-nesting--cm
s-23056
Optionals in Swift:
https://medium.com/@agoiabeladeyemi/optionals-in-swift-2b141f12f870

Completion Handler:
https://grokswift.com/completion-handler-faqs/

Closure:
https://medium.com/@abhimuralidharan/functional-swift-all-about-closures-310bc8af31dd

Escaping and Non-Escaping Closure:


https://medium.com/swiftcommmunity/what-do-mean-escaping-and-nonescaping-closures-in-sw
ift-d404d721f39d

Capture List:
https://www.swiftbysundell.com/articles/swifts-closure-capturing-mechanics/
https://blog.bobthedeveloper.io/swift-capture-list-in-closures-e28282c71b95

Properties:
https://medium.com/@abhimuralidharan/all-about-properties-in-swift-d618481b1cc1

Constants
https://medium.com/swift-india/defining-global-constants-in-swift-a80d9e5cbd42

Structs and Classes in swift


https://docs.swift.org/swift-book/LanguageGuide/ClassesAndStructures.html
https://medium.com/@nitingeorge_39047/copy-on-write-in-swift-b44949436e4f
https://stackoverflow.com/questions/24232799/why-choose-struct-over-class

Protocol vs Class
https://www.hackingwithswift.com/example-code/language/whats-the-difference-between-a-prot
ocol-and-a-class

Enum
https://abhimuralidharan.medium.com/enums-in-swift-9d792b728835

Access Level:
https://medium.com/@abhimuralidharan/swift-3-0-1-access-control-9e71d641a56c
Final in Swift/Dynamic Dispatch:
https://developer.apple.com/swift/blog/?id=27
https://stackoverflow.com/questions/46049783/what-is-the-difference-between-final-class-and-cl
ass

Inline/Static/Dynamic/Message Dispatch in Swift


https://medium.com/flawless-app-stories/static-vs-dynamic-dispatch-in-swift-a-decisive-choice-c
ece1e872d
https://medium.com/@nitingeorge_39047/swift-performance-dynamic-dispatch-bcbc71fda181

Memory Management in iOS (Read each word and hyperlink)


https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html
https://heartbeat.fritz.ai/memory-management-in-swift-heaps-stacks-baa755abe16a
https://swiftrocks.com/memory-management-and-performance-of-value-types
https://medium.com/flawless-app-stories/unowned-vs-weak-614ac71ac516
https://developer.apple.com/videos/play/wwdc2015/409/?time=1076
………………………
https://cocoacasts.com/swift-and-cocoa-fundamentals-threads-queues-and-concurrency
https://www.swiftbysundell.com/articles/task-based-concurrency-in-swift/
https://www.viget.com/articles/concurrency-multithreading-in-ios/

GCD in Swift
https://www.appcoda.com/grand-central-dispatch/
https://www.oreilly.com/library/view/high-performance-ios/9781491910993/ch04.html
https://ali-akhtar.medium.com/concurrency-in-swift-grand-central-dispatch-part-1-945ff05e8863

Dispatch Group
https://medium.com/swift-india/parallel-programming-with-swift-part-2-4-46a3c6262359
https://medium.com/swift2go/using-dispatch-group-semaphore-to-group-ios-async-tasks-alfian-l
osari-81335fa6e92e
https://www.raywenderlich.com/5371-grand-central-dispatch-tutorial-for-swift-4-part-2-2#toc-anc
hor-002

Memory Leak:
https://jayeshkawli.ghost.io/when-to-weakify/
Retain Cycle, Weak and Unowned:
https://krakendev.io/blog/weak-and-unowned-references-in-swift#:~:text=A%20weak%20referen
ce%20is%20just,from%20being%20deallocated%20by%20ARC.&text=In%20Swift%2C%20all%
20weak%20references,a%20strong%20reference%20to%20it.
https://medium.com/mackmobile/avoiding-retain-cycles-in-swift-7b08d50fe3ef
https://medium.com/@vinodhswamy/strong-cycle-retain-cycle-in-swift-f452f07518b2

Autolayout Architecture
https://www.vadimbulavin.com/view-auto-layout-life-cycle/#:~:text=Every%20UIView%20with%2
0enabled%20Auto,the%20whole%20cycle%20to%20repeat.
https://matteomanferdini.com/ios-auto-layout/

Size Classes
https://medium.com/@craiggrummitt/size-classes-in-interface-builder-in-xcode-8-74f20a541195

Size Classes(Programatically)
https://medium.com/flawless-app-stories/building-adaptive-layout-with-size-classes-programmati
cally-40db42950c89

SetNeedsLayout vs LayoutIfNeeded
https://medium.com/@gagan5278/setneedslayout-vs-layoutifneeded-in-swift-6f5fb2972d5f
https://abhimuralidharan.medium.com/ios-swift-setneedslayout-vs-layoutifneeded-vs-layouts
ubviews-5a2b486da31c

AutoLayout (Must read Why Points instead of Pixels?)


https://www.appcoda.com/learnswift/auto-layout-intro.html

Content Sizing Priorities (Hugging n Compression Resistance)


https://krakendev.io/blog/autolayout-magic-like-harry-potter-but-real

Frames Vs Bounds
https://suragch.medium.com/frame-vs-bounds-in-ios-107990ad53ee
Get/Set/WillSet/DidSet
https://stackoverflow.com/questions/25398753/swift-willset-didset-and-get-set-methods-in-a-pro
perty

Coredata
https://medium.com/xcblog/core-data-with-swift-4-for-beginners-1fc067cca707
https://cocoacasts.com/what-is-the-core-data-stack
https://ali-akhtar.medium.com/mastering-in-core-data-part-0-5a529c6c5a93

Core Data vs Realm


https://cocoacasts.com/core-data-or-realm#:~:text=An%20important%20advantage%20Realm%
20has,it%20has%20over%20Core%20Data.
https://www.cloudbees.com/blog/ios-databases-sqllite-core-data-realm/

Typealias in Swift:
https://medium.com/pretty-swifty/swift-101-typealias-9d6a794bc59f
https://www.programiz.com/swift-programming/typealias
https://www.swiftbysundell.com/articles/the-power-of-type-aliases-in-swift/

Two phase initialization


https://docs.swift.org/swift-book/LanguageGuide/Initialization.html#ID220

Assert
https://medium.com/@alecoconnor/asserts-in-swift-and-why-you-should-be-using-them-6a7c96
eaec10

Subscript
https://abhimuralidharan.medium.com/subscripts-in-swift-51e73cc5ddb5

Any vs AnyObject:
https://medium.com/flawless-app-stories/any-anyobject-in-ios-803515bd95a6

NSOperation Queues(Only if needed)

Dependency Injection in Swift


https://learnappmaking.com/dependency-injection-swift/
https://levelup.gitconnected.com/dependency-injection-in-swift-bc16d66b038b
Dependency Inversion in Swift
https://medium.com/flawless-app-stories/practical-dependency-inversion-in-swift-1c1142161a8

Paths n Layers in Swift


https://www.appcoda.com/bezier-paths-introduction/

iOS 14 for developers


https://medium.com/better-programming/ios-14-checklist-for-developers-372bd6d2507e

iOS 15 for developers


https://medium.com/geekculture/whats-new-in-ios-15-for-developers-cdde64a68511

CachePolicy(need to implement Protocol based in request)


https://medium.com/flawless-app-stories/ignorance-of-the-urlrequest-cache-a3584bc2f05f

Closures catch by value


https://medium.com/swlh/can-you-answer-this-simple-swift-question-correctly-3d2836cff7b1

NSPredicate
https://nshipster.com/nspredicate/

Push Notifications
https://medium.com/flawless-app-stories/ios-remote-push-notifications-in-a-nutshell-d05f5ccac2
52

Codable In Swift

Method Swizzling
https://abhimuralidharan.medium.com/method-swizzling-in-ios-swift-1f38edaf984f

Error Handling/Try/Try?/Try! in Swift


https://abhimuralidharan.medium.com/error-handling-in-swift-d0a618499910
Result

Tuples
https://abhimuralidharan.medium.com/tuple-in-swift-a9ddeb314c79

KVO n KVC
https://www.uraimo.com/swiftbites/kvo-and-kvc-in-swift/

Google Maps

Firebase

Design Pattern
https://medium.com/flawless-app-stories/the-only-viable-ios-architecture-c42f7b4c845d

Singleton Pattern
https://cocoacasts.com/what-is-a-singleton-and-how-to-create-one-in-swift

Architecture in iOS
https://www.raywenderlich.com/6733535-ios-mvvm-tutorial-refactoring-from-mvc#toc-anchor-00
5
https://medium.com/better-programming/how-to-implement-viper-architecture-in-your-ios-app-re
st-api-and-kingfisher-f494a0891c43

SOLID in iOS
https://www.scaledrone.com/blog/solid-principles-for-becoming-a-better-ios-swift-developer/
https://marcosantadev.com/solid-principles-applied-swift/
https://medium.com/swift-india/solid-principles-part-3-liskov-substitution-principle-723e025d0589

Data persistence in iOS

Networking in iOS
https://matteomanferdini.com/network-requests-rest-apis-ios-swift/
Filters, map, flatmap, etc…

PHAsset

Document Directory
https://coggle.it/diagram/W5E5tqYlrXvFJPsq/t/master-the-interview-click-here-for-course-link

Modularise App
https://medium.com/kinandcartacreated/modular-ios-splitting-a-workspace-into-modules-331293
f1090

Diffable Data Source


https://www.alfianlosari.com/posts/using-ios13-diffable-datasource-api-in-tableview/

Discardable Result
https://sarunw.com/posts/what-is-discardableresult/

Property Wrappers
https://www.swiftbysundell.com/articles/property-wrappers-in-swift/

App Profiling
https://www.avanderlee.com/debugging/xcode-instruments-time-profiler/
https://www.hackingwithswift.com/articles/81/how-to-find-and-fix-slow-code-using-instruments

Reasons for application rejection


https://medium.com/alphalogicinc/15-reasons-why-apple-will-reject-your-app-96f8802a2a65

API Design Guidelines


https://swift.org/documentation/api-design-guidelines/

UIResponder chain
https://dev-wd.github.io/swift/responderchain/
https://dev-wd.github.io/swift/uicontrol/
Thread safe operations
https://stackoverflow.com/questions/28191079/create-thread-safe-array-in-swift

Background Execution
https://abhimuralidharan.medium.com/finite-length-tasks-in-background-ios-swift-60f2db4fa01b
https://medium.com/swlh/handling-background-tasks-in-ios-13-67f717d94b3d
https://medium.com/@vialyx/ios-dev-course-background-modes-fetch-70c18f9f58d5

Memory Profiling
Time Profiler
https://stackoverflow.com/questions/51946972/xcode-instruments

App Launch
https://developer.apple.com/videos/play/wwdc2019/423/

Protocol Based Network Layer


https://github.com/AjayBhanushali/NetworkLayer

SwiftUI

Why Struct for views in SwiftUI


https://www.hackingwithswift.com/books/ios-swiftui/why-does-swiftui-use-structs-for-views

Opaque type:
https://www.alfianlosari.com/posts/understanding-opaque-return-type/

Combine

MetalKit

ARKit

AVKit
Interview Prep:-
https://iosinterviewguide.com/ios-interview-questions-for-senior-developers-in-2020
https://tanaschita.medium.com/ios-interview-questions-and-answers-for-senior-developers-part-
1-9256221356f5
https://www.hackingwithswift.com/interview-questions
https://iosinterviewguide.com/ios-interview-questions-for-senior-developers-in-2020

There are several ways to pass data in swift such as KVO, Delegate, NSNotification &
Callbacks, Target-Action, etc.
https://github.com/apple/swift/blob/main/docs/OptimizationTips.rst

Static vs Dynamic Library


https://pratheeshbennet.medium.com/static-library-vs-dynamic-library-in-ios-55478ed53a03

Improvements on compilation time:


https://medium.com/@joshgare/8-tips-to-speed-up-your-swift-build-and-compile-times-in-xcode-
73081e1d84ba
https://medium.com/flawless-app-stories/analyzing-and-improving-build-times-in-ios-5e2b77ef40
8e(Build and release time)
https://www.avanderlee.com/optimization/analysing-build-performance-xcode/ (Some Xcode
Setting changes)

You might also like