From 1ffb87e32aed10e5a57e2ca484a02aad549ff89d Mon Sep 17 00:00:00 2001 From: leejihee Date: Fri, 2 Dec 2022 22:06:46 +0900 Subject: [PATCH] 5week: label, navigation, appear, progress, securefield + 9week --- .DS_Store | Bin 6148 -> 6148 bytes MySwiftUI/MySwiftUI.xcodeproj/project.pbxproj | 624 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 46912 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 6 + .../xcschemes/xcschememanagement.plist | 14 + MySwiftUI/MySwiftUI/.DS_Store | Bin 0 -> 6148 bytes MySwiftUI/MySwiftUI/5week/MyLabel.swift | 33 + .../MySwiftUI/5week/MyNavigationStack.swift | 32 + .../MySwiftUI/5week/MyNavigationView.swift | 48 ++ MySwiftUI/MySwiftUI/5week/MyOnAppear.swift | 36 + .../MySwiftUI/5week/MyProgressView.swift | 42 ++ .../MySwiftUI/5week/MySecondProject.swift | 73 ++ MySwiftUI/MySwiftUI/5week/MySecureField.swift | 40 ++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + .../MySwiftUI/Assets.xcassets/Contents.json | 6 + MySwiftUI/MySwiftUI/ContentView.swift | 26 + MySwiftUI/MySwiftUI/MySwiftUIApp.swift | 17 + .../Preview Assets.xcassets/Contents.json | 6 + MySwiftUI/MySwiftUI/gitignore.md | 21 + MySwiftUI/MySwiftUITests/MySwiftUITests.swift | 36 + .../MySwiftUIUITests/MySwiftUIUITests.swift | 41 ++ .../MySwiftUIUITestsLaunchTests.swift | 32 + MyUIKit/MyUIKit.xcodeproj/project.pbxproj | 619 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 39049 bytes .../xcschemes/xcschememanagement.plist | 14 + MyUIKit/MyUIKit/AppDelegate.swift | 36 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + MyUIKit/MyUIKit/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 + MyUIKit/MyUIKit/Base.lproj/Main.storyboard | 599 +++++++++++++++++ MyUIKit/MyUIKit/CircleButton.swift | 20 + MyUIKit/MyUIKit/Info.plist | 25 + MyUIKit/MyUIKit/MyTableViewCell.swift | 29 + MyUIKit/MyUIKit/MyTableViewCell.xib | 113 ++++ MyUIKit/MyUIKit/SceneDelegate.swift | 52 ++ MyUIKit/MyUIKit/ViewController.swift | 156 +++++ MyUIKit/MyUIKitTests/MyUIKitTests.swift | 36 + MyUIKit/MyUIKitUITests/MyUIKitUITests.swift | 41 ++ .../MyUIKitUITestsLaunchTests.swift | 32 + swiftTour.playground/Contents.swift | 125 ++++ swiftTour.playground/contents.xcplayground | 4 + .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 13942 bytes week3/.DS_Store | Bin 6148 -> 6148 bytes week3/week3.xcodeproj/project.pbxproj | 18 +- .../UserInterfaceState.xcuserstate | Bin 38491 -> 38673 bytes week3/week3/.DS_Store | Bin 0 -> 6148 bytes week3/week3/{ => group}/colorTest.swift | 4 +- week3/week3/{ => group}/paddingTest.swift | 0 week3/week3/{ => group}/stateTest.swift | 0 week3/week3/{ => group}/total.swift | 0 week3/week3/{ => group}/viewTest.swift | 0 week4/.DS_Store | Bin 0 -> 6148 bytes .../UserInterfaceState.xcuserstate | Bin 43713 -> 35477 bytes week4/week4/.DS_Store | Bin 0 -> 6148 bytes 61 files changed, 3165 insertions(+), 7 deletions(-) create mode 100644 MySwiftUI/MySwiftUI.xcodeproj/project.pbxproj create mode 100644 MySwiftUI/MySwiftUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 MySwiftUI/MySwiftUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 MySwiftUI/MySwiftUI.xcodeproj/project.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 MySwiftUI/MySwiftUI.xcodeproj/xcuserdata/jihee.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 MySwiftUI/MySwiftUI.xcodeproj/xcuserdata/jihee.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 MySwiftUI/MySwiftUI/.DS_Store create mode 100644 MySwiftUI/MySwiftUI/5week/MyLabel.swift create mode 100644 MySwiftUI/MySwiftUI/5week/MyNavigationStack.swift create mode 100644 MySwiftUI/MySwiftUI/5week/MyNavigationView.swift create mode 100644 MySwiftUI/MySwiftUI/5week/MyOnAppear.swift create mode 100644 MySwiftUI/MySwiftUI/5week/MyProgressView.swift create mode 100644 MySwiftUI/MySwiftUI/5week/MySecondProject.swift create mode 100644 MySwiftUI/MySwiftUI/5week/MySecureField.swift create mode 100644 MySwiftUI/MySwiftUI/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 MySwiftUI/MySwiftUI/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 MySwiftUI/MySwiftUI/Assets.xcassets/Contents.json create mode 100644 MySwiftUI/MySwiftUI/ContentView.swift create mode 100644 MySwiftUI/MySwiftUI/MySwiftUIApp.swift create mode 100644 MySwiftUI/MySwiftUI/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 MySwiftUI/MySwiftUI/gitignore.md create mode 100644 MySwiftUI/MySwiftUITests/MySwiftUITests.swift create mode 100644 MySwiftUI/MySwiftUIUITests/MySwiftUIUITests.swift create mode 100644 MySwiftUI/MySwiftUIUITests/MySwiftUIUITestsLaunchTests.swift create mode 100644 MyUIKit/MyUIKit.xcodeproj/project.pbxproj create mode 100644 MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 MyUIKit/MyUIKit.xcodeproj/xcuserdata/jihee.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 MyUIKit/MyUIKit/AppDelegate.swift create mode 100644 MyUIKit/MyUIKit/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 MyUIKit/MyUIKit/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 MyUIKit/MyUIKit/Assets.xcassets/Contents.json create mode 100644 MyUIKit/MyUIKit/Base.lproj/LaunchScreen.storyboard create mode 100644 MyUIKit/MyUIKit/Base.lproj/Main.storyboard create mode 100644 MyUIKit/MyUIKit/CircleButton.swift create mode 100644 MyUIKit/MyUIKit/Info.plist create mode 100644 MyUIKit/MyUIKit/MyTableViewCell.swift create mode 100644 MyUIKit/MyUIKit/MyTableViewCell.xib create mode 100644 MyUIKit/MyUIKit/SceneDelegate.swift create mode 100644 MyUIKit/MyUIKit/ViewController.swift create mode 100644 MyUIKit/MyUIKitTests/MyUIKitTests.swift create mode 100644 MyUIKit/MyUIKitUITests/MyUIKitUITests.swift create mode 100644 MyUIKit/MyUIKitUITests/MyUIKitUITestsLaunchTests.swift create mode 100644 swiftTour.playground/Contents.swift create mode 100644 swiftTour.playground/contents.xcplayground create mode 100644 swiftTour.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 swiftTour.playground/playground.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 week3/week3/.DS_Store rename week3/week3/{ => group}/colorTest.swift (88%) rename week3/week3/{ => group}/paddingTest.swift (100%) rename week3/week3/{ => group}/stateTest.swift (100%) rename week3/week3/{ => group}/total.swift (100%) rename week3/week3/{ => group}/viewTest.swift (100%) create mode 100644 week4/.DS_Store create mode 100644 week4/week4/.DS_Store diff --git a/.DS_Store b/.DS_Store index 260a0aec3299787776ddcfcf1f5e8ca6718a6561..bf853e9ca5f5ddcdb35602aaa0f465435a0122eb 100644 GIT binary patch literal 6148 zcmeHKTWi!n6h6~#ZDJAjL7|TUU$@=0jSIz>xNZ@_3p83ERMw=4Hf=Vum!=dwNn6pzU>GnATsH>9-nHon`}QG?X=(rRlQ88Wyy9s1hO+xp3N)e(swu{I zPWxe9%yi`UaF!-TIT-w4YwMkj8=KaqwPn5YPkHT^L0J`}Ab%rTFF8-c3q1&rlenIA zZ$IK$86;Vp%Y-C~5%TtRl1028@hXc7nd>WuWn1>7yFH)p9SnQU{&2A9IrD?PLCW%#rz${g1FeDfCN~wY#!`cUt0ek_pS7^tSOY0dWbc$9C`(x-OS`~$8CG>%2v;%yBo_A!= z6-5}M-4t;T%v^DO1rM_9#zf5*9(FU-9L3lno_FU-aCja(fAdOuiOS2u*| z*)U)j_(vHK=YxYH(9_r`lt%|D`2+xVV3q=1{4j_dN28~)Q3wx&sZ^j!W%`N1R66XA zj`K7&3ROBW{rF&dWTsyzOpcEJ9T`r{Q)p_#fMH;jfpyjFiu?cY&+q@$B-1hs7zX|; z23Tk8k4IRNzFS+16L+nH@*YKqh-(ze6jb^;mWsHFw^5|P=LiMpX>1h20x>@Vk_J;5 J2L37ozW`+{pq2mt delta 71 zcmZoMXfc=|#>CJ*u~2NHo+2aD!~pBb1|lqz`B`iy%dv7WGHw>+5M$ZcAj7 + + + + diff --git a/MySwiftUI/MySwiftUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/MySwiftUI/MySwiftUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/MySwiftUI/MySwiftUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/MySwiftUI/MySwiftUI.xcodeproj/project.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate b/MySwiftUI/MySwiftUI.xcodeproj/project.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..1a6758b33c21ae15ea08036f9aec3fc02ba3c181 GIT binary patch literal 46912 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 + + diff --git a/MySwiftUI/MySwiftUI.xcodeproj/xcuserdata/jihee.xcuserdatad/xcschemes/xcschememanagement.plist b/MySwiftUI/MySwiftUI.xcodeproj/xcuserdata/jihee.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..72faa81 --- /dev/null +++ b/MySwiftUI/MySwiftUI.xcodeproj/xcuserdata/jihee.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + MySwiftUI.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/MySwiftUI/MySwiftUI/.DS_Store b/MySwiftUI/MySwiftUI/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ca2a2ddd150ee9b0165a72962b772276251049b8 GIT binary patch literal 6148 zcmeHKI|>3p3{CuiU}I@HSFo@jL{H!aEEEexK~USRJeNoFi+`% zrvHB>aYY5Fz+Wk#z4>xJ!zX2JZGD{8+5%s}E$0q5!`vwtyc`3)9AjbSca;(5S$-6?g#i^c0c+ literal 0 HcmV?d00001 diff --git a/MySwiftUI/MySwiftUI/5week/MyLabel.swift b/MySwiftUI/MySwiftUI/5week/MyLabel.swift new file mode 100644 index 0000000..999921e --- /dev/null +++ b/MySwiftUI/MySwiftUI/5week/MyLabel.swift @@ -0,0 +1,33 @@ +// +// MyLabel.swift +// MySwiftUI +// +// Created by 이지희 on 2022/12/02. +// + +import SwiftUI + +struct MyLabel: View { + var body: some View { + VStack{ + Text("1. Text + Image") + .foregroundColor(.orange) + .padding() + HStack{ + Text(Image(systemName: "hand.raised")) + Text("Hello") + } + Divider() + Text("2. Label") + .foregroundColor(.orange) + .padding() + Label("Hello", systemImage: "hand.raised") + } + } +} + +struct MyLabel_Previews: PreviewProvider { + static var previews: some View { + MyLabel() + } +} diff --git a/MySwiftUI/MySwiftUI/5week/MyNavigationStack.swift b/MySwiftUI/MySwiftUI/5week/MyNavigationStack.swift new file mode 100644 index 0000000..2004a3d --- /dev/null +++ b/MySwiftUI/MySwiftUI/5week/MyNavigationStack.swift @@ -0,0 +1,32 @@ +// +// MyNavigationStack.swift +// MySwiftUI +// +// Created by 이지희 on 2022/12/02. +// + +import SwiftUI + +struct MyNavigationStack: View { + var myName: String = "JH" + + var body: some View { + NavigationStack { + NavigationLink(value: myName) { + Text("click") + }.navigationDestination(for: String.self) { value in + ZStack{ + Color(.yellow) + Text("Hello \(value)") + } + } + } + } +} + + +struct MyNavigationStack_Previews: PreviewProvider { + static var previews: some View { + MyNavigationStack() + } +} diff --git a/MySwiftUI/MySwiftUI/5week/MyNavigationView.swift b/MySwiftUI/MySwiftUI/5week/MyNavigationView.swift new file mode 100644 index 0000000..e1cd138 --- /dev/null +++ b/MySwiftUI/MySwiftUI/5week/MyNavigationView.swift @@ -0,0 +1,48 @@ +// +// MyNavigationView.swift +// MySwiftUI +// +// Created by 이지희 on 2022/12/02. +// + +import SwiftUI + +struct MyNavigationView: View { + var pinkView: some View{ + ZStack{ + Color(.systemPink) + Text("pink") + .foregroundColor(.white) + .font(.title) + } + } + + var blueView: some View{ + ZStack{ + Color(.blue) + Text("blue") + .foregroundColor(.white) + .font(.title) + } + } + + var body: some View { + NavigationView { + VStack{ + NavigationLink(destination: pinkView) { + Text("pinkView로 이동") + } + .padding() + NavigationLink(destination: blueView) { + Text("blueView로 이동") + } + }.navigationTitle("Main") + } + } +} + +struct MyNavigationView_Previews: PreviewProvider { + static var previews: some View { + MyNavigationView() + } +} diff --git a/MySwiftUI/MySwiftUI/5week/MyOnAppear.swift b/MySwiftUI/MySwiftUI/5week/MyOnAppear.swift new file mode 100644 index 0000000..0e5d21c --- /dev/null +++ b/MySwiftUI/MySwiftUI/5week/MyOnAppear.swift @@ -0,0 +1,36 @@ +// +// MyOnAppear.swift +// MySwiftUI +// +// Created by 이지희 on 2022/12/02. +// + +import SwiftUI + +struct MyOnAppear: View { + @State var isPresented: Bool = false + + var body: some View { + VStack{ + Text("Hello") + .onAppear{print("text appear")} + .onDisappear{print("text disappear")} + .sheet(isPresented: $isPresented) { + Color(.yellow) + .onAppear{print("color appear")} + .onDisappear{print("color disappear")} + } + Button { + isPresented.toggle() + } label: { + Text("click!") + } + } + } +} + +struct MyOnAppear_Previews: PreviewProvider { + static var previews: some View { + MyOnAppear() + } +} diff --git a/MySwiftUI/MySwiftUI/5week/MyProgressView.swift b/MySwiftUI/MySwiftUI/5week/MyProgressView.swift new file mode 100644 index 0000000..6495c99 --- /dev/null +++ b/MySwiftUI/MySwiftUI/5week/MyProgressView.swift @@ -0,0 +1,42 @@ +// +// MyProgressView.swift +// MySwiftUI +// +// Created by 이지희 on 2022/12/02. +// + +import SwiftUI + +struct MyProgressView: View { + @State var progress: Double = 0 + + var body: some View { + VStack{ + Text("1. 로딩 화면") + ProgressView() + Spacer() + + Text("2. 로딩 화면 + 텍스트") + ProgressView { + Text("잠시만 기다려주세요") + } + Spacer() + + Text("3. 로딩 진행도") + ProgressView("Loaing...", value: progress, total: 100) + Button { + progress += 5 + } label: { + Text("Go") + } + } + .padding(40) + .padding([.top, .bottom], 80) + } +} + +struct MyProgressView_Previews: PreviewProvider { + static var previews: some View { + MyProgressView() + } +} diff --git a/MySwiftUI/MySwiftUI/5week/MySecondProject.swift b/MySwiftUI/MySwiftUI/5week/MySecondProject.swift new file mode 100644 index 0000000..d2c0f75 --- /dev/null +++ b/MySwiftUI/MySwiftUI/5week/MySecondProject.swift @@ -0,0 +1,73 @@ +// +// MySecondProject.swift +// MySwiftUI +// +// Created by 이지희 on 2022/12/02. +// + +import SwiftUI + +struct MySecondProject: View { + @State var userId: String = "" + @State var userPassword: String = "" + @State var hasLoggedIn = false + @State var showPassword: Bool = false + @State var showAlert: Bool = false + + + var body: some View { + VStack{ + VStack(alignment: .leading){ + Label("ID", systemImage: "person.fill") + TextField("아이디를 입력해주세요", text: $userId) + .autocapitalization(.none) + } + .padding() + VStack(alignment: .leading){ + HStack{ + Label("Password", systemImage: "lock.fill") + Toggle(isOn: $showPassword){ + //label 적는 곳 + } + } + + if showPassword{ + TextField("비밀번호를 입력해주세요", text: $userPassword) + } else { + SecureField("비밀번호를 입력해주세요", text: $userPassword) + } + + } + .padding() + + Button { + if userPassword == "1234" && userId == "JH" { + hasLoggedIn = true + } else{ + hasLoggedIn = false + showAlert = true + } + } label: { + Text("Sign In") + .padding(7) + .padding([.leading, .trailing], 20) + .background(.black) + .cornerRadius(10) + .foregroundColor(.white) + } + } + .padding(30) + .sheet(isPresented: $hasLoggedIn) { + Text("Hello, \(userId)") + } + .alert(isPresented: $showAlert) { + Alert(title: Text("로그인 오류"), message: Text("아이디와 비밀번호를 확인해주세요")) + } + } +} + +struct MySecondProject_Previews: PreviewProvider { + static var previews: some View { + MySecondProject() + } +} diff --git a/MySwiftUI/MySwiftUI/5week/MySecureField.swift b/MySwiftUI/MySwiftUI/5week/MySecureField.swift new file mode 100644 index 0000000..bdc3411 --- /dev/null +++ b/MySwiftUI/MySwiftUI/5week/MySecureField.swift @@ -0,0 +1,40 @@ +// +// MySecureField.swift +// MySwiftUI +// +// Created by 이지희 on 2022/12/02. +// + +import SwiftUI + +struct MySecureField: View { + @State var myPassword: String = "" + @State var isSecureMode: Bool = true + + var body: some View { + VStack(alignment: .leading){ + Text("Password") + + HStack{ + if isSecureMode{ + SecureField("8자리 이상 입력", text: $myPassword) + } else { + TextField("8자리 이상 입력", text: $myPassword) + } + Button { + isSecureMode.toggle() + } label: { + Image(systemName: "eye") + } + } + } + .frame(width: 260) + .padding() + } +} + +struct MySecureField_Previews: PreviewProvider { + static var previews: some View { + MySecureField() + } +} diff --git a/MySwiftUI/MySwiftUI/Assets.xcassets/AccentColor.colorset/Contents.json b/MySwiftUI/MySwiftUI/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/MySwiftUI/MySwiftUI/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MySwiftUI/MySwiftUI/Assets.xcassets/AppIcon.appiconset/Contents.json b/MySwiftUI/MySwiftUI/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/MySwiftUI/MySwiftUI/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MySwiftUI/MySwiftUI/Assets.xcassets/Contents.json b/MySwiftUI/MySwiftUI/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/MySwiftUI/MySwiftUI/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MySwiftUI/MySwiftUI/ContentView.swift b/MySwiftUI/MySwiftUI/ContentView.swift new file mode 100644 index 0000000..35d904e --- /dev/null +++ b/MySwiftUI/MySwiftUI/ContentView.swift @@ -0,0 +1,26 @@ +// +// ContentView.swift +// MySwiftUI +// +// Created by 이지희 on 2022/11/29. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundColor(.accentColor) + Text("Hello, world!") + } + .padding() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/MySwiftUI/MySwiftUI/MySwiftUIApp.swift b/MySwiftUI/MySwiftUI/MySwiftUIApp.swift new file mode 100644 index 0000000..c713346 --- /dev/null +++ b/MySwiftUI/MySwiftUI/MySwiftUIApp.swift @@ -0,0 +1,17 @@ +// +// MySwiftUIApp.swift +// MySwiftUI +// +// Created by 이지희 on 2022/11/29. +// + +import SwiftUI + +@main +struct MySwiftUIApp: App { + var body: some Scene { + WindowGroup { + MySecondProject() + } + } +} diff --git a/MySwiftUI/MySwiftUI/Preview Content/Preview Assets.xcassets/Contents.json b/MySwiftUI/MySwiftUI/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/MySwiftUI/MySwiftUI/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MySwiftUI/MySwiftUI/gitignore.md b/MySwiftUI/MySwiftUI/gitignore.md new file mode 100644 index 0000000..ac0cd21 --- /dev/null +++ b/MySwiftUI/MySwiftUI/gitignore.md @@ -0,0 +1,21 @@ +# Created by https://www.toptal.com/developers/gitignore/api/xcode +# Edit at https://www.toptal.com/developers/gitignore?templates=xcode + +### Xcode ### +## User settings +xcuserdata/ + +## Xcode 8 and earlier +*.xcscmblueprint +*.xccheckout + +### Xcode Patch ### +*.xcodeproj/* +!*.xcodeproj/project.pbxproj +!*.xcodeproj/xcshareddata/ +!*.xcodeproj/project.xcworkspace/ +!*.xcworkspace/contents.xcworkspacedata +/*.gcno +**/xcshareddata/WorkspaceSettings.xcsettings + +# End of https://www.toptal.com/developers/gitignore/api/xcode diff --git a/MySwiftUI/MySwiftUITests/MySwiftUITests.swift b/MySwiftUI/MySwiftUITests/MySwiftUITests.swift new file mode 100644 index 0000000..cce7867 --- /dev/null +++ b/MySwiftUI/MySwiftUITests/MySwiftUITests.swift @@ -0,0 +1,36 @@ +// +// MySwiftUITests.swift +// MySwiftUITests +// +// Created by 이지희 on 2022/11/29. +// + +import XCTest +@testable import MySwiftUI + +final class MySwiftUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/MySwiftUI/MySwiftUIUITests/MySwiftUIUITests.swift b/MySwiftUI/MySwiftUIUITests/MySwiftUIUITests.swift new file mode 100644 index 0000000..1dcdfbc --- /dev/null +++ b/MySwiftUI/MySwiftUIUITests/MySwiftUIUITests.swift @@ -0,0 +1,41 @@ +// +// MySwiftUIUITests.swift +// MySwiftUIUITests +// +// Created by 이지희 on 2022/11/29. +// + +import XCTest + +final class MySwiftUIUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/MySwiftUI/MySwiftUIUITests/MySwiftUIUITestsLaunchTests.swift b/MySwiftUI/MySwiftUIUITests/MySwiftUIUITestsLaunchTests.swift new file mode 100644 index 0000000..d677a76 --- /dev/null +++ b/MySwiftUI/MySwiftUIUITests/MySwiftUIUITestsLaunchTests.swift @@ -0,0 +1,32 @@ +// +// MySwiftUIUITestsLaunchTests.swift +// MySwiftUIUITests +// +// Created by 이지희 on 2022/11/29. +// + +import XCTest + +final class MySwiftUIUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} diff --git a/MyUIKit/MyUIKit.xcodeproj/project.pbxproj b/MyUIKit/MyUIKit.xcodeproj/project.pbxproj new file mode 100644 index 0000000..ae9e04e --- /dev/null +++ b/MyUIKit/MyUIKit.xcodeproj/project.pbxproj @@ -0,0 +1,619 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 56DE2941296AB932005F0587 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56DE2940296AB932005F0587 /* AppDelegate.swift */; }; + 56DE2943296AB932005F0587 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56DE2942296AB932005F0587 /* SceneDelegate.swift */; }; + 56DE2945296AB932005F0587 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56DE2944296AB932005F0587 /* ViewController.swift */; }; + 56DE2948296AB932005F0587 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 56DE2946296AB932005F0587 /* Main.storyboard */; }; + 56DE294A296AB934005F0587 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 56DE2949296AB934005F0587 /* Assets.xcassets */; }; + 56DE294D296AB934005F0587 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 56DE294B296AB934005F0587 /* LaunchScreen.storyboard */; }; + 56DE2958296AB934005F0587 /* MyUIKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56DE2957296AB934005F0587 /* MyUIKitTests.swift */; }; + 56DE2962296AB934005F0587 /* MyUIKitUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56DE2961296AB934005F0587 /* MyUIKitUITests.swift */; }; + 56DE2964296AB934005F0587 /* MyUIKitUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56DE2963296AB934005F0587 /* MyUIKitUITestsLaunchTests.swift */; }; + 56F2C1A1296B18D30063247C /* MyTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 56F2C1A0296B18D30063247C /* MyTableViewCell.xib */; }; + 56F2C1A3296B1F8F0063247C /* MyTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56F2C1A2296B1F8F0063247C /* MyTableViewCell.swift */; }; + 56F2C1A5296B3BEB0063247C /* CircleButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56F2C1A4296B3BEB0063247C /* CircleButton.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 56DE2954296AB934005F0587 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 56DE2935296AB932005F0587 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 56DE293C296AB932005F0587; + remoteInfo = MyUIKit; + }; + 56DE295E296AB934005F0587 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 56DE2935296AB932005F0587 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 56DE293C296AB932005F0587; + remoteInfo = MyUIKit; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 56DE293D296AB932005F0587 /* MyUIKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MyUIKit.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 56DE2940296AB932005F0587 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 56DE2942296AB932005F0587 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 56DE2944296AB932005F0587 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 56DE2947296AB932005F0587 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 56DE2949296AB934005F0587 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 56DE294C296AB934005F0587 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 56DE294E296AB934005F0587 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 56DE2953296AB934005F0587 /* MyUIKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyUIKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 56DE2957296AB934005F0587 /* MyUIKitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyUIKitTests.swift; sourceTree = ""; }; + 56DE295D296AB934005F0587 /* MyUIKitUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyUIKitUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 56DE2961296AB934005F0587 /* MyUIKitUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyUIKitUITests.swift; sourceTree = ""; }; + 56DE2963296AB934005F0587 /* MyUIKitUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyUIKitUITestsLaunchTests.swift; sourceTree = ""; }; + 56F2C1A0296B18D30063247C /* MyTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyTableViewCell.xib; sourceTree = ""; }; + 56F2C1A2296B1F8F0063247C /* MyTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MyTableViewCell.swift; path = ../../../../Documents/MyTableViewCell.swift; sourceTree = ""; }; + 56F2C1A4296B3BEB0063247C /* CircleButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircleButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 56DE293A296AB932005F0587 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 56DE2950296AB934005F0587 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 56DE295A296AB934005F0587 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 56DE2934296AB932005F0587 = { + isa = PBXGroup; + children = ( + 56DE293F296AB932005F0587 /* MyUIKit */, + 56DE2956296AB934005F0587 /* MyUIKitTests */, + 56DE2960296AB934005F0587 /* MyUIKitUITests */, + 56DE293E296AB932005F0587 /* Products */, + ); + sourceTree = ""; + }; + 56DE293E296AB932005F0587 /* Products */ = { + isa = PBXGroup; + children = ( + 56DE293D296AB932005F0587 /* MyUIKit.app */, + 56DE2953296AB934005F0587 /* MyUIKitTests.xctest */, + 56DE295D296AB934005F0587 /* MyUIKitUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 56DE293F296AB932005F0587 /* MyUIKit */ = { + isa = PBXGroup; + children = ( + 56DE2940296AB932005F0587 /* AppDelegate.swift */, + 56DE2942296AB932005F0587 /* SceneDelegate.swift */, + 56DE2944296AB932005F0587 /* ViewController.swift */, + 56DE2946296AB932005F0587 /* Main.storyboard */, + 56F2C1A4296B3BEB0063247C /* CircleButton.swift */, + 56F2C1A2296B1F8F0063247C /* MyTableViewCell.swift */, + 56F2C1A0296B18D30063247C /* MyTableViewCell.xib */, + 56DE2949296AB934005F0587 /* Assets.xcassets */, + 56DE294B296AB934005F0587 /* LaunchScreen.storyboard */, + 56DE294E296AB934005F0587 /* Info.plist */, + ); + path = MyUIKit; + sourceTree = ""; + }; + 56DE2956296AB934005F0587 /* MyUIKitTests */ = { + isa = PBXGroup; + children = ( + 56DE2957296AB934005F0587 /* MyUIKitTests.swift */, + ); + path = MyUIKitTests; + sourceTree = ""; + }; + 56DE2960296AB934005F0587 /* MyUIKitUITests */ = { + isa = PBXGroup; + children = ( + 56DE2961296AB934005F0587 /* MyUIKitUITests.swift */, + 56DE2963296AB934005F0587 /* MyUIKitUITestsLaunchTests.swift */, + ); + path = MyUIKitUITests; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 56DE293C296AB932005F0587 /* MyUIKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = 56DE2967296AB934005F0587 /* Build configuration list for PBXNativeTarget "MyUIKit" */; + buildPhases = ( + 56DE2939296AB932005F0587 /* Sources */, + 56DE293A296AB932005F0587 /* Frameworks */, + 56DE293B296AB932005F0587 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MyUIKit; + productName = MyUIKit; + productReference = 56DE293D296AB932005F0587 /* MyUIKit.app */; + productType = "com.apple.product-type.application"; + }; + 56DE2952296AB934005F0587 /* MyUIKitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 56DE296A296AB934005F0587 /* Build configuration list for PBXNativeTarget "MyUIKitTests" */; + buildPhases = ( + 56DE294F296AB934005F0587 /* Sources */, + 56DE2950296AB934005F0587 /* Frameworks */, + 56DE2951296AB934005F0587 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 56DE2955296AB934005F0587 /* PBXTargetDependency */, + ); + name = MyUIKitTests; + productName = MyUIKitTests; + productReference = 56DE2953296AB934005F0587 /* MyUIKitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 56DE295C296AB934005F0587 /* MyUIKitUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 56DE296D296AB934005F0587 /* Build configuration list for PBXNativeTarget "MyUIKitUITests" */; + buildPhases = ( + 56DE2959296AB934005F0587 /* Sources */, + 56DE295A296AB934005F0587 /* Frameworks */, + 56DE295B296AB934005F0587 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 56DE295F296AB934005F0587 /* PBXTargetDependency */, + ); + name = MyUIKitUITests; + productName = MyUIKitUITests; + productReference = 56DE295D296AB934005F0587 /* MyUIKitUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 56DE2935296AB932005F0587 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1420; + LastUpgradeCheck = 1420; + TargetAttributes = { + 56DE293C296AB932005F0587 = { + CreatedOnToolsVersion = 14.2; + }; + 56DE2952296AB934005F0587 = { + CreatedOnToolsVersion = 14.2; + TestTargetID = 56DE293C296AB932005F0587; + }; + 56DE295C296AB934005F0587 = { + CreatedOnToolsVersion = 14.2; + TestTargetID = 56DE293C296AB932005F0587; + }; + }; + }; + buildConfigurationList = 56DE2938296AB932005F0587 /* Build configuration list for PBXProject "MyUIKit" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 56DE2934296AB932005F0587; + productRefGroup = 56DE293E296AB932005F0587 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 56DE293C296AB932005F0587 /* MyUIKit */, + 56DE2952296AB934005F0587 /* MyUIKitTests */, + 56DE295C296AB934005F0587 /* MyUIKitUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 56DE293B296AB932005F0587 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 56DE294D296AB934005F0587 /* LaunchScreen.storyboard in Resources */, + 56F2C1A1296B18D30063247C /* MyTableViewCell.xib in Resources */, + 56DE294A296AB934005F0587 /* Assets.xcassets in Resources */, + 56DE2948296AB932005F0587 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 56DE2951296AB934005F0587 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 56DE295B296AB934005F0587 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 56DE2939296AB932005F0587 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 56F2C1A5296B3BEB0063247C /* CircleButton.swift in Sources */, + 56DE2945296AB932005F0587 /* ViewController.swift in Sources */, + 56F2C1A3296B1F8F0063247C /* MyTableViewCell.swift in Sources */, + 56DE2941296AB932005F0587 /* AppDelegate.swift in Sources */, + 56DE2943296AB932005F0587 /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 56DE294F296AB934005F0587 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 56DE2958296AB934005F0587 /* MyUIKitTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 56DE2959296AB934005F0587 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 56DE2962296AB934005F0587 /* MyUIKitUITests.swift in Sources */, + 56DE2964296AB934005F0587 /* MyUIKitUITestsLaunchTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 56DE2955296AB934005F0587 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 56DE293C296AB932005F0587 /* MyUIKit */; + targetProxy = 56DE2954296AB934005F0587 /* PBXContainerItemProxy */; + }; + 56DE295F296AB934005F0587 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 56DE293C296AB932005F0587 /* MyUIKit */; + targetProxy = 56DE295E296AB934005F0587 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 56DE2946296AB932005F0587 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 56DE2947296AB932005F0587 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 56DE294B296AB934005F0587 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 56DE294C296AB934005F0587 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 56DE2965296AB934005F0587 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 56DE2966296AB934005F0587 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 56DE2968296AB934005F0587 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = LVBHWHTSNF; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = MyUIKit/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.lee.MyUIKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 56DE2969296AB934005F0587 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = LVBHWHTSNF; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = MyUIKit/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.lee.MyUIKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 56DE296B296AB934005F0587 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = LVBHWHTSNF; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.lee.MyUIKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MyUIKit.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MyUIKit"; + }; + name = Debug; + }; + 56DE296C296AB934005F0587 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = LVBHWHTSNF; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.lee.MyUIKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MyUIKit.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MyUIKit"; + }; + name = Release; + }; + 56DE296E296AB934005F0587 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = LVBHWHTSNF; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.lee.MyUIKitUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = MyUIKit; + }; + name = Debug; + }; + 56DE296F296AB934005F0587 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = LVBHWHTSNF; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.lee.MyUIKitUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = MyUIKit; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 56DE2938296AB932005F0587 /* Build configuration list for PBXProject "MyUIKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 56DE2965296AB934005F0587 /* Debug */, + 56DE2966296AB934005F0587 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 56DE2967296AB934005F0587 /* Build configuration list for PBXNativeTarget "MyUIKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 56DE2968296AB934005F0587 /* Debug */, + 56DE2969296AB934005F0587 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 56DE296A296AB934005F0587 /* Build configuration list for PBXNativeTarget "MyUIKitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 56DE296B296AB934005F0587 /* Debug */, + 56DE296C296AB934005F0587 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 56DE296D296AB934005F0587 /* Build configuration list for PBXNativeTarget "MyUIKitUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 56DE296E296AB934005F0587 /* Debug */, + 56DE296F296AB934005F0587 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 56DE2935296AB932005F0587 /* Project object */; +} diff --git a/MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate b/MyUIKit/MyUIKit.xcodeproj/project.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..c56de47ee85126c8785c45b871cca34a336912af GIT binary patch literal 39049 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 B(u4p2 literal 0 HcmV?d00001 diff --git a/MyUIKit/MyUIKit.xcodeproj/xcuserdata/jihee.xcuserdatad/xcschemes/xcschememanagement.plist b/MyUIKit/MyUIKit.xcodeproj/xcuserdata/jihee.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..5a29553 --- /dev/null +++ b/MyUIKit/MyUIKit.xcodeproj/xcuserdata/jihee.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + MyUIKit.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/MyUIKit/MyUIKit/AppDelegate.swift b/MyUIKit/MyUIKit/AppDelegate.swift new file mode 100644 index 0000000..d4247b0 --- /dev/null +++ b/MyUIKit/MyUIKit/AppDelegate.swift @@ -0,0 +1,36 @@ +// +// AppDelegate.swift +// MyUIKit +// +// Created by 이지희 on 2023/01/08. +// + +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/MyUIKit/MyUIKit/Assets.xcassets/AccentColor.colorset/Contents.json b/MyUIKit/MyUIKit/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/MyUIKit/MyUIKit/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MyUIKit/MyUIKit/Assets.xcassets/AppIcon.appiconset/Contents.json b/MyUIKit/MyUIKit/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/MyUIKit/MyUIKit/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MyUIKit/MyUIKit/Assets.xcassets/Contents.json b/MyUIKit/MyUIKit/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/MyUIKit/MyUIKit/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MyUIKit/MyUIKit/Base.lproj/LaunchScreen.storyboard b/MyUIKit/MyUIKit/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/MyUIKit/MyUIKit/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MyUIKit/MyUIKit/Base.lproj/Main.storyboard b/MyUIKit/MyUIKit/Base.lproj/Main.storyboard new file mode 100644 index 0000000..9076422 --- /dev/null +++ b/MyUIKit/MyUIKit/Base.lproj/Main.storyboard @@ -0,0 +1,599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MyUIKit/MyUIKit/CircleButton.swift b/MyUIKit/MyUIKit/CircleButton.swift new file mode 100644 index 0000000..3d07c3a --- /dev/null +++ b/MyUIKit/MyUIKit/CircleButton.swift @@ -0,0 +1,20 @@ +// +// CircleButton.swift +// MyUIKit +// +// Created by 이지희 on 2023/01/09. +// + +import Foundation +import UIKit + +@IBDesignable +class CircleButton: UIButton{ + + @IBInspectable var cornerRadius: CGFloat = 0{ + didSet{ + layer.cornerRadius = cornerRadius + layer.masksToBounds = cornerRadius > 0 + } + } +} diff --git a/MyUIKit/MyUIKit/Info.plist b/MyUIKit/MyUIKit/Info.plist new file mode 100644 index 0000000..dd3c9af --- /dev/null +++ b/MyUIKit/MyUIKit/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/MyUIKit/MyUIKit/MyTableViewCell.swift b/MyUIKit/MyUIKit/MyTableViewCell.swift new file mode 100644 index 0000000..49b25e6 --- /dev/null +++ b/MyUIKit/MyUIKit/MyTableViewCell.swift @@ -0,0 +1,29 @@ +// +// MyTableViewCell.swift +// MyUIKit +// +// Created by 이지희 on 2023/01/09. +// + +import UIKit + +class MyTableViewCell: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/MyUIKit/MyUIKit/MyTableViewCell.xib b/MyUIKit/MyUIKit/MyTableViewCell.xib new file mode 100644 index 0000000..fd7989b --- /dev/null +++ b/MyUIKit/MyUIKit/MyTableViewCell.xib @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MyUIKit/MyUIKit/SceneDelegate.swift b/MyUIKit/MyUIKit/SceneDelegate.swift new file mode 100644 index 0000000..e8ef097 --- /dev/null +++ b/MyUIKit/MyUIKit/SceneDelegate.swift @@ -0,0 +1,52 @@ +// +// SceneDelegate.swift +// MyUIKit +// +// Created by 이지희 on 2023/01/08. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/MyUIKit/MyUIKit/ViewController.swift b/MyUIKit/MyUIKit/ViewController.swift new file mode 100644 index 0000000..4cd6849 --- /dev/null +++ b/MyUIKit/MyUIKit/ViewController.swift @@ -0,0 +1,156 @@ +// +// ViewController.swift +// MyUIKit +// +// Created by 이지희 on 2023/01/08. +// + +import UIKit +import Combine + +class ViewController: UIViewController { + + +// @IBOutlet weak var myTableView: UITableView! +// +// @IBOutlet var prependButton: UIBarButtonItem! +// @IBOutlet var resetButton: UIBarButtonItem! +// @IBOutlet var appendButton: UIBarButtonItem! + + var viewModel: ViewModel = ViewModel() + + var disposalbleBag = Set() + + var tempArray : [String] = [] +// var tempArray : [String] = [String]() + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + + // 쎌 리소스 파일 가져오기 + let myTableViewCellNib = UINib(nibName: String(describing: MyTableViewCell.self), bundle: nil) + + // 쏄에 리소스 등록 + self.myTableView.register(myTableViewCellNib, forCellReuseIdentifier: "myTableViewCellId") + + self.myTableView.rowHeight = UITableView.automaticDimension + self.myTableView.estimatedRowHeight = 120 + + // 아주 중요 + self.myTableView.delegate = self + self.myTableView.dataSource = self + + + // 뷰모델의 데이터 상태를 연동시킨다 + self.setBindings() + } + + + @IBAction func barButtonAction(_ sender: UIBarButtonItem) { + print(#function, #line, "") + switch sender { + case prependButton: + print("앞에 추가 버튼 클릭!") + self.viewModel.prependData() + case resetButton: + print("데이터 리셋 버튼 클릭!") + self.viewModel.resetData() + case appendButton: + print("뒤에 추가 버튼 클릭!") + self.viewModel.appendData() + default: break + } + } + +} // ViewController +//MARK: - 테이블뷰 관련 메소드 +extension ViewController { + +} + +//MARK: - 뷰모델 관련 +extension ViewController { + + /// 뷰모델의 데이터를 뷰컨의 리스트 데이터와 연동 + fileprivate func setBindings(){ + print("ViewController - setBindings()") + + // list 에 대한 바인딩 + self.viewModel.$tempArray.sink{ (updatedList : [String]) in + print("ViewController - updatedList.count: \(updatedList.count)") + self.tempArray = updatedList +// self.myTableView.reloadData() + }.store(in: &disposalbleBag) + + // action에 대한 바인딩 + self.viewModel.dataUpdatedAction.sink{ (addingType : ViewModel.AddingType) in + print("ViewController - dataUpdatedAction: \(addingType)") + switch addingType{ +// case .append, .reset: +// self.myTableView.reloadData() + case .prepend: + self.myTableView.reloadDataAndKeepOffset() + default: + self.myTableView.reloadData() + } + }.store(in: &disposalbleBag) + + self.viewModel.arrayCount.sink { arrayCount in + print("ViewController - arrayCount: \(arrayCount)") + self.navigationItem.title = "배열갯수: \(arrayCount)" + }.store(in: &disposalbleBag) + + } + + + +} + +//MARK: - UITableViewDelegate 관련 메소드 +extension ViewController: UITableViewDelegate { + +} + +//MARK: - UITableViewDataSource 관련 메소드 +extension ViewController: UITableViewDataSource { + + // 테이블 뷰 쎌의 갯수 + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return self.tempArray.count + } + + // 각 쎌에 대한 설정 + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + + let cell = myTableView.dequeueReusableCell(withIdentifier: "myTableViewCellId", for: indexPath) as! MyTableViewCell + + cell.userContentLabel.text = tempArray[indexPath.row] + + return cell + + } +} + +extension UITableView { + func reloadDataAndKeepOffset() { + // 스크롤링 멈추기 + setContentOffset(contentOffset, animated: false) + + // 데이터 추가전 컨텐트 사이즈 + let beforeContentSize = contentSize + reloadData() + layoutIfNeeded() + + // 데이터 추가후 커텐트 사이즈 + let afterContentSize = contentSize + + // 데이터가 변경되고 리로드 되고 나서 컨텐트 옵셋 계산 + let calculatedNewOffset = CGPoint( + x: contentOffset.x + (afterContentSize.width - beforeContentSize.width), + y: contentOffset.y + (afterContentSize.height - beforeContentSize.height) + ) + + // 변경된 옵셋 설정 + setContentOffset(calculatedNewOffset, animated: false) + } +} diff --git a/MyUIKit/MyUIKitTests/MyUIKitTests.swift b/MyUIKit/MyUIKitTests/MyUIKitTests.swift new file mode 100644 index 0000000..4ddf09d --- /dev/null +++ b/MyUIKit/MyUIKitTests/MyUIKitTests.swift @@ -0,0 +1,36 @@ +// +// MyUIKitTests.swift +// MyUIKitTests +// +// Created by 이지희 on 2023/01/08. +// + +import XCTest +@testable import MyUIKit + +final class MyUIKitTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/MyUIKit/MyUIKitUITests/MyUIKitUITests.swift b/MyUIKit/MyUIKitUITests/MyUIKitUITests.swift new file mode 100644 index 0000000..4314f5e --- /dev/null +++ b/MyUIKit/MyUIKitUITests/MyUIKitUITests.swift @@ -0,0 +1,41 @@ +// +// MyUIKitUITests.swift +// MyUIKitUITests +// +// Created by 이지희 on 2023/01/08. +// + +import XCTest + +final class MyUIKitUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/MyUIKit/MyUIKitUITests/MyUIKitUITestsLaunchTests.swift b/MyUIKit/MyUIKitUITests/MyUIKitUITestsLaunchTests.swift new file mode 100644 index 0000000..8945cfd --- /dev/null +++ b/MyUIKit/MyUIKitUITests/MyUIKitUITestsLaunchTests.swift @@ -0,0 +1,32 @@ +// +// MyUIKitUITestsLaunchTests.swift +// MyUIKitUITests +// +// Created by 이지희 on 2023/01/08. +// + +import XCTest + +final class MyUIKitUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} diff --git a/swiftTour.playground/Contents.swift b/swiftTour.playground/Contents.swift new file mode 100644 index 0000000..9cf034e --- /dev/null +++ b/swiftTour.playground/Contents.swift @@ -0,0 +1,125 @@ +//let apples = 3 +//let appleSummary = "I have \(apples) apples." +//let appleString = """ +//"\(apples) apples!!!" +//""" + +//var fruits = ["strawberries", "limes", "tangerines"] +//fruits[1] = "grapes" +// +//var occupations = [ +// "Malcolm": "Captain", +// "Kaylee": "Mechanic", +//] +//occupations["Jayne"] = "Public Relations" +// +//print(fruits) +//print(occupations) +// +//var optionalName: String? = "lee" +//var greeting: String +//if let name = optionalName { +// greeting = "Hello, \(name)" +//} else { +// greeting = "Hello!" +//} +//print(greeting) + +//var optionalName: String? = "lee" +//var defaultName: String = "default" +//let greeting = "Hello, \(optionalName ?? defaultName)" +//if let name = optionalName {"Hello, \(name ?? defaultName)"} + +//var name: String? = "lee" +//var greeting = "Hello!" +//if let name {greeting = "Hello, \(name)"} + +//let vegetable = "red pepper" +//switch vegetable { +//case "celery": +// print("Add some raisins and make ants on a log.") +//case "cucumber", "watercress": +// print("That would make a good tea sandwich.") +//case let x where x.hasSuffix("pepper"): +// print("Is it a spicy \(x)?") +//default: +// print("Everything tastes good in soup.") +//} +// Prints "Is it a spicy red pepper?" + +//let interestingNumbers = [ +// "apple": [1,2,3,4,5], +// "banana": [6,7,8,9,10], +// "cherry": [11,12,13,14,15], +//] +//for (key, values) in interestingNumbers { +// for value in values { +// print(key, value) +// } +//} + +//var n = 2 +//while n < 2 { +// n *= 2 +//} +//print(n) //2 +// +// +//var m = 2 +//repeat { +// m *= 2 +//} while m < 2 +//print(m) //4 + +//func greet(_ person: String, WhatDay day: String) -> String { +// return "Hello \(person), today is \(day)." +//} +//greet("John", WhatDay: "Wednesday") + +//func calculateStatistics(scores: [Int]) -> (min: Int, max: Int, sum: Int) { +// var min = scores[0] +// var max = scores[0] +// var sum = 0 +// +// for score in scores { +// if score > max { +// max = score +// } else if score < min { +// min = score +// } +// sum += score +// } +// +// return (min, max, sum) +//} +//let statistics = calculateStatistics(scores: [5, 3, 100, 3, 9]) +//// (min 3, max 100, sum 120) + +//func returnFifteen() -> Int { +// var y = 10 +// func add() { y += 5 } +// add() //15 +// return y //15 +//} + +//func makeIncrementer() -> ((Int) -> Int) { +// func addOne(number: Int) -> Int { return 1 + number } +// return addOne +//} +//var increment = makeIncrementer() +//increment(7) //8 +// + +func hasAnyMatches(list: [Int], condition: (Int) -> Bool) -> Bool { + for item in list { + if condition(item) { + return true + } + } + return false +} +func lessThanTen(number: Int) -> Bool { + return number < 10 +} +var numbers = [20, 19, 7, 12] +hasAnyMatches(list: numbers, condition: lessThanTen) diff --git a/swiftTour.playground/contents.xcplayground b/swiftTour.playground/contents.xcplayground new file mode 100644 index 0000000..cf026f2 --- /dev/null +++ b/swiftTour.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/swiftTour.playground/playground.xcworkspace/contents.xcworkspacedata b/swiftTour.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ca3329e --- /dev/null +++ b/swiftTour.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/swiftTour.playground/playground.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate b/swiftTour.playground/playground.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..a851c0f2b5bd83e6581ea0b2e8be203211f8c9b7 GIT binary patch literal 13942 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 literal 38491 zcmeFa2YggT_cwlL?%uL@fove15FnwYY_h$Ox;4F!UVspi1p*<7DKtgz*n2@#EGP*G z3Kr}I6+2=V#EN1;MeJg4{Lj62H-#V%zvuTn&;Nbj&qK_by?5%F^F8OxnKLuRKpdOA95r*zC;>~HSr9!sHf zH#BNPN-7HdEB!6bK%&Es;^fdMOMRaE<-9~AsQB))qMMYD|R0^e|QmHgbPZ=m9 zWunZKoyw-FsA{T)s-^0vda8k%P0gX^QjOFpR2S7v^-#UkGHN-sf;yWzhdP%!k2;^a zn7WL*oVuF2hPs}*f$F0+QFl}KQ1?>zQTJ01P!CcMQO{7%QoE?Qm}7>Jargb(s2s`jYyJI*KTS5JogoAqKICLp&OVqEIxNh^C@xXgW$pX-JRE$b#(1 zfwEB!@}hiHgyy0~G!HeQ`KTGSAU|4w7NSL{6)i?fPzUNnr=iv8baVz15kcpn^U=lV z60{!Oh;Bj~P#@|?8_|>KDfBdY20e>*q36(U^gMb2y@*~yFQZq`tLQbf2kk|#qkZTN z^d@=>y^Y>M@1p(aJ@h_0fIdPWqtDS{^d0&h9YH^!AJI?f5A-KyFpD`n8OP%UJOxk1 z)9`dW11I7noQzYj4yWQYY{6EXj=k82b8#Nd#|5|&SK(@0j~C-5xD7AG?YIMX;#2TS zyb7O+&&5~c_4r1-3EzTm#arFK3 zqg10+V^kq3ttw14UKOi~S0$*DRVgZ+Dph4w*;F~ITvf4Zma1G;t*Tcws2WxCR4uBd zsvgxU)#<7;RHEu^)%mImRF|kORjpB7uj*IbqPk6WyXp?r-KzUl52$vi9#K86dP4Q2 z>RHwEs=carR3E4gst&2XRDGrTj!`oLqhUrdqnR;G2%}{}nX$|`CX$I`rZ7_(9h1sf z85@(%WH4@~kSS#K8Dj5)-7&KzdGV7_F&V!md6VSZ(PV}555 z%djD=mJMacveE1$b}}2!CbCJafwi+4Y!;i%df7U*o^4=fvvb(FY$H35ZDRfG0(LRG zgl%J&vZt`i*%j<*>}vLO_DuFhwx8X|Zeed>Z)0y~?_%#}?`I!iUt{;Md)e37ee4_T zo9tWc+w42+yX=1U1E!5x%znmx#eU8H#Qx0w#{SMR9LsSW&#AdkZY-C=>9|xbjni`m z&d8ZKGiTwf+)U2Nxwt$opPR*%a~0eiZZ6lz&EuN5R&FtOHg^tpE_WVxK6e3kA$JjX zF?R`fDYu5Zmb;GI!1Zyra$C7=+-=M+>_i>+UVa(BiYNS;{8{`3{Du4){z`r=e-(cdzk%=L`}vLh zHvTsLS$-G)9KV}?o_~RVk$;JQnSX_Um4BUom*3C7$A8Qp z;Q!?RQnPAKJyAVLJy{*EPEb!#PgPG-Pgl=SC#rR7vwEgFUF}wT)J5uI^+NR`b*p-@ zdWpJCy;R+TA{4sjpYxpx&guS-n&JxcUk8 zlj^6`Pph9%KdauQeonnx{gV21^*;5x>iz12>QB_4s=rl#r~Y1jME!&M5A~lyxDX*k z3Q?DMYuz_TewfyA?y^M5_SvE3oi+K zh1Z3B!dJrA!Z*UV!gs>=!V%#I;YZ;o;b-9&;aA}|;dkK=;ZNZ&jiAwJMrlTC#%Mw` zT1}`XQZrc-uSw8M(M;7$)95t@jalQ-cr`vvt|m{DuPM?LYi4O`G!2@$Ra4q~+uHV0 zqp2}e2&JXQQ4uvI6{$=7E4%CA{{byoJ*By=sk^(M3Z=%1Sfu-@Fe+SB5%iRp*r=Ui zb69*XkHw=i`-}#i+2Qf%oDQc!=l0osUW?wWH#qE#+OT|&x2B_ONq1*cv)|Lv+`H7@ z-V>}jhKi?>wov1#SZV?lM@^(AQIkbRWJONoMYSl1nk`fUH3fdB!K)cmqBu$%4ZmaH zl~#-q^^Mvnsr=UVmX76>P4it%UHRSBt=+Bj+x&9}UiiA2miimD(*_S=1!PK2b+<{q#x2Kop^xI5Z= zx;on0{9TROtf7Sse`oaQy*8iOt#iBGW}VsOb?cmVn_g!#SbR2%$!T^-1dJYRc1K6s z{2@K$8@1u5o~looq+gvf=~RQkY)hF0c~`IALs?*0t&~j~)D~!HX(+RKe$ZM%m{u_? zm-5eANe8rJd9|P!HF`{lHgxQ`u<(e;sOXsSu@mAZ#!a4_FlFkr=`#|OlIN6ED72Hw z4=t%|?P-Hy2nAXyFBFRUyMX1S5$S?~gJk*LV3SpsR8-~XdupYx#Z9g4jaqFY3`?Ms{5n-=<8hE!#2D5-Euj9UW34u4nltZefaH+3%o76?{dEa#F~ zu}rcQyL;fT{1*6VUC=5OtsQ7&QPawf-kxq4hk-}Xgw|F5Tz|X2tEmU9%tr0FV7UWa zknd4?mD|-RcLO?@-?CzEFkMOS()s=_0F_GQc(q8YMGAhHP%%VABCq8E0#RB@TXUy2 zT9=xpHyBN3OO7u$ucW-9vSId|dHw|p7b_qJAe!7(hsEM`>Rbk=US~FXO**^TWY;;p zW{<;ZwpraSTcb8cKS@7HViJi*;Ljmns-SB#?H$?(uvPu=vjnW$Nt40=a)aNUR44qT zf>pbmYNZxXJ&oG2Ls?rHfHGi7cpAj{AQ1LiZFWaSw#1NsBV}f$1L8;bXJ!Gi!^FtF zPM6*7@dChM1e?43{&r;~s;crm6+K;mR%pQRR~0ZSlFSfCNkp-E>~@pUsWW=4R-NAH z2J$$3Hl5vP(mPFhgUe{rHv~arwyfThUr<<7uSmRhV4PazPk%Rz+0gp?3yXm(OXYcl z)W*^>FNmX%|4E$|gE3{2!){#tdR4W(rgnN=JqVH@XDGcKT4O+b#SKp}k_n@SCm4bV zajZB_4E;N4@psRGB6AxDI96#_|J-7^(M|K~TEqw~3+0Bx5S@Ce$ze{J1Z0#1k>24* znPjnoAR1n@(r>dF1XO;(qSo0Z6`od*ogM8>T`T(+70=bLu?mHdkP}fm6Q@6u>=~0*)9j1PQIZ!gnLiI3nITf9au0&U%YtXgmI&{4} zYuNxZmQ832x)p6hx1&4JUFaTkAIwqSM1SG&FyAP{e!Kvmj?clD;C1*W+z+#b%`jWo zhHuAr;`?D{@F_lo592Rk7BG>XLZ{Jou=)$=3b6KP({t&0^m+7^^bPc5^a1*J`cL|( z3aO%12C%`ssywj2D^yjg8dV+G-50B_P~E8NqvU@WDgOtg4g06sE{5!(9MnuIoys^K zGlEbp?(LD3kfeV$Lb6OM3xuWgZICSkdOe3KpptH-oRo`lQy$7o`KVkfkIENAWrhe7 z!^H?OQj8L#Zv`S3QN>gVRZ5jnvq0ZgfOZ`(-Xh*AZWr$o?*W~Azoc!o0Pc!K9m`9a zmbETy0)41F8u;q$@`F|kg;Z5Nt!=G6t^V$s)|Q?{O0xX+?oOC~cXSOV8^|dqn_b=N zU+(eG?_Ic1lEUMP{YyK#R_1m!buJow8f?Qr4RfG6Z%b>STy@a6m`5#=jEg2}KGjUM zfLL2VEfizL31XZ$QJf@B7UQ>oBwGk$&_*q#+NlmPL5vp-qC<3xE5tLU?k3eXceMCZ zrA~MBb~XD0@~kR9b)em;?nO=Q3;m!VLM!}j&^v$2z&r3TvQTAU(I6{m^QH&JJRG9uI&;tVlKOomUOM3}F&t;gRbn?A0U#XuF%($MFkrtY4B zc1w>NwGmbA3yzyON-4wNQk6fvoM3w{pf02$Hf#_R6%1TLT{>JwP?u0yip4jq%8Cx) zG>{>|Vy>XBq$2vLHDXF1wN}(g#;Rl`9yiY(FqGC&*HYJkf`qY_kX0smmCF5{UH)z` z2xJW}rirPg+FOn_p+?uW_V|~|eE|jslcUGk3?tg@Zvi~|=XN(sMqpV-H{hV7eNK0P zJ@O$>_Xd;m>9yayzHjC4{k+hxRwo4IK)+^GLQZ>*{52uxOuhWa20nCrYGz?kRc%Ad z!p@aSS`-u_W0da$pQ{w|t*34Ti^sd7vrREuOM83TTHE~+#1w~@)Y-sLY@}|YHb}%h z$@God`Hhu5x$bI%)l*$LSO;*c(K`5bNR^cF|UNjFoQsV&qk)UDK3(I}ckvuF{mH&eF(`tJZq zuu!xC^6el6;w7ezKR!le%%Pn60f zAOkVn9i1RS{}%5`S_#o7D_8!Z;0RLlVQQx&8g@{RfTn#+oGGS@8Dgd+8lIq@ltn|9 znEf9R4JUwZu&FOlFG+BJQOxP1UKXAI5bk>b?yvtNxV!!haQ|xVrSF`7Lb#t5_0PaP zNQgJ7_o<}K)LYcs)H~F>)PCwc(Ia|ApO`D=iTRtU1Jnobn@D|3C5Q!LA^gUO%R#dP z5+wNuAZ%XZ?pP`bKFN7r-PG0#JR1qGWHzttYHIIp1(7JD6<99P`j+~R`kp#M{XqRF7Kz1TiC8L@iL=D=E!5A{FVwHpZ_q>d5i7(>u}WM7eUyHn zkJ7Y$pt({zUH%0fU9vn>j0>nYAj=aVsk^tU3p!NP)Z5;?s6ru0xqkt)u)SGPesPdW z&N*E1gH)A8d|)ahSu-H%nqbb_5_oQajCoDV{Q2#m8JgPKRtDd@%c=&N;$GC+)&i9U znlv?7nX?UStd^A$(b|0-T_yhIWlg=Hasug$e^>UPX(iEjXyIC_&e&vWwl6T4^m`iBap4Bi+>%=)?qu8_;O+u5QU-2jbO{pKOuS#x- zST8n+vm5j)3}(v$y~Q+NuT{zV2+crXPs9S12bHKYAC>c!HMMs2qa;a{o-j?Y_7v)8 zG)0^X+&a5zx!=FU6ntTjU(AzU0Ch52BsQAVt+3%F;M+-Z>MW&ARwTK4oLyZ_EBld^ z${KgZQRUxWG!wd*jxtat3TtQyxZkSEi|Tq>mjcw9mUfCQqF3;Gn5@A;4l>S0Vm!bYgM&2OqU%R_QiX#u;UA<|>L@^kFd+_DA~Lx*q5_HF3X>J1 zId^J9PzfqUWoQ;kK^3SHRiSEB16)=Ilhg(@TWl2G?`Aj;OS#R>%^-izmyc#pt+YqRN` zPH-I=tsbArtGDQ_E(0X9TYMIi+h^4|J$i6bdK^Zb-D0=s><+Kn>$TW@9*-*s6Z?F< zUjEzKq_>!j`g)m1CrzC?Nh--_cX;ehvr%VogQwH%Gl0KXZ;(3Z)0a0eO*=+E74MwXGk~!@Li`!sz=^S>uU1#>%y*h{2X4N@- zUYEsbhZY-@w%GJWgIN!P4W`wo4K0N!MPL9c{5>1tNjsHQ1wI}>Xrr(}cdF40P8uj< z_3D5MLZ_f*U=pD&)Qx&jueefNC7vpt1||_&fmX^U(Q5JZ|07HybS63*Od@oact#&O zM-=~&NrWz-u0Ktzfodu{L1ol|Bj3Lw zueH6WPf*06mf8b;X3g=YSAI#UN`{K8`K0;O4^RBL^%*EFRMRgAd%!b&^7*!%4*4RZ z`-LclX)8fEc5BfdaBH7rA>X|IR^$&*$i&J0!lcOca}l<9{fbN2eET0x(ZBFbQ!uFU4hm>?zQ4s z;@RRk;<@5^;`y7Y1au8Jof0I!9T=n+!0#w=v$#bv+a`gkg(=Q}<>rztiJ&h+_Ck!4 zSwXU|23+`Ho=OWRLo>>=CD%$hhh*RleFw%U7z{&v9CE7oV^R&VTxFh<6NNRyB)_Q> zEU+Q9EBas)(%h+yMK`0(;DWpboRC|=4S5?lBJTiK2k94!6Yy zOBaKw4OWK}6p}+{GTT9~IYAXVomRKb<}>IGW~bBTHFyS7J1usD+XRb|R;wKrLR^wc zGr3$kkIQa{YV{7Ubx7Ghhuh|LnQS_nRS&e0)U4fRutIlWEyZFqxNM#wsm%tX+aT2s zq=VE}Gql9zaYJgi(POe%%zEDt+E}axlh13j>s&xe9kksGt1%9j&f+rw+1wVNS??HZ zx7A~D`%E^k&guZoYW6xndz(x^STm?^gWKS8N}4e^rWTVPd@Kf=PH*#qMm9h~m)UF3 znP6$dV9`T2?Esqu;OEw!l{00DFtfXPk$YDQ$u%+Ml;wA zCa**}pUb3kxUEi!S?s`PX0OpZq<2;rQkMg`0$2ljX93o-yKL~`wi>)1y$OsQ%V61h zivvn^I(1f?$q8A&0B`~y>D*SA%?^*idWWU2U@yG}x5p0542G2(dTDptfy558&ZRea zJa(7EW3dnErPE=x**sty>Fr>Cn4K=*4~NC8Gw7WLo5kiZ*nPgivRy`t$p>8m?ARqc z$p)#dMwiYF{NgkF91^4kQ`;jP49c~xcd2Xx6Xm$F)fEi5f1S8J{ z9HKM0q+XgFdMF!gD6iM@&fPKtUk$N15VY0A?XF{&JGaq0P_r% z?K3+pE-<8YF1H1GX|Ni=qB2@^UaQ+?H(5MJFr)@kyY(KxpVtOs32bKu0~I*c=F*w< zW&XjNNJ7dS0D+WbAK18W<>(o&s0uuM6>w?}f|%@~-rO8)$jX=nAe zHZRHZw{;G6vZ5rVkW&tS50~;lomZ)*CP(f)x50{VGxD7xC^saGc1_lJSy% zp8KI^ZV=v(C_y;wW}$Ki?MlQ4sRN_<*;MtqH+n+V!U&`yFLC+JC0 zKexDPMe9;nH4ZvYk`$MaI0uRww5w)I--1y)k_W1~QX*|}(?am1^|tuy zfJRC$Vd>=Yp;7=B;?fZ{l~D<}TzmzX_El+$6e3etS$veJn~*bGDMRT&4LHSct+;2f z^$mDFShaXIo`dJ&Mm!HUiF?J@#eL!%;+x`In{hL4f%WBPybyr#w)hS~qWCsJH$r{- z;mo46Sqg$_QkK|YxRqyluoeZP30MWZr*o8N68jlU$qf>93t`42o1qf`SG{d561vJD zwyWHK3anoA04GbHux>3Kq<9zZ1<>Md+#|j#?(fITP=fd#__|=|#!7?h><&~J@KtJq z+ygIVj!}ql8j8CGuZETLGq8vWJ`>!>Edb{ji64qzfamf9v7%9%HXyNw^-*zBrVdEJfz={~&NqSI z5^unLxL^E8{6ze8z;6jO+>E9`TMkMN!q9*)mC&Hf{j?B;tvEP`xEKSE@SU=A@w1^` zN7+w^@5T3_F!6Kou;dZ+NrVR%V45TVyVDl8F7o@+av@f(cYa#yf=*p)X@#yEV7D?& zHZlXBBU&PRUhqTs;p2Pn`tc6Q6L);aUI=~^KZbYKOU?ns%PM{)e%YwC{g2v|x-OIpV zDt;q=t`znnehJ)1z%~8&MY$uLz4O~zo0U<}b<1%BjauEn=u28%!Ew-!nOf#w*wo$I z9n{k;{>u3sEi0Ac_u#!s5alp=Ac30sO%L6aOLp6l7wBB|nu|@-qmF`CR;2{8jvIkR{)cT7c1y!iV_Ui?kw#Xl8ZbpKPlcuXUP4C`<55dI0s>1=9gffbR#wvMFTyAtha z4zHorv;ed_D$$N0BpxA1Ltvp~xD232(_@0UP4ebK`{i4Cn%Pn2?WIvG?Ac51WhI= zo}h$n^is+8rV{8==q|dO?t#CSQHccjNb;kBHl9IH8bNx3tkO4|V&caP${R&~q$&|A zV9&zh)yS7%SroUngQW_Sl*z|^?FK39?ttA^5RnVE{&Caf!}^>YpAClZ$Wq$mXxjm$ zD;dWlOOeBBWaBxtW5I%M$#E~O<0zd7Fr#E6IeS+?4BCKUE$291rAnNRQlJze^LM>> z_Vz65=z=zlB#xwCd>w6)AOSb}h$b(G2(}_9S(#SS=b*Sg`doshicPXer7u8no9GMa zi=)oulAy#s8o-n!8LcrMe_KzJ(s#w;AD~_^-?j7& zR75|09eq7P$poeJ)9dLQ3DOaiDkjbiS~^Ak_Juu*8YBY9cAmdGl*w0`w+Y2<5WyTy zrsRLYa&Mt;qmnk#x6)hbZ3GzzG7@CkNZ$_ZcPBw+iPbE!T`B9npp;0h@90R!r*EX! zLkFRoVq(<-7@F>5dOA{CJqgn4Y5Ez-Dy5&3q*azAtw7SGOQs${o@0g83-pVF!pcQZ z#&BV^M-oDTFf1Z5JGO;FCDuzFGvJ6V$0ImT^&0%7%`lFK<#SbeGpEBF6KT@GJ8 z7%HzmRpgaBNbYaw->9Um^tbeP^!M};`Um<)`X~Bl`WO0Ff_wz!5|l?!K0yTp6%tfL zP%%Lz1eI>3e-DVNqbdplHWE~{B&f=Qf~ta`TId^aPTl`|LTaSA`%gU(N zZMK4C|1nrrIaRJfEH@K0XBd`Md4OeAzN$b4>^zsCc?2~LU|D6S4oHSaBScieTuhmZ z4%(A{4`)@40_XW7;H;Xhz_~?%v*(|(J>)s@kai53zpB{^o?AxJ%`ek!kxaKG65SRn zbX%y-^u4?wFPg5rwJ?71DK%B;A#&wZL*$1L-bR zU8}l|pk)M|E=?4=fp#Agw3?tZhB*sVH>lPR67N)kdWI8kqeQ$-s+(1t3F;*XNVsy4 zcvq^nO2mUYmdnI*LfmmrH%xV5=M(&)G@uKn?enE4IzRWLYj9oa|Ck**sA_1&%q@(*zN5 z;U3j4Dn#|1YBz*5HY)*qO7)xN>e zyMUmxhmYR7(&+71y{CGgpmPX17xvQ+j2=By{hwf5G-Ig{24g(*|u$q_jGczTx)$w0SKKOuByHUwHOkOgXOjZDK2MD@_pbY`U707~s z@u0Yy8872wa+y3PpP)X1`U%=Z(9HyG9>5;HQUVqDZo%>nK#wU?aJEr;RvR>f120b! ztIQmwj4gv$eFx2C<}=Mq3*)Ckm<1@ES;#D+KV=rvm&2JIEVG1ZLt$`w0L-_;Kv{Pw zkS|zVE z?;I#DSj*6d#}?NC){k2YZmV0h8j%_oh$KC#jBF=!iWK-=U0La00RgtkcJ6^VPNs|L zmPYsQ5***n8|1TIW)%e3G0T|c%nD{DK`^PjjiB2Jx?>Y_Dsvj%%$!aT%q;H}4-)jK zsIM*ZF948hs4AIk|yM=+CFr$&)m-3H6ruf zkojJMc1W2Y5fcY#oRG8n@nN|iVs=RFf0&@h`e0$CLS89^m4a?qI|nyBu(GnIIySIq zDUEDphdgF`nJ1Vh!5x1q0Ol$1*TR-?DM(Oq+$$~%VE!S`|G_^uY%&F>iq?WnN}pVP0ikWA-q6nb((2E4Uv=vD54)ZRvpLvgYpEcN(+^K1Phb85hV9F z%n@)UG2b%ZG2avP3PG?n3LL2nWC0YM*ucMX3?xjJ6DmoA zeJGQ1Qdo9E_IodUk@Vj8O+m`#ur8pp>ROmf^|5Y(4h{g8^|7T?(k*N*o5$v} z1#BT(#1^yQa{7dzPYL>rphEMmxxdG}+w#gvzyBoUY#l7G{d5gcNskKdlWbo{dsLo)Bk>U|9g2jA! zpYxpVW>_KwEv;(;;DZ2DO43O?PXmuar0t|WP_PmnA<-PkuP!aK$nTXAnvdr6v7oKL zmbMLyO-(Dv14E&sD^;Go!X!{hwNOg6h@fx(CY7`a%a!jAOsPr()eQC{A*bze7;7pR z^})8Y9m9kr+r{?4u&~_({n*FCMD-_$Y9Rwbxf0a^5moF;7;APFK|jM_&q|%E^jo5f z)W_g3pTUa5D>#e2oJzWlJsa;=En&}N&j*jrTKYL!U@u`W1(}L|7ylyY6oLSNfIh$Y zH8^WwU5;QxFilY8ZR{278um(dEqfJvHG2)aj=h$>j=i3}fnbK7@c|CCc^en(r+K!ElTA;E4|3jXV#EjSR>8CY)} zls@b>xnK+n`X&ENivvOI%IbdL%g9Q$E0y4XHfo?kidV17mu#bvh2N(Xu4>d~|1&*E z0}BHJN2D5p9QGjlG_1F=53vukJJ?6qN7={No$TZ66YP`hQv|aFa|H7Qs|f}s(hxj~ z;L!w+AvlC!?KbuqWxCAn29fpx1#WEiWtcGI(7=Ql!(6VG;PGJRK*mY`@6DP2uUc+n z--GEj`#!;Ag9_(ENf&;^ek}bGJdWTnPHTwc$HBpkUCt4xK( zuDCERoQvQhxhO80-N}vTVz~)i9Ki_$Pa$|J!P5wyPVfvFSAd%&f|ChO*~U#$aK%kg zQQR~MR~+o*C0G~4m0re`MZwj~|Mzh9|NjaRX9KWsFx;sDuyE-B7P^Palzyeyk*hhRe==Ofs7a&X}axME;2t`NLY*d%$QxDxgV!Dc|r2)KlzH9;<` z-!7dphZi0cdUV?qwxD^42oW`x@PM0A< zB#7h&AyPnaDZyn5M5_J^k$=6rmb*-X$mIm*1tD^!1d)rltE68kb_3@tp8%0b!C}9i zTQ5NbEY89{?nZ)(P7)&h95`)Y5tZ8{Ym{P%#kR;SRx*OcLeVt|I|GxsV7<3iPt=iMIDZ%XocM#l3@F@g$5!_91&sIK4;YU7JS!LrVN!-{QQwA!KVWo@-qou(Z_>-VCBiNA)mv$Wj5qpG8?Xf z)iT~IMZMrtM+$7FEFkLm0$wtO=!f_snG;u^C|fX31>Xqbk+0;d_-ej}ujT95oqPj7 zo1epj7(9bukzfLwGYCG5;In1%cn-nm5_}%P=WpZZ1=z8L_wx%RQ-W`m7*g4N4bzNE z2wp?*l?qR;`!7%a8+dZL#FHxszA(s>rvgv%r}3+$UxF_p_+sS~Oo_4D3BiFsn?G0L zO&H8e`*;}4%TAIvFXAs%coX6PKtx^+;*JMH2BxQ1jO0zUFCiyIcKiiBfBe<_bzn^J z*YNB3YYARUAU+6REgKX3`hYQU&40p};5YGG6trxX(Q@sHIuaz>?fgR$TJGTQ6c)zi*Hdr z0WK4@;lYuApZ`FD%K?J7_VFJQyzM06@(F)PfeS1j095Fu(62_-+L*;Qy9w?|c5OaM6YZNpMt+Wx%N6^bR}0_n)XMfjnwn zJq`>VwOTExHR@67(dsek5Vckvsvb))Am$;0A0~JQ!H*F9D8Y{ryp!O^34UU$I!wWe zI!ZBg)Ugs$o(v-8=>bFMx&NZ%Uyl-X5}-s44z;HOC{csu^EW}h!J)ROZGaFpxKf_! zQv-iIdvXX-XQ;Dfgs8J*gzN&gf)HO&D8~u$4c6sV=P9h1E3@M6lgU$}t_RtzE>)MQ zXQ|8873xZMr@C5QqpnrM6z~OtUnKY?f?p;W=7q1yvimiHK~n4``1Nh-h5$b{swj1n zWa+3|B#zt{5)D_aK{80<#ad|AD9yC*th%CV8_05l1zDy`g~w8^|_K)@m=7{e)R>CS8+e^cdECmLFs%#@TUZSM(`nmKPMP;7?>zu z5d0;q0F98H3*|$M} zybJ(gKT^Lc{mSc8-zlE}k>IRR{f7E22_j(o9O+ZPP4EvV36b~IU=e{=Q4MjFDFpv0 zvDim4i~Tf$#X`}XAeVin{z8JtA@%2K;Gtg#{*~b06o|l*y9|-v|2+_S>aB!FHkU05 zHsnY3FA7A!jskV{=ZV@M%=4F^mdu%>0wo{;3$&mT7=aZy0Tz0X5}G13A~Ys6T-l`} zG(%{X&>W%pt%9JSLm0!Ymarj=1#G~T9m?iPS_9aSfk6kZr1`H4@n0DoEldJn2$Kmd z1b`t-0bsy59N%vvBnvu#gpfk$QGG%xp+}z_Bm|>i0hSU>pf%_*lGYHc^o@iLIbLM6 zwkE(-LWUq4Ko1FE06}nHD7b9|tK{vWLq-58n8z#30$DBigj^v{$QKHPLUyN6ER+bP zLK&gQ5ju>};e?JLbR?mpBw0;I6FP>_;|U$RO(+j=W3^Bt)JmIug$9WqCj|L%BB2uq zJq1?jKv>g(^L+lxlmAklY?XKtqBrA$Jh>Ej^7uP=gQMOfER*=Mm(Y{?gyn>ue3E>5 zs&Kk2s)f~(sHWpV)WObH$;8%;;IL!2=nCfu7l6PP&K1rR&L{L#LQf;~bXi~v7b^lA zHuL`nf(e8xg{x(OEx-a9;3Vlpy$Dk51_A7#jlz22M&TwxL*I3TPTeT<3H`!GLZ=bh zNN9^hMd={!5z(+pJgan>6r8(%yaZAlESzl8GCV-mwNl9_=aa4s8&UA^^il=E2Hz^c z6$E`KMV#9w+(u}2ql{X;?<SX2EzTqg9BwfL}(L~1tmQqJSsd^2W2V8;1C*4TbpS$S>PHmH~`lOC(yw$YjB33 z1CHgD4nTCmfp0!|>uqf9T+{&@&|8=G!VxBLZ%b3xQma{M!Q;Xc5Uw|PEUtXQ&PL&J z;YlhBE|pQvT?zK_Y2jIDm+%ast$o5SLfa(v`QJ1_rqBz*T{305%I^OjC=;ygW#Lr` zGp`WZ(I>n{=$UXJ6by-UUXRkMz?s=f)Q<3m@F5kkRd`c)OL$v&M|fA*FT5wbFB}j) zAan+yGYOqV=xjpg5ZXy-7opvR_7K_&LEFN|aAgFtK8y0Op?@%+o+K9@2eFC5PeJKQ6NKF;rk zfJ(T=st3{^^P;8|j+KFfy&()#$x-1cly?KPL+JIevV;39AlOq$DW7iL1LteP?GkkZ znFn4gE%G%jZEXV(gb!_x6mAc(s?vQeA;+@Dah_zgEbD2J`=>i5^+^qVmCS9h`{S6* z25YLJy0uK=%zEX221|-DIQmC5D%hc+p)^Q?HDHyM5W1Ampdx2&(l8oU!)bUzmlL{z z(3OO)k{B@pxMO(qdf?VM=|+O#FRGO*f|a`uhQBK9l)|oIK=dPW1p?=#Gv9ibN{6;7 zd|2UMD4(-cPFRIPq}4_OR@v)Qm-%jhbsO;{Cv zINwgWzA5pRCh2FUXC!1gr90h9D-hwCbRiwowZPZbw6I&c%4lH64_pqI*Q8vH1?ePtmXI?| zA#dpUTDTJsE&zlp79vt1R2WY6TL~8wF0IO!>TtnP7JJ7er@*y<5SgyjJ6P@j=f)iS zW=IDk#=<3otjJ3}Gg!uNgv$j*`LfN8a7iCnk)y?MaU6hEDMISRKxWv>1eYsTN)7S( znC8Rt`g=oMZ_(Dyxn? z(7&>}9L8Ec+#h74(pQP-a#tXSbX%Wv86}Wlkna5r<;QsnsprfM@J9cfa`-wAg8kvv z!U2lF!IRQehW+y)`*EIA$KHWgM9rcqs1CSS{4}^x{9-u5`+90U+}(65wVis9dJ66i z-v#%EOE==YPJIYBhJQ!>1($hf;a>1q6bDCoPeutS1G(Wi?^WnDSPD1`j`F?~4&`2h z)}nQA`t}WQ)At5+Kit~=1Ns&Hj{bzxJy|%0Qv*kEYT@wBFdTu+xCHLaE5|i>KHR&# z0&dzq8xHqdhi`zp^X|tx;7;w=@Im}J+@yU3{{m-WX%)U6I3&C|AVvcJqo;}?0g11% zXfohHMG%HIja@TdGgFf;i^O?^ZUU)D==p?h-mJ;Qn>E>*9K0DEhja@#4rxE37l7{& zwu8W>PA3*<65ss8MAG$LjoRraE=fux-!1wNQ&xiEC#Ouv;gw#?cA=&~v3h=c@lgK@ zVD$h8Rl*fyDeNYPO;eO_R<$mY>Vh6Ve#c z6w(~x4_O$}8nPs0X-G%NDIsTvTobY_9XhmpMXiez6(D|V) zp$kG6g)R;yp;v|85xP6{jnFqk-wJ&v^yAQPLw_8r9Xny{q_Od1r;eRIHgT+HZ1LE| zW822IkBc4`Kdx|G`M6WZeK79xaYw`0uyJ8=VUxn*!={8y3!4#U3bTaS!W?1gVVPms zVJ%_jhiwl#6s`$3gja?)g)a_o3vUna4DSj*HGFmW8Q~=StnhQfZwTKWzB~M2_|b?_ z5g`$w5n&M#5m6DQh>VE3h=zzck$hx$WPIe5$Z3%?B9kIhB2y#NBQqnjBb|}%NN;3r zWPW5zKaD;VeK`8d=&z%{ zjs8AnT1;AuHO3w@GbSS@E2c1}I%amv+?aVW^JCg$I%8JGtczJ6^GM9@m=|JRig_hw zU(81_2V*{sIW%51e)Rb8@iF5Q#_PvtjQ5St8(%QKX#9=iw~XIC{?+l{$MUhEu^F+> z*tXc-*t26Vid`FfU+e?155?|?eKdAw>=Ut1#Xb|eD|UD63$ZW7z7qRd?B3XYv42e9 zC!|eCpD=&I1rx5C&^O_>3415}7B@Lg7iW!g#}&kt#Vw5MiCZ0aMjVMdEAE`QOXDt& zTNAf7?&`R8ad*Z&6}La`=ZRw{PMjD&amvK$6B8#UPxMVJo!B<9ePZY2jgz-eesuEA z$xlpvYVtFacTL_s`HjhMO@3$c{>kr8{$TP)lMlvo@e|@5@s06k$6p`6DgHqGhw&fB ze-i&${O9ps#D5k4P5gK9N8*2s|2h8G_}}CIj6a%y66gdbflE*)Xc9&zgd~I}j7tbl zh)jr1$W7=?*qE>_;q58h6w8$6DOXI{IpwRVC)Os`C$305C-K6>ixV$RyfX2s#A_0-O}r~{Z{i1u zKPUd0_$>61)J)+9$#MpAZ?GpQ_T zb<$-?*CpMN^lZ|X$vAmxa$fS1b*fw5D{W^rkFNS($Qf%9SZsrCgJ8ZOZj2>r-w@xh>_6lT=q}f-(XG{8qq|PGUbjKFQMXxl zi*C2>lT>x;_*6$~acW)a^3;{7r>3q>JtLK*o|Sq|>UpUfQu|XkrEX5WC3S1+ZK?04 zewO-m>bI%ir~Z)oQyQJdq;YBLv1$n=TnGt=j$FHB#Velq=Orp&aNHS^|hbCh|!d4f67oNTt6XPPt2S>{4>iMh;N zZmu=^&5O*7&28p8&5xKLGe2&A%KWPNGxK5dSLSccN6bH&e>MMMK5D@h#==`BTH-BJ zEYmDAEXkHsxK_XncNRM=>6T1Oy=A3ky=AB6W2@R~w$@sgTd%g>V|~QB)B2?KY3obY zH>_`4_gfEGKe8UQeri2r{n7f1^>^!EHe{pWdTqE~0PY8{+cIrAHn?KKR%x4OYqqu7 zmfAXOD{SZ3F1B4}TVuP*c7yFETc2%{ZL@8M?H$`Mc4WtPl|9rRVUM=Q+9%tm*r(eQ z?P>Nbd!v26y~V!JzS!PoZ?~Uf@3voTzs$bIzSe%VeVzR}`$qd#`|bAa_IvF2*`KsO zW8Y=pZGX%DiTyMC=k_n`zu14b|7kz!U>su|;f_d0w4>3{=4f|xI=UUA<0{8G$MudI z9es{XjxCO@j@upE9rrk%bG+bq$?=NgHOK3YHyv*~-gUh1_`vaz(Z_1j`WQ5tn}RUvh<4d>h!ww+39oB=cO-A?@aGbUzWZy{nYez={Kiu zO}{;Td-{Fp52o)(e>DBY^q14$Oh1_ZdHR>>-=zPL{&V_o>3?KsGEy?qG7K4}3~Pox zV`fHXMs`MRMnlHjjCmRJGg>khWOQUK%UGFlTE-a}B;(SID>AOkxGG~y#=RN$XFQnk zaK^5T=QCc+csb+sj1MyoW_+4)C^IcHBQq;AC)1tTlDROmHFHU3duC^5S7vYK^32OK zugttUb6w_jnKxwKn7JkMj?B9<@6CK5^P$XVGk0gcnE7(%2bmvbev|oK=8?=Fvv3xZ z#bv3pLb77BCT2~}O2}HAwLEKO)~Q*iXWf+5pLKKAmaMH=w`JXtbywECSubV1nzc7; zU)GyhZ)d%mbujCTtgo}a%laYfr))Z#%~oe?vL|Fu%udNp&DLidv$L~Z*`91)c2Ra+ z_U!Dr+4HiuWZ#>8fA)jfJF?%*!8w|oF*%_*<8oqiY&kP?GIQqUH03nsEXZliS(399 zZanD9xhUt-oGWs!%(*J(nw)EM`g3m0xh?0;oV#=G&3Pi{>6~YCp3B*n^JdQ5Iq&8i z%K0MatDJ9gesp3d31%4E_N<; zb~sOQ_BfY0S2(Y7-s^nJ`I{@w<#8=?o#)!@ddl^p>lN1?*XyqLT%Wo=cYW#l#`V4H z2RCx7+?-o*k9LQ+Q``=BmfPv}xbxjb?o#(G_dNGfcbB`@y~4fPExONgpW|NZUhlro z{jhtF`=I+z59OgfjED26JsMA#XQC(GGu1Q0lk7?L=slU9Y>yM}EGhF;c&a=#o_U_7 zo=#7fr^iD)XL-)?oab5VxyEy?=Xy_{=XuYEo}avecY;^%^?K{Pv%Pb@P2Og&-`nn8 z?!Cgh&U?4_IqyF2``!<|2fd$p4||VzfAaq7{oVVQkMgN~lYJ>ZtIzE#@|F6^eO10% zUz4xd=l3o0E%vqfF7$2jJ@5P2_pR@U?vb>dfr{$fIcV^x>dFSU{ zly_;~6?tp(Zq3`4cSqh`dH3c$koR!jqj`_#J(c%t-g9{e^8U!z=1<5s=P%4(nSXWu zE%{I7zncGM{yX{a<$sX>S^nYtukydm|Gr>)L3zQM1(y}9DY&X&UBUGQ>kGCP+*WW$ z!S;ej3!X06Rq%YlO9ihNyjk#0!FvS<3Jw+GLatC-7+n}!II%FkaBAW7LVcm5FrzTL z&{gOy%q=V{tSg*fxTLVX@RY)y!sUf43(qXPsBmrJHHFs|t}onB*k8D<@ZQ1)3Lh?f zwD9r5CktOFe7W$|!o7w23qLG8T=;Y0Z-svrQAKnSQ#7_Hp=erBVo^#_T9L8HQe-bm zFDfc3Eh;anDyl7ND4JW;RMb+mphzsbxag*$hl`#odbjASqTh>E#ayvaJgRtdaZ<6a zSYK=`&MjV8+*!Q3`1Im4ib?UM#a9%sExxAsy5bv(?$@r4ElF21gN~V`2mAFfMCHW;qC8Z_hB~>N0B@HEW zOPWerN*0#1mMkk-QL?IJb;*+@uavx2vbW@o(($D;N|Q=cO4CZk(o0G&E4`w0ZRvZZ zhfBXK{krtKGE-SjSxs4e*_^U@WzA&^%390d0_n1@vfi>4WtWw$DO+21b=kVI>&tE| z>nqz>c5~S+Wn0T`E8AUmXx6A%sk6#wt(diO)~;EfmNVt?<;mr#<%V)oc}BUnJg>a4 zyrg_qc}4lW^5*gd<*nsyftP zN9CWCA1eQ%{QL4B%YQEat^ALQmOIx_s^6-9xBC6+533JWe^!0C`m5@1 ztB=$OHKS`nYC>zq)kM@p*TmMu)l8~MsF_+by~b11TytK{tu-&z9I1`0wboYEcGaF* zdwMOYJ*)QO+N)~U)m~qFV{KpU#@d@}@2!>|iU=hv;T+gx`~-Gg;I>K?0ms_xmk z-E}Y2y;JvD-Cy;nURBT43-zPxwe{obBkH5;W9ui@Tk9S5>GhfQ+4Zh^Z+%{UL48qu zY5lDFiu%s_%j)l`-&g-@!^8%6!~6!)aAU)khOG^^H{99qV8as)PdDspc)sDKhF2Q) zHymjAsNs`_Lk)*#bF;%{N6(I(J#qGw+0$ny%}$w}{{PiRA zNGFvT497LN3MCCeQN(hX8OODn`SN@Ihu`zzp%zoGP%EfBDxX?U0g9o*)F!Hw+D*Mh z?W6WnmDEA%F!e5Vl=_frq?)Kx)L*GHR5SHA>O9p(U8Md&U7`j8j|b)in8236dx5io z9xwz<0@FYim;q*iY_Jq811rEvunMdJK@b80kUn$D-!(G(46mWDK@ z1zMt2n$S93LVrNF(07;=W)8zK1xzK=z(KLu!-zYb}~Dioz2c==d(HN%j_%cau%>GE3y&RV++_V>{hmzEoIBtJ#0B!%bsVu z*gkF$7sn-ViChvlic98FxO6U)Tf!~lUgcJCYq@n?fMd8I7vdf`C2liU$Q5zhxgA^y zw~Kp|E9drc`?Y*C1@9V6P2U)Q8hY-K1Q{u z4%MU2&~fw^bP_e8E1}p>dMG!fgvvsH3Vjpm$0Knn9*4){H2e(C!ZYv-cn*FEXX6z( z53j+mVG0Ah5f|Z|_zhf!%W(xhfGhEbxE`OtjkpPah0oy@+=?&bUjAYJQGO_&#E;^W z`7!)2_$T-Y{8M}eKbN1+FW?vPi}@w|GX7OQk6+E_^XqtuclmO@p1&l-2pPgsK@zqL z?+DdGjZiCmBAgIT3ulCLLW|HUd?Q>CI)!V(b>W6^OXw4m#IfQ8@hLGwd{+FG_`H}U zE)a9XRpNRPh^z=jNmNB58lokZiO0kyu~}>vJH$@$n%E=uihW|gG*}uTWk^p;Q>3X< zrZioeCA}!kld`2nQm({EK?zA%5+qp)OS)uAw&Y41rKq$|s*~EK`*NC`D=YF2`H1|b z{I%RFx5cVAkyJ8{j3-Z$bTWx7B6%dAtS5j3Nr(tUA{)pivW*mz zQnH)uCBGwYlPXe88b~W?BNs_K`IcNJ-;*CmH@Qh}lYVW8He4H_jnYPIDO##FP8+YK zX%n>!ZL*f5g|zM3QLS0Kt3R&K)bn*q_w)jNi(aUg=;eBaen79%59x>X8ogGp)9dv= z>nHR}`gOfm@6+$<1NwiAhm2Tbq>*Z57|$8gj4We@G1r)HEHHA6Tmu`0Mul<6_{gX= z>Wq5hgwbd;8K;a3MyJtj+%#?*{l>qH`(}(8XFhCZn2fp2++*%FE6f9Cm3h!SYJO}s zn8(diX0v(T>@Yjct7ezkW8O4>vSO?_YreI_3RuumtPNJwdfnP=6$XK*&X)1$goICV)xfA&@@=qt$iFY1x zhB(8W5zb_1p~E<3&R(a|`Mq<*Ip+M)`Na9uX>d+EUpuW%n{(0m&bi`Tb-J8xceI=B zhF!D}`B{6T)KALl3diT+SO*&pMl`eXfx se!4%&pXTTIFZ)aV<^D>4mA}?s=LdYo|DS@0iTU}BPn3S<|JO(V1v~+kcK`qY diff --git a/week3/week3/.DS_Store b/week3/week3/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c6d75e10c3d50f549c8813792b8797a8c969ef9b GIT binary patch literal 6148 zcmeHKyG{c^3>-s>NEAs)xxc_4tU~CK_yGi=K#DktXM0t?i%(Ey`g% zQBev=fvEzgxm|nzzoP#z|4&KUNdYPFuN1Jw_GY``D^+iuy`1;jM!%(d%_rTB>!2`1 lJ0?au=EmFcc@$+`^EJUCY=Hx<(rh+rmu}Xp?50~OinQnU z4|?P)_<$aJ?umbZ3wLI0HzaB+s!AY=Jkj`#$1`isTdf@f0Ba6|IzSZwI4WUj5t~bd z#z`;8obgl;nR-SeNV}0QWrSTTmI2Gazs>-Cy9|r;0q$p(u$Q;157uOyb;7tePzhns!;sAnVI0W3DTi^8s$5SG@CvWAtIMNNqu!{A z=gy09O^jYXb!wvVY;`=Y@Q06|yn5T-i~6xVqzZ8xKHqrn>HefWLhH)2c~Am=a`w9xuGyMJNktR2j*(Dt!2P6Fw4Na z?pEpie{=Qye>TbXECZH-|B3-tYI&_DmSoP>3&qh{D^RylNhq$+s8X;o$FVZ#C|*WY af@6XVMAu-U5j`mOkAR}VHkN_E%D_*ZA(U?b literal 0 HcmV?d00001 diff --git a/week4/week4.xcodeproj/project.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate b/week4/week4.xcodeproj/project.xcworkspace/xcuserdata/jihee.xcuserdatad/UserInterfaceState.xcuserstate index ed8ac5266d53a758277672901e33746ef7ab972d..eac340cfd8cde34b28e503a44bd85e021b1a4742 100644 GIT binary patch literal 35477 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%0DiCDSjoM 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”Z0?sLD#Ay zy4AWzbMDrF%=aPq$xpQ1^lEOWn^&T#_ouEy+E}Gbu1BI4LYCGASl$LQ+~% zM$)9DsY$OV?N53y>HVa`$^FR}CNEE3k$hQ7NXo<%ZAv0s9sOR)@suA@PNn>kic*H)cxqH?Y-(I;Q|eWz+fsi@i%qLat50i8Taocb#-5B1GCt4vD&yOX z?=ybP_&Jlx9FwWe^vd+k^vev)49*PAtjS!S`DEtTlY%D|PAZ<%H|6OmFHd=U%DyQF zro2Dp@RTD{j!ii+<>Zu8Q+}RGO{J%DQ-!HhrrM?sPTe<+o0d4OK5I?Z#;na*&tyHD zwJqzVte3Oi%6cbjU)KJtgIR~NKFs#ZF3vtLdwuqv+@Rd>+=Seu+|=BR+{w99bBl9J zbIWsQ=026XBlqRpS8{je?#n%p`+n}>+#|V1bHB^|KKEqqPkC$e9?W|rZ&Tirc~9qU z$vc*JBJX70PkF!Q<9sH6Vt!`+l>F)WIr(|{1^M;)#(Yb@HQ%1!lYf5x^88EkFVA0@ ze?$IF`8Vg^mVZb7efdx3@66wue>ne>{Lk{g%>O3;$NZo2eZ<`xVT++VPz;JJbq3bq%#Qt(>An+1Cc-Yz&=aJ=C2g0Bj` zE%?6R$AX^=sX|;BR2W-0xv;L#SlC~9N#Tu!s|(i@-dT80;g-Vfg>Mz^FFaIuyzukF zuL{2{aw&={N-oMO$_C%e+@hI9HAS5ICH78NZm5{s4%b>XPe9ZYa5} zWNpb4C0k0immDqmqSU=Ks&rCmL1|%WQE5r(>{5McOR1^UTxu`vDeWs=P`aq}meSp& zKb5J<+{)a`Jj=Yxe9J=1V#{=8DP>d3a?6U!>dNMnHI(VgTFQ)Non`%Hi^?{YZ7thX z_HNmsvMq=anxgKd=0<^3~;Q%I_?{ zr~KaX2g)BRf3*DZ^3CPXl{mgr3J}~o_D%YwpRqj=uRZUeLRh?D#s-CK?RXeNp zR~@W6RP|BS(W>KBpI3cVO;yv?T(wZ`T0OQ}UF}&tt~#RHSbatHj8q zSQ}g$RvTFxQyW*CTANWjxprD@c5QBLeyyc;aqWGz&(?lkd#aA9BnM z{yE~Dd**DM^X}Yfb4%t{&aIwXH@ALn(_F*c*14C>eSYqddcXRp`o#L=`n3AY`YH9( z>x=8l>MQH3>TBy~*Uzo*u3uJvd;NX&`|FR@e_H=V{nz#1)qmfhYVc|BZwP7#X$WtK zY)ERD-jLgn-%!+0-cZ?4)lk#W*f6i5v!ScO(J;SZLBmB2D;h3qxU%8uhHD#EH>_#6 zv*DhGdmHX=*xc|;!?O+B8eVMJ-tc zd&|6*&X%qgM~m39tYvx2B`ue?tZccu<=U3pTOMlJ-mrm*7`*2fz~gKV~k-&jj_a7Zk%bXHr5&E7#oaD zMuTyY@e1Ru#z%}V84nwe7>^l0HGX0I+W4(0+LU0*Fikd1Gi94{P5Gv3QtYA!Yn)X}TA8Oy!{#yIn z?fcpfw7=he%*>d1vx_<2tTpS*Ddu$ZB=c1BbaRfm-rQt1n2qLk^E|WF+-E+|Ow1RW zFE(FlzTCXZe5?5m^Pu?w^F!uG&5xU3FmE@%Y~E?!XFgy)Xg*{6FJ2CI%yi*-a$CwUvhgXMBhkr+4M{GxYhqgo4k0D9k+Je(J|O@PshC-_jhdUc&Ov0jw4paI>s7c z4Y7tz^#&>EvCwETk%+J3VAVn=q`?qLtM>+F;5x%Qd%+4g#Sligr9 z+dJ%?_AYym{X+W{_M7du*l)GpZr@;k#JQitUQ;(sreHWp+*On%XtJE4xeIwWRBguE)Dx=-S@(O4n;$Z*=YII@0w` z*NLu^T|agG+Kswhy4|}yyS=;px}&-$b|-Wvb*FYu>7L%5-JRQ=-(Ar?yW7-l?Y4LK zboX^H={~=kbYIxLy!)!|Ro%CAukF6KKfYhvpWdI>UplnY2FIP!f2ymMf1Q8(tN#yw Cui=^i literal 43713 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