TechFeed Experts Night#3 〜 モバイルアプリ開発特集 (#techfeed_experts_night) https://techfeed.io/events/techfeed-experts-night-3 ↑口頭で話している部分が多いのでYouTubeのアーカイブをぜひご覧ください
https://twitter.com/tanakasan2525
SwiftUIΛ্खʹ͏Tatsuya Tanaka / ాத ୡTechFeed Experts Night #3 (#techfeed_experts_night)
View Slide
ͨͳͨͭ / Tatsuya Tanaka• Ϡϑʔגࣜձࣾ / iOSΞϓϦࠇଳ• TechFeed Expert@tattn@tanakasan2525@tattn
VTuberελΠϧͰWebձٞʹࢀՃͰ͖ΔΞϓϦެ։த
SwiftUIͷྑ͍͍ํ
ηϚϯςΟοΫʹUIΛσβΠϯ͢Δ
struct NoSematicLayoutView: View {var body: some View {VStack {Image("Avatar").resizable().scaledToFit()Text("Hello, world").font(.system(size: 28))}.padding(16).toolbar {ToolbarItem(placement: .navigationBarTrailing) {Button {// লུ} label: {Text("Done").bold()}}ToolbarItem(placement: .navigationBarLeading) {Button("Cancel") {// লུ}}}}}←ϑΥϯταΠζͷ۩ମతͳࢦఆ←༨നαΠζͷ۩ମతͳࢦఆ↑↓ஔͷ۩ମతͳࢦఆ
struct NoSematicLayoutView: View {var body: some View {VStack {Image("Avatar").resizable().scaledToFit()Text("Hello, world").font(.system(size: 28))}.padding(16).toolbar {ToolbarItem(placement: .navigationBarTrailing) {Button {// লུ} label: {Text("Done").bold()}}ToolbarItem(placement: .navigationBarLeading) {Button("Cancel") {// লུ}}}}}←ͷจࣈαΠζΛେ͖ͯ͘͠ө͞Εͳ͘ͳΔ͜ͷஔํ๏ͩͱwatchOSͰ͑ͳ͍
struct SematicLayoutView: View {var body: some View {VStack {Image("Avatar").resizable().scaledToFit()Text("Hello, world").font(.title)}.padding().toolbar {ToolbarItem(placement: .confirmationAction) {Button("Done") {// লུ}}ToolbarItem(placement: .cancellationAction) {Button("Cancel") {// লུ}}}}}←ελΠϧͰͷࢦఆ←σϑΥϧτͰͷࢦఆ↑↓Ϙλϯͷಈ࡞Ͱͷࢦఆ
struct SematicLayoutView: View {var body: some View {VStack {Image("Avatar").resizable().scaledToFit()Text("Hello, world").font(.title)}.padding().toolbar {ToolbarItem(placement: .confirmationAction) {Button("Done") {// লུ}}ToolbarItem(placement: .cancellationAction) {Button("Cancel") {// লུ}}}}}←ελΠϧͰͷࢦఆ←σϑΥϧτͰͷࢦఆ↑↓Ϙλϯͷಈ࡞ͰͷࢦఆWatchΞϓϦͱͯ͠ϏϧυͰ͖Δ
ηϚϯςΟοΫʹUIΛσβΠϯ͢ΔσβΠϯπʔϧͰࣗ༝ʹσβΠϯͨ͠ͷΛ ͦͷ··࣮ʹө͢ΔํSwiftUIͰ͓͢͢ΊͰ͖ͳ͍SwiftUIϓϥοτϑΥʔϜڥʹ߹Θͤͯ࠷దͳݟͨΛఏڙ͢Δ
΄΅ڞ௨ͷίʔυ͕ͩڥʹΑͬͯݟ͕ͨมΘΔ↑iOS ↑iPadOSwatchOS→↑tvOS↓macOS
SwiftUIʹదͨ͠UIͰ࡞Δͷ͕͓͢͢Ίڥʹ߹Θͤͨ࠷దԽΛҙࣝͨ͠APIͳͷͰɺϒϥϯυΠϝʔδ࣮ݱ͍ͨ͠UXΛͭͭ͠SwiftUIʹదԠͤ͞Δͷ͕͓͢͢ΊσβΠϯϨϏϡʔͳͲΛߦ͏߹ɺSwiftUIͷਂ͍͕ࣝඞཁ
σβΠϯϨϏϡʔͷ͠͞ɾSwiftUIͷΈͰ࣮ݱͰ͖Δͷ͔Ͳ͏͔ɾUIKitͱͷ࿈ܞͰ࣮ݱͰ͖Δͷ͔ɹɾͦΕʹΑͬͯͲΕ͘Β͍͕૿͑Δ͔ͬͯΈͳ͍ͱΘ͔Βͳ͍͜ͱଟ͍σβΠϯ֬ఆલʹXcode PreviewsΛͬͯݕূ͢Δͷ͕େࣄ
ಠࣗͷUIΛ࠾༻͍ͨ͠߹※ಠࣗͷUI = SwiftUIͷίϯϙʔωϯτʹͳ͍ͷ
ಠࣗUIΛ࡞ΔˠOSͷػೳʹࣗಈରԠ͞Εͳ͘ͳΔSwiftUI༷ʑͳڥʹࣗಈͰରԠ͍ͯ͠ΔɺಠࣗUIΛ࣮ݱ͢Δ߹ɺͦΕΒʹରԠ͢Δ͔ͷஅ͕ඞཁʹͳΔɾμʔΫϞʔυɾϚϧνϓϥοτϑΥʔϜɾԣը໘ɾAccessibility ͳͲ
·ͱΊ
·ͱΊɾηϚϯςΟοΫͳUIσβΠϯ͕େɾಠࣗUIΛ࠾༻͢Δͱ༷ʑͳOSͷศརػೳͷαϙʔτඞཁʹͳΔɾiOS 14Ҏ߱ͳΒSwiftUIे͑Δ՝͋Δ͚Ͳɺ্खʹ͏ͱ։ൃ͕Ұؾʹ্ʂΨϯΨϯͬͯݟΛͨΊ͍͖ͯ·͠ΐ͏ʂ