let parent = Task { let child = Task { print("child started, isCancelled = ", Task.isCancelled) // NO false for index in (1...[phone]) { print(index) } print("child finished, isCancelled = ", Task.isCancelled) // } await child.value } try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 second parent.cancel() /////// let parent = Task { async let child: Void = { print("child started, isCancelled =", Task.isCancelled) for index in (1...[phone]) { print(index) } print("child finished, isCancelled =", Task.isCancelled) }() await child } try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 second parent.cancel()
iOS
Were there any issues with concurrency (Sendable, unchecked Sendable, actor transitions) in the modules you worked with directly?
protocol SomeProtocol {} func test1_1(value: SomeProtocol) {} func test2_1(value: some SomeProtocol) {} func test1_2(value: any SomeProtocol) {}
How does the design system work between UIKit and SwiftUI — is there duplication of components or wrappers?
protocol SomeProtocol {} func test1_1(value: SomeProtocol) {} func test1_2(value: any SomeProtocol) {}
Tell me more about your last project — the photo gallery module in Avito, which you were responsible for (short-term rental, booking form, etc.)
protocol SomeProtocol {} func test1_1(value: SomeProtocol) {} func test1_2(value: any SomeProtocol) {} func test2_1(value: some SomeProtocol) {} func test2_2<Value: SomeProtocol>(value: Value) {} class A { func test2_2<Value: SomeProtocol>(value: Value) { } } class B: SomeProtocol { } A().test2_2(value: B())
How was gesture and zoom interaction implemented in the photo gallery — using UIKit or SwiftUI?
Navigation is written in UIKit, but do you use native SwiftUI tools for alerts/shields or do you use UIKit?
let parent = Task { let child = Task { print("child started, isCancelled = ", Task.isCancelled) // for index in (1...[phone]) { print(index) } print("child finished, isCancelled = ", Task.isCancelled) // } await child.value } try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 second parent.cancel()
Tell about useful Property Wrappers you've used in a project.
Are there any macros in the project besides the network layer?
How much do AI tools (Cursor, Proxyman, etc.) help you be more productive at work?
struct CustomButtonStyleView: View { var body: some View { VStack { Button("Button") { print("Tapped") } } .buttonStyle(CustomButtonStyle()) } } private struct CustomButtonStyle: ButtonStyle { func makeBody(configuration: Configuration) -> some View { configuration.label .padding() .foregroundColor(.white) .frame(maxWidth: .infinity) .background(Color.red) .clipShape(RoundedRectangle(cornerRadius: 8)) } }
struct ExampleView: View { var body: some View { VStack { FormView() Button("Reset") { // TODO: } } } } // READ ONLY struct FormView: View { @State private var firstname = "" @State private var lastname = "" @State private var email = "" @State private var website = "" var body: some View { Form { TextField("Enter firstname", text: self.$firstname) TextField("Enter lastname", text: self.$lastname) TextField("Enter email address", text: self.$email) TextField("Enter website address", text: self.$website) } } }
Which version of Swift is used in the project — above 6 or below?
Were there interesting sessions/frameworks at the last WWDC that you would like to try applying in your work?
What is the minimum target iOS version currently in the project?
Array { value1 value2 if condition { value3 } }
When you joined the project, was Swift 6 already available, or did the transition happen during your time?