## New Interview Question Set
(To make sure candidate is understadning Question: copy and paste the question in the chat.)
### Please hand raise if trailing questions
# Project Walkthrough (15-20mins)
Question scroing is out of 5. fractions are allowed ie 3.7
# Warm up (check basics)
1. What are the main differences between classes and structs in Swift?
1. Ask similarities - if above answer is satisfactory.
2. What is the difference between an array and a set?
3. Experience with Firebase and sub modules have you used?
# Swift
4. How would you compare two tuples to ensure their values are identical?
5. What are protocols?
6. In which situations do Swift functions not need a return keyword?
7. What is the difference between try, try?, and try! in Swift?
8. What are generics and why are they useful?
9. What is the difference between weak and unowned?
10. What is the difference between an escaping closure and a non-escaping closure?
# SwiftUI
- Tell what property wrappers you have used?
1. @Published?
2. @State?
3. @StateObject?
- When would you use @StateObject versus @ObservedObject?
- How can an observable object announce changes to SwiftUI?
- What's the difference between a view's initializer and onAppear()?
- When would you use GeometryReader?
- Why does SwiftUI use structs for views? (Thought process question)
# Syntax (Skiabble Section)
17. What's the difference between == and ===?
18. What does the Swift `mutating` keyword do?
19. What is a good use case for an `inout` parameter?
# Frameworks:
20.[SKIP this, plz] How much experience do you have using Core Data? Can you give examples
1. what are other options to store data?
22. When might you use NSSortDescriptor?
23. What concurrency Frameworks have you used? What is your comfortablility with each one?
24. How familiar are you with XCTest?
# Memory & performance
25. How would you explain ARC?
26. For same number of items which one would take more memory ScrollView or List? Explain?
1. How would you make ScrollView more memory efficient?
27. What steps do you take to identify and resolve a memory leak?
28. What steps do you take to identify and resolve performance issues?
# Design Pattern:
- Can you explain MVVM, and how it might be used on Apple's platforms?
- What other design patterns have you used? Talk about Benefits and drawbacks? (Thought process)
- Can you give some examples of where singletons might be a good idea? (Thought process)