nechaj, aby bol parent úlohou { nechaj, aby bol child úlohou { print("child started, isCancelled = ", Task.isCancelled) // NIE 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 sekunda parent.cancel() /////// nechaj, aby bol parent úlohou { 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 sekunda parent.cancel()
iOS
Boli problémy s konkurentnosťou (Sendable, unchecked Sendable, prehody medzi aktérmi) v moduloch, s ktorými ste priamo pracovali?
protokol SomeProtocol {} func test1_1(hodnota: SomeProtocol) {} func test2_1(hodnota: some SomeProtocol) {} func test1_2(hodnota: any SomeProtocol) {}
Ako funguje systém dizajna medzi UIKit a SwiftUI — je tam duplikácia komponentov alebo obalov?
Navigácia je napísaná v UIKit, a upozornenia/šity vyťahujete do UIKit alebo používate natívne prostriedky SwiftUI?
Povedaj mi več o svojem zadnjem projektu — modulu fotogalerije na Avito, za katerega si bio odgovoran (kratkoročni najem, obrazec za rezervacijo itd.)
protokol SomeProtocol {} func test1_1(hodnota: SomeProtocol) {} func test1_2(hodnota: any SomeProtocol) {}
Ako bola implementovaná interakcia s gestami a zoom v galérii fotografií — v UIKit alebo SwiftUI?
protokol SomeProtocol {} funkcia test1_1(hodnota: SomeProtocol) {} funkcia test1_2(hodnota: akýkoľvek SomeProtocol) {} funkcia test2_1(hodnota: some SomeProtocol) {} funkcia test2_2<Hodnota: SomeProtocol>(hodnota: Hodnota) {} trieda A { funkcia test2_2<Hodnota: SomeProtocol>(hodnota: Hodnota) { } } trieda B: SomeProtocol { } A().test2_2(hodnota: B())
nechajte rodiča byť Task { let child = Task { print("dieťa začalo, isCancelled = ", Task.isCancelled) // for index in (1...[phone]) { print(index) } print("dieťa skončilo, isCancelled = ", Task.isCancelled) // } await child.value } try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 sekunda parent.cancel()
Bili na poslednej WWDC zaujímavé relácie/rámce, ktoré by ste chceli vyskúšať v práci?
Porozprávaj o užitočných Property Wrapper-och, ktoré si použil v projekte
struct ExampleView: View { var body: some View { VStack { FormView() Button("Reset") { // TODO: } } } } // IBAČE ZA ČITANJE 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) } } }
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)) } }
Existujú v projekte ďalšie makrá okrem sieťovej vrstvy?
Ako veľmi ti pomáhajú nástroje AI (Cursor, Proxyman atď.) byť produktívnejší v práci?
Aká verzia jazyka Swift sa používa v projekte — vyššia alebo nižšia ako 6?
```swift 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) .background(Color.red) .clipShape(RoundedRectangle(cornerRadius: 8)) } } ``` ```swift 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?) .background(Color.red) .clipShape(RoundedRectangle(cornerRadius: 8)) } } ``` ```swift 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)) } } ``` ```swift struct CustomButtonStyleView: View { var body: some View { VStack { Button("Button") { print("Tapped") } .buttonStyle(CustomButtonStyle()) .frame(width: 200) } } } 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)) } } ``` Výzva se zdá být o přizpůsobení stylu tlačítka SwiftUI, experimentování s různými modifikátory, jako je odsazení, barva popředí, šířka rámečku, barva pozadí a tvar oříznutí. Otázka pravděpodobně zahrnuje opravu nebo vylepšení stylu tlačítka tak, aby dosáhla požadovaného vzhledu nebo chování, například aby tlačítko vyplnilo dostupnou šířku nebo upravit jeho vizuální styl.
Array { value1 value2 if condition { value3 } }
Aký je aktuálny minimálny cieľ iOS v projekte?