— Технические вопросы:
1. С какими архитектурными подходами и паттернами вы сталкивались? Я вижу, вы упомянули MVVM.
2. Вы использовали MVVM без ReactiveX на всех проектах?
3. Сталкивались ли вы с SwiftUI? Делали ли на нем какие-то небольшие подпроекты?
4. Какие порождающие и поведенческие паттерны вы чаще всего используете?
5. Был ли у вас опыт настройки CI/CD? Например, доработка pipeline или что-то подобное?
6. Сталкивались ли вы с автотестами? Может быть, писали юнит-тесты или UI-тесты?нит-тестыилиUI-тесты`?
— Задача 1: Что выведет программа и почему?
import UIKit
var names = Set()names.insert(“Boris”)names.insert(“Andrey”)names.insert(“Boris”)names.insert(“Arthur”)names.insert(“Boris”)print(names.count)
— Задача 2: Что выведет программа и почему?
import UIKit
class Resolution { var width = 1920 var height = 1080}
var hd = Resolution()var cinema = hdcinema.width = 1800print(hd.width)
— Задача 3: Что выведет программа и почему?
import UIKit
let items = [-2, 3, 1, -4, -6, 5]let result = items.sorted().filter{ $0 > 0 }.map{ String($0) }.reduce(“”){ $1 + $0 }print(result)
— Задача 4: Что выведет программа и почему?
import UIKit
func addScore(_ point: Int) -> Int { var score = 11 let calculate = { $0 + score } score = calculate(point) return calculate(score)}
print (addScore(10))
— Задача 5: Что выведет программа и почему?
import UIKit
class A { deinit { print(“A”) }}
class B { let a = A()
text📋deinit {
print("B")
}
}
class C: A { let b = B()
text📋deinit {
print("C")
}
}
var c: C? = C()c = nil
— Задача 6: Что выведет программа и почему?
import UIKit
class A { var bReference: B? = nil
text📋deinit {
print("A deinitialized")
}
}
class B { var aReference = A()
text📋deinit {
print("B deinitialized")
}
}
var b: B? = B()b?.aReference.bReference = bb = nil
— Задача 6: Что выведет программа и почему?
import UIKit
func dispatchPrint() { print(“1”)
text📋DispatchQueue.main.sync {
print("2")
DispatchQueue.main.async {
print("3")
}
print("4")
}
print("5")
}
let queue = DispatchQueue(label: “Queue”, qos: .userInteractive, attributes: [], autoreleaseFrequency: .never, target: nil)
queue.async { dispatchPrint()}
— Задача 6: Что выведет программа и почему?
import UIKit
import Foundation
import PlaygroundSupport
let queue = DispatchQueue.global()
var employees = [“Bill”, “Bob”, “Joe”]
queue.async { let count = employees.count for index in 0 ..< count { print(“(employees[index])”) Thread.sleep(forTimeInterval: 1) }}
queue.async { Thread.sleep(forTimeInterval: 0.5) print(“remove”) employees.remove(at: 0)}
— Задача 6: Напишите функцию, которая должна сравнивать две строки на совпадение набора символов.
import UIKit
import Foundation
dog dgo -> truedog dfo -> falsedoog odog -> truedoog dog -> false