diff --git a/AcaMate.xcodeproj/project.pbxproj b/AcaMate.xcodeproj/project.pbxproj index 4b689cc..136c26e 100644 --- a/AcaMate.xcodeproj/project.pbxproj +++ b/AcaMate.xcodeproj/project.pbxproj @@ -294,6 +294,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = AcaMate/AcaMate.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1.0.0.0; @@ -302,13 +303,16 @@ ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = AcaMate/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "아카데미메이트"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education"; INFOPLIST_KEY_NSUserTrackingUsageDescription = "최적화된 개인 간 연결과 맞춤 헤택을 위해 사용합니다."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.st; + INFOPLIST_KEY_UIStatusBarStyle = UIStatusBarStyleLightContent; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -332,6 +336,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = AcaMate/AcaMate.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1.0.0.0; @@ -340,13 +345,16 @@ ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = AcaMate/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "아카데미메이트"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education"; INFOPLIST_KEY_NSUserTrackingUsageDescription = "최적화된 개인 간 연결과 맞춤 헤택을 위해 사용합니다."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.st; + INFOPLIST_KEY_UIStatusBarStyle = UIStatusBarStyleLightContent; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/AcaMate.xcodeproj/project.xcworkspace/xcuserdata/tanine.xcuserdatad/UserInterfaceState.xcuserstate b/AcaMate.xcodeproj/project.xcworkspace/xcuserdata/tanine.xcuserdatad/UserInterfaceState.xcuserstate index eee7cfb..8e1844b 100644 Binary files a/AcaMate.xcodeproj/project.xcworkspace/xcuserdata/tanine.xcuserdatad/UserInterfaceState.xcuserstate and b/AcaMate.xcodeproj/project.xcworkspace/xcuserdata/tanine.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/AcaMate/1. View/11. Intro & Login/IntroView.swift b/AcaMate/1. View/11. Intro & Login/IntroView.swift index f475baf..b5d5777 100644 --- a/AcaMate/1. View/11. Intro & Login/IntroView.swift +++ b/AcaMate/1. View/11. Intro & Login/IntroView.swift @@ -18,12 +18,12 @@ struct IntroView: View { VStack(spacing: 0) { Spacer() .frame(height: 100) - Image(.Icon.appIcon) + Image(.Logo.appIcon) .resizable() .frame(width: 200, height: 200) Spacer() HStack(spacing: 4) { - Image(.Icon.teamIcon) + Image(.Logo.teamIcon) .resizable() .frame(width: 24, height: 24) Text("STEIN") diff --git a/AcaMate/1. View/11. Intro & Login/LoginView.swift b/AcaMate/1. View/11. Intro & Login/LoginView.swift index 4909d95..af8f1f2 100644 --- a/AcaMate/1. View/11. Intro & Login/LoginView.swift +++ b/AcaMate/1. View/11. Intro & Login/LoginView.swift @@ -21,12 +21,16 @@ struct LoginView: View { @State var isSecure: Bool = true @State var isSave: Bool = false + var body: some View { VStack(spacing: 0) { - Image(.Icon.appIcon) + Spacer().frame(height: 100) + Image(.Logo.appIcon) .resizable() .frame(width: 200, height: 200) - .padding(.top, 80) +// .padding(.top, 80) + .padding(.bottom, 84) + /// 앱 아이콘 이미지 VStack(spacing: 16) { Button { @@ -34,16 +38,20 @@ struct LoginView: View { appVM.isLoading.toggle() loginAction(type: .Kakao) } label: { - makeButton(image: Image(.Icon.kakaoIcon),color: Color(.Other.yellow), "카카오 계정으로 시작하기") + makeButton(image: Image(.Logo.kakaoIcon),color: Color(.Other.yellow), "카카오 계정으로 시작하기") } Button { // MARK: - TODO, 애플 계정 로그인 구현 naviState.set(act: .MOVE, path: .Main) } label: { - makeButton(image: Image(.Icon.appleIcon), color: Color(.Text.black), "애플 계정으로 시작하기") + makeButton(image: Image(.Logo.appleIcon), color: Color(.Text.black), "애플 계정으로 시작하기") } } + .padding([.leading,.trailing], 28) + + Spacer(minLength: 1) + /* VStack(spacing: 16) { @@ -96,7 +104,6 @@ struct LoginView: View { /// APPLE 로그인 버튼 } */ - .padding([.leading,.trailing], 28) } .onAppear { diff --git a/AcaMate/1. View/12. Main/121. Button/CircleBtnView.swift b/AcaMate/1. View/12. Main/121. Button/CircleBtnView.swift index 80ce92b..25d9668 100644 --- a/AcaMate/1. View/12. Main/121. Button/CircleBtnView.swift +++ b/AcaMate/1. View/12. Main/121. Button/CircleBtnView.swift @@ -10,45 +10,46 @@ import SwiftUI struct CircleBtnView: View { - let title: String? - let image: Image - @Binding var isSelected: Bool - let isReverse: Bool - - let action: VOID_TO_VOID? - - var backColor: Color {isReverse ? Color(.Second.light) : Color(.Normal.normal)} - var tintColor: Color {isSelected ? Color(.Second.normal) : Color(.Disable.normal)} + @ObservedObject var vm: ButtonViewModel + let id: UUID var body: some View { - Button{ - guard let action = action else {return} - action() - } label: { - VStack(alignment: .center, spacing: 0) { - self.image - .resizable() - .renderingMode(.template) - .foregroundStyle(self.tintColor) - .frame(width: 24, height: 24) - if let title = self.title { - Text("\(title)") - .font(.nps(font: .bold, size: 6)) - .tint(self.tintColor) + if let state = vm.btnStates[id] { + Button{ + guard let action = state.action else {return} + action() + } label: { + VStack(alignment: .center, spacing: 0) { + if let image = state.image { + image + .resizable() + .renderingMode(.template) + .foregroundStyle(state.foreColor) + .frame(width: state.width/2, height: state.height/2) + } +// + if let title = state.title, let font = state.font { + Text("\(title)") + .font(font) + .lineLimit(1) + .minimumScaleFactor(0.5) + .truncationMode(.tail) + .foregroundStyle(state.textColor) +// .padding() + } } - } - .padding() - .background { - if isReverse { - Circle() - .accentColor(self.backColor) - .frame(width: 48, height: 48) - .innerShadow(shape: Circle(), color: Color(.Text.black).opacity(0.75), blur: 8, x: 0, y: 4) - } else { - Circle() - .accentColor(self.backColor) - .frame(width: 48, height: 48) - .shadow(color: Color(.Text.black).opacity(0.75), radius: 8, x: 4, y: 8) + .background { + if state.isReverse { + Circle() + .accentColor(state.backColor) + .frame(width: state.width, height: state.height) + .innerShadow(shape: Circle(), color: Color(.Text.black).opacity(0.75), blur: 8, x: 0, y: 4) + } else { + Circle() + .accentColor(state.backColor) + .frame(width: state.width, height: state.height) + .shadow(color: Color(.Text.black).opacity(0.75), radius: 8, x: 4, y: 8) + } } } } diff --git a/AcaMate/1. View/12. Main/121. Button/SimpleBtnView.swift b/AcaMate/1. View/12. Main/121. Button/SimpleBtnView.swift index dae991c..cccafd1 100644 --- a/AcaMate/1. View/12. Main/121. Button/SimpleBtnView.swift +++ b/AcaMate/1. View/12. Main/121. Button/SimpleBtnView.swift @@ -6,40 +6,45 @@ // import SwiftUI +//import combine + struct SimpleBtnView: View { - let title: String? - let image: Image? - let font: Font? - let width: CGFloat - let height: CGFloat - - let action: VOID_TO_VOID? - + @ObservedObject var vm: ButtonViewModel + let id: UUID var body: some View { - Button{ - guard let action = action else { return } - action() - } label: { - if let title = title, let font = font { + if let state = vm.btnStates[id] { + if let title = state.title, let font = state.font { Text("\(title)") .font(font) - .tint(Color(.Second.dark)) - .frame(width: width, height: height) + .lineLimit(1) + .minimumScaleFactor(0.5) + .truncationMode(.tail) + .foregroundStyle(state.textColor) + .frame(width: state.width, height: state.height) + .onTapGesture { + if state.isUsable { + guard let action = state.action else { return } + action() + } + } } - else if let image = image { - image - .resizable() - .frame(width: width, height: height) + else { + Button{ + guard let action = state.action else { return } + action() + } label: { + if let image = state.image { + image + .resizable() + .frame(width: state.width, height: state.height) + } + } + .disabled(!state.isUsable) } + } else { + EmptyView() } } } - -#Preview { - SimpleBtnView(title: "체크 합니다", image: Image(.BottomBar.home), - font: .nps(font: .bold, size: 12), - width: 40, height: 40, - action: nil) -} diff --git a/AcaMate/1. View/12. Main/122. DashBoard/TopProfileView.swift b/AcaMate/1. View/12. Main/122. DashBoard/TopProfileView.swift new file mode 100644 index 0000000..b08b68b --- /dev/null +++ b/AcaMate/1. View/12. Main/122. DashBoard/TopProfileView.swift @@ -0,0 +1,106 @@ +// +// TopProfileView.swift +// AcaMate +// +// Created by TAnine on 2/5/25. +// + +import SwiftUI + +struct TopProfileView: View { + var userType: UserType = .ETC + var childrenList: [String] = ["name1", "name2", "name3"] + var academyName: String = "Academy' NAME" + var myName: String = "Name" + + @State var childNum: Int = 0 + + var body: some View { + VStack(spacing: 0){ + VStack(alignment: .center, spacing: 0) { + HStack(spacing: 0) { +// SimpleBtnView(image: Image(.Icon.market), title: nil, font: nil, +// width: 40, height: 40) +// .doAction { +// printLog("TEST") +// } + Spacer(minLength: 1) +// SimpleBtnView(image: Image(.Icon.notificationSET), title: nil, font: nil, +// width: 40, height: 40) +// .doAction { +// printLog("TEST") +// } + } /// 최상단 버튼 Stack + ZStack{ + Circle() + .stroke(Color(.Second.normal) ,lineWidth: 4) + .frame(width: 200, height: 200) + switch self.userType { + case .Student: + // MARK: TO-DO + // 학생일때 표시하는거 어떻게 할 건지 좀 더 고민을 해보자 + Image(.Icon.face) + .resizable() + .frame(width: 150, height: 150) + case .Parent: + Text("학부모") + .font(.nps(font: .bold, size: 48)) + .foregroundStyle(Color(.Second.normal)) + case .Teacher: + Text("선생님") + .font(.nps(font: .bold, size: 48)) + .foregroundStyle(Color(.Second.normal)) + case .Admin: + Text("관리자") + .font(.nps(font: .bold, size: 48)) + .foregroundStyle(Color(.Second.normal)) + case .Employee: + Text("직원") + .font(.nps(font: .bold, size: 48)) + .foregroundStyle(Color(.Second.normal)) + case .ETC: + Text("방문객") + .font(.nps(font: .bold, size: 48)) + .foregroundStyle(Color(.Second.normal)) + } + } /// 중앙 원형 Stack + .padding([.top, .bottom], 40) + VStack(alignment: .center, spacing: 8) { + Text("\(self.academyName)") + .frame(alignment: .center) + .multilineTextAlignment(.center) + .font(.nps(font: .bold, size: 36)) + Text("\(self.myName)") + .multilineTextAlignment(.center) + .frame(alignment: .center) + .font(.nps(size: 18)) + .foregroundStyle(Color(.Text.detail)) + } + } /// 위쪽 VStack + .padding(EdgeInsets(top: 24, leading: 24, bottom: 12, trailing: 24)) + + HStack(spacing: 0) { +// ForEach(Array(childrenList.enumerated()),id: \.offset){ index, name in +// CircleBtnView(title: "\(name)", image: Image(.Icon.face), +// // MARK: TO-DO +// /// 이 바인딩 이거 잘 작동 되는지 후에 확인 할것 +// isSelected: Binding( +// get: { self.childNum == index }, +// set: { _ in self.childNum = index } +// ), isReverse: false) { +// self.childNum = index +// } +// if index != childrenList.count-1 { +// Spacer() +// } +// } + } /// 아래쪽 HStack + .padding([.leading, .trailing], 24) + } + .fullDrawView(.Other.cell) + } +} + +#Preview { + TopProfileView() +} diff --git a/AcaMate/1. View/12. Main/BottomView.swift b/AcaMate/1. View/12. Main/BottomView.swift index 72c9e42..c6cf8ce 100644 --- a/AcaMate/1. View/12. Main/BottomView.swift +++ b/AcaMate/1. View/12. Main/BottomView.swift @@ -8,72 +8,63 @@ import SwiftUI struct BottomView: View { - @State private var isHomeSelected: Bool = true - @State private var isManagementSelected: Bool = false - @State private var isChattingSelected: Bool = false - @State private var isCalendarSelected: Bool = false - @State private var isEtcSelected: Bool = false + @StateObject var btnVM = ButtonViewModel() + @State var pageType: PageType = .Home + + @State private var homeID = UUID() + @State private var managementID = UUID() + @State private var chattingID = UUID() + @State private var calendarID = UUID() + @State private var etcID = UUID() var body: some View { - HStack(spacing: 0){ - Spacer(minLength: 1) - CircleBtnView(title: "홈", image: Image(.BottomBar.home), - isSelected: $isHomeSelected, isReverse: false, - action: { - btnAllFalse() - isHomeSelected.toggle() - }) - Spacer(minLength: 1) - - CircleBtnView(title: "학습 관리", image: Image(.BottomBar.management), - isSelected: $isManagementSelected, isReverse: false, - action: { - btnAllFalse() - isManagementSelected.toggle() - }) - Spacer(minLength: 1) - CircleBtnView(title: "채팅", image: Image(.BottomBar.chatting), - isSelected: $isChattingSelected, isReverse: false, - action: { - btnAllFalse() - isChattingSelected.toggle() - }) - Spacer(minLength: 1) - CircleBtnView(title: "일정", image: Image(.BottomBar.calendar), - isSelected: $isCalendarSelected, isReverse: false, - action: { - btnAllFalse() - isCalendarSelected.toggle() - }) - Spacer(minLength: 1) - CircleBtnView(title: "더보기", image: Image(.BottomBar.etc), - isSelected: $isEtcSelected, isReverse: false, - action: { - btnAllFalse() - isEtcSelected.toggle() - }) - Spacer(minLength: 1) + let idList: [UUID] = [homeID,managementID,chattingID,calendarID,etcID] + + HStack(alignment: .center, spacing: 0){ + ForEach(Array(idList.enumerated()), id: \.offset) { index, id in + CircleBtnView(vm: btnVM, id: id) + if index != idList.count-1 { + Spacer(minLength: 1) + } + + } } - .padding([.top],12) + // MARK: TO-DO + // 이거 패딩 제대로 안먹는거 이유 찾기 + .padding([.top],12) + .padding([.horizontal],24) +// .padding(EdgeInsets(top: 12, leading: 24, bottom: 0, trailing: 24)) + .background { Rectangle() .foregroundStyle(Color(.Normal.dark)) .ignoresSafeArea(edges: .bottom) } .frame(maxWidth: .infinity) - + .onAppear { + let idList: [UUID] = [homeID,managementID,chattingID,calendarID,etcID] + let btnText: [String] = ["홈", "학습 관리", "채팅", "일정", "더보기"] + let btnImage: [Image] = [Image(.Icon.home),Image(.Icon.management),Image(.Icon.chatting),Image(.Icon.calendar),Image(.Icon.etc)] + + idList.enumerated().forEach { (index, id) in + btnVM.btnStates[id] = ButtonState() + btnVM.setSize(for: id, newWidth: 48, newHeight: 48) + btnVM.setText(for: id, newText: btnText[index], + newFont: .nps(font: .bold, size: 6)) + btnVM.setImage(for: id, newImage: btnImage[index]) + + btnVM.setAction(for: id) { + btnVM.setIsSelected(for: id, newValue: true) + idList.forEach { + if $0 != id { + btnVM.setIsSelected(for: $0, newValue: false) + } + } + } + } + + btnVM.setIsSelected(for: idList[pageType.rawValue], newValue: true) + } } - - private func btnAllFalse() { - isHomeSelected = false - isManagementSelected = false - isChattingSelected = false - isCalendarSelected = false - isEtcSelected = false - } -} - -#Preview { - BottomView() } diff --git a/AcaMate/1. View/12. Main/TopView.swift b/AcaMate/1. View/12. Main/TopView.swift index aee8b74..0ba9352 100644 --- a/AcaMate/1. View/12. Main/TopView.swift +++ b/AcaMate/1. View/12. Main/TopView.swift @@ -8,24 +8,36 @@ import SwiftUI struct TopView: View { + @StateObject var btnVM = ButtonViewModel() + @State var titleName: String = "" + @State var changeLogo: Bool = false + @State var tailLogo: Bool = false + + @State private var leftBtnID = UUID() + @State private var rightBtnID = UUID() + + var myType: UserType = .Teacher var body: some View { HStack(alignment: .center, spacing: 0) { - SimpleBtnView(title: nil, image: Image(.TopBar.face), font: nil, width: 40, height: 40, action: { - - }) - .padding(EdgeInsets(top: 12, leading: 24, bottom: 12, trailing: 12)) + SimpleBtnView(vm: btnVM, id: leftBtnID) + .background { + if let state = btnVM.btnStates[leftBtnID], state.image == nil { + Circle() + .strokeBorder(Color(.Second.normal) ,lineWidth: 4) + .frame(width: 40, height: 40) + } + } + .padding(EdgeInsets(top: 12, leading: 24, bottom: 12, trailing: 12)) + Text("\(titleName)") - .tint(Color(.Text.disabled)) + .foregroundStyle(Color(.Text.detail)) .font(.nps(font: .bold, size: 20)) Spacer() - - SimpleBtnView(title: nil, image: Image(.TopBar.face), font: nil, width: 40, height: 40, action: { - - }) - .hidden() + SimpleBtnView(vm: btnVM, id: rightBtnID) + .padding(EdgeInsets(top: 12, leading: 12, bottom: 12, trailing: 24)) } .background { @@ -34,10 +46,49 @@ struct TopView: View { .ignoresSafeArea(edges: .top) } .frame(maxWidth: .infinity) + .onAppear { + btnVM.btnStates[leftBtnID] = ButtonState() + btnVM.btnStates[rightBtnID] = ButtonState() + + btnVM.setSize(for: leftBtnID, newWidth: 40, newHeight: 40) + btnVM.setSize(for: rightBtnID, newWidth: 40, newHeight: 40) + + if self.myType == .Student { + btnVM.setImage(for: leftBtnID, newImage: Image(.Icon.face)) + } else { + btnVM.setText(for: leftBtnID, + newText: "\(myType.rawValue)", + newFont: .nps(font: .bold, size: 24)) + } + btnVM.setImage(for: rightBtnID, newImage: Image(.Icon.notificationSET)) + } } } -#Preview { - TopView(titleName: "Name") -} +//struct TypeIcon: View { +// var myType: UserType +// +// var body: some View { + +// if self.myType == .Student { + +// SimpleBtnView(image: Image(.Icon.face), title: nil, font: nil, width: 40, height: 40) +// } else { +// SimpleBtnView(image: nil, title: "\(self.myType.rawValue)", font: .nps(font: .bold, size: 24), width: 40, height: 40) +// .doAction { +// printLog("CHECK!!!") +// } +// .setTextColor(.red) +// .setIsUsable(false) + + + +// } + +// } +//} + +//#Preview { +// TopView(titleName: "Name") +//} diff --git a/AcaMate/2. Model/Button State.swift b/AcaMate/2. Model/Button State.swift new file mode 100644 index 0000000..9de8409 --- /dev/null +++ b/AcaMate/2. Model/Button State.swift @@ -0,0 +1,31 @@ +// +// ButtonState.swift +// AcaMate +// +// Created by TAnine on 2/6/25. +// + +import SwiftUI + +struct ButtonState { + var image: Image? = nil + + var title: String? = nil + var font: Font? = nil + + var width: CGFloat = 0 + var height: CGFloat = 0 + + var action: VOID_TO_VOID? = nil + + var textColor: Color = .Text.detail + var isUsable: Bool = true + + // -- CircleBtn 전용 -- // + + var isSelected: Bool = false + var isReverse: Bool = false + + var backColor: Color = .Normal.normal + var foreColor: Color = .Disable.normal +} diff --git a/AcaMate/2. Model/Page Type.swift b/AcaMate/2. Model/Page Type.swift new file mode 100644 index 0000000..ce12720 --- /dev/null +++ b/AcaMate/2. Model/Page Type.swift @@ -0,0 +1,16 @@ +// +// Page Type.swift +// AcaMate +// +// Created by TAnine on 2/6/25. +// + +import Foundation + +enum PageType: Int{ + case Home = 0 + case Management + case Chatting + case Calendar + case Etc +} diff --git a/AcaMate/2. Model/User Type.swift b/AcaMate/2. Model/User Type.swift new file mode 100644 index 0000000..00a348c --- /dev/null +++ b/AcaMate/2. Model/User Type.swift @@ -0,0 +1,17 @@ +// +// UserType.swift +// AcaMate +// +// Created by TAnine on 2/5/25. +// + +import Foundation + +enum UserType: String { + case Student = "S" + case Parent = "P" + case Teacher = "T" + case Admin = "A" + case Employee = "E" + case ETC = "V" +} diff --git a/AcaMate/3. ViewModel/AppViewModel.swift b/AcaMate/3. ViewModel/AppViewModel.swift index 39549ca..8276925 100644 --- a/AcaMate/3. ViewModel/AppViewModel.swift +++ b/AcaMate/3. ViewModel/AppViewModel.swift @@ -12,6 +12,7 @@ class AppViewModel: ObservableObject { @Published var isLoading: Bool = false @Published var showAlert: Bool = false + var alertData: AlertData = .init(body: "") let alertAction = CurrentValueSubject(nil) diff --git a/AcaMate/3. ViewModel/ButtonViewModel.swift b/AcaMate/3. ViewModel/ButtonViewModel.swift new file mode 100644 index 0000000..8dea48e --- /dev/null +++ b/AcaMate/3. ViewModel/ButtonViewModel.swift @@ -0,0 +1,98 @@ +// +// ButtonViewModel.swift +// AcaMate +// +// Created by TAnine on 2/6/25. +// + +import SwiftUI +import Combine + +class ButtonViewModel: ObservableObject { + @Published var btnStates: [UUID: ButtonState] = [:] + + func setImage(for id: UUID, newImage: Image){ + var state = btnStates[id] ?? ButtonState() + state.image = newImage + btnStates[id] = state + objectWillChange.send() + } + + func setText(for id: UUID, newText: String?, newFont: Font?) { + var state = btnStates[id] ?? ButtonState() + + state.title = newText + state.font = newFont + + btnStates[id] = state + objectWillChange.send() + } + + func setSize(for id: UUID, newWidth: CGFloat?, newHeight: CGFloat?){ + var state = btnStates[id] ?? ButtonState() + + state.width = newWidth ?? 0 + state.height = newHeight ?? 0 + + btnStates[id] = state + objectWillChange.send() + } + + func setAction(for id: UUID, newAction: @escaping VOID_TO_VOID) { + var state = btnStates[id] ?? ButtonState() + state.action = newAction + btnStates[id] = state + objectWillChange.send() + } + + func setTextColor(for id: UUID, newColor: Color) { + var state = btnStates[id] ?? ButtonState() + + state.textColor = newColor + + btnStates[id] = state + objectWillChange.send() + } + + func setIsUsable(for id: UUID, newValue: Bool) { + var state = btnStates[id] ?? ButtonState() + state.isUsable = newValue + btnStates[id] = state + objectWillChange.send() + } + + // -- CircleBtn 전용 -- // + + func setIsSelected(for id: UUID, newValue: Bool){ + var state = btnStates[id] ?? ButtonState() + state.isSelected = newValue + state.foreColor = newValue ? Color(.Second.normal) : Color(.Disable.normal) + btnStates[id] = state + objectWillChange.send() + } + + func setIsReverse(for id: UUID, newValue: Bool){ + var state = btnStates[id] ?? ButtonState() + state.isReverse = newValue + state.backColor = newValue ? Color(.Second.light) : Color(.Normal.normal) + btnStates[id] = state + objectWillChange.send() + } + +// func setBackColor(for id: UUID, newColor: Color) { +// var state = btnStates[id] ?? ButtonState() +// +// state.backColor = newColor +// +// btnStates[id] = state +// objectWillChange.send() +// } +// func setForeColor(for id: UUID, newColor: Color) { +// var state = btnStates[id] ?? ButtonState() +// +// state.foreColor = newColor +// +// btnStates[id] = state +// objectWillChange.send() +// } +} diff --git a/AcaMate/5. Modifier/View.swift b/AcaMate/5. Modifier/View.swift index bed4bf6..61fdf47 100644 --- a/AcaMate/5. Modifier/View.swift +++ b/AcaMate/5. Modifier/View.swift @@ -104,4 +104,16 @@ extension View { .mask(shape.fill(LinearGradient(gradient: Gradient(colors: [.black, .clear]), startPoint: .topLeading, endPoint: .bottomTrailing))) } } + + @ViewBuilder + func switchButtonStyle(_ animate: Bool) -> some View { + if animate { + self.buttonStyle(DefaultButtonStyle()) + } else { + self.buttonStyle(PlainButtonStyle()) +// .allowsHitTesting(false) + } + } } + +//extension BUtton diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Back.imageset/Back.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Back.imageset/Back.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Back.imageset/Back.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Back.imageset/Back.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Back.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Back.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Back.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Back.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Calendar.imageset/Calendar.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Calendar.imageset/Calendar.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Calendar.imageset/Calendar.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Calendar.imageset/Calendar.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Calendar.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Calendar.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Calendar.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Calendar.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Chatting.imageset/Chatting.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Chatting.imageset/Chatting.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Chatting.imageset/Chatting.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Chatting.imageset/Chatting.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Chatting.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Chatting.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Chatting.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Chatting.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Edit.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Edit.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Edit.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Edit.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Edit.imageset/Edit.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Edit.imageset/Edit.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Edit.imageset/Edit.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Edit.imageset/Edit.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Etc.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Etc.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Etc.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Etc.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Etc.imageset/Etc.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Etc.imageset/Etc.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Etc.imageset/Etc.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Etc.imageset/Etc.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Face.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Face.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Face.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Face.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Face.imageset/Face.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Face.imageset/Face.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Face.imageset/Face.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Face.imageset/Face.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Home.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Home.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Home.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Home.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Home.imageset/Home.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Home.imageset/Home.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Home.imageset/Home.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Home.imageset/Home.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Management.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Management.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Management.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Management.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Management.imageset/Management.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Management.imageset/Management.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Management.imageset/Management.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Management.imageset/Management.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Market.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Market.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Market.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Market.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Market.imageset/Market.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Market.imageset/Market.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Market.imageset/Market.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Market.imageset/Market.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification OFF.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification OFF.imageset/Contents.json new file mode 100644 index 0000000..529a16e --- /dev/null +++ b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification OFF.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Notification OFF.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification OFF.imageset/Notification OFF.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification OFF.imageset/Notification OFF.png new file mode 100644 index 0000000..f5f2e8a Binary files /dev/null and b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification OFF.imageset/Notification OFF.png differ diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification ON.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification ON.imageset/Contents.json new file mode 100644 index 0000000..2951188 --- /dev/null +++ b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification ON.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Notification ON.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification ON.imageset/Notification ON.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification ON.imageset/Notification ON.png new file mode 100644 index 0000000..de6e20a Binary files /dev/null and b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification ON.imageset/Notification ON.png differ diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification SET.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification SET.imageset/Contents.json new file mode 100644 index 0000000..bcb3bf2 --- /dev/null +++ b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification SET.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Notification SET.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification SET.imageset/Notification SET.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification SET.imageset/Notification SET.png new file mode 100644 index 0000000..ce52e3e Binary files /dev/null and b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Notification SET.imageset/Notification SET.png differ diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Person.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Person.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Person.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Person.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Person.imageset/Person.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Person.imageset/Person.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Person.imageset/Person.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Person.imageset/Person.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Plus.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Plus.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Plus.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Plus.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Plus.imageset/Plus.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Plus.imageset/Plus.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Plus.imageset/Plus.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Plus.imageset/Plus.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Save.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Save.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Save.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Save.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Save.imageset/Save.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Save.imageset/Save.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Save.imageset/Save.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Save.imageset/Save.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Setting.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Setting.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Setting.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Setting.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Setting.imageset/Setting.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Setting.imageset/Setting.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Setting.imageset/Setting.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Setting.imageset/Setting.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/App_Icon.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/App_Icon.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/App_Icon.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/App_Icon.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/App_Icon.imageset/appIcon.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/App_Icon.imageset/appIcon.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/App_Icon.imageset/appIcon.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/App_Icon.imageset/appIcon.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Apple_Icon.imageset/APPLE.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Apple_Icon.imageset/APPLE.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Apple_Icon.imageset/APPLE.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Apple_Icon.imageset/APPLE.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Apple_Icon.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Apple_Icon.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Apple_Icon.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Apple_Icon.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/BottomBar/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Kakao_Icon.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Kakao_Icon.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Kakao_Icon.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Kakao_Icon.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Kakao_Icon.imageset/KAKAO.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Kakao_Icon.imageset/KAKAO.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Kakao_Icon.imageset/KAKAO.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Kakao_Icon.imageset/KAKAO.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/MI.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/MI.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/MI.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/MI.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/MI.imageset/MI.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/MI.imageset/MI.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/MI.imageset/MI.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/MI.imageset/MI.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Page_Icon.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Page_Icon.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Page_Icon.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Page_Icon.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Page_Icon.imageset/PageIcon.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Page_Icon.imageset/PageIcon.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Page_Icon.imageset/PageIcon.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Page_Icon.imageset/PageIcon.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Team_Icon.imageset/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Team_Icon.imageset/Contents.json similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Team_Icon.imageset/Contents.json rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Team_Icon.imageset/Contents.json diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Team_Icon.imageset/TeamIcon.png b/AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Team_Icon.imageset/TeamIcon.png similarity index 100% rename from AcaMate/6. Resources/Assets.xcassets/Image Folder/Icon/Team_Icon.imageset/TeamIcon.png rename to AcaMate/6. Resources/Assets.xcassets/Image Folder/Logo/Team_Icon.imageset/TeamIcon.png diff --git a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Contents.json b/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Contents.json deleted file mode 100644 index 6e96565..0000000 --- a/AcaMate/6. Resources/Assets.xcassets/Image Folder/TopBar/Contents.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "provides-namespace" : true - } -} diff --git a/AcaMate/6. Resources/Images/TopBar/Back.png b/AcaMate/6. Resources/Images/Icon/Back.png similarity index 100% rename from AcaMate/6. Resources/Images/TopBar/Back.png rename to AcaMate/6. Resources/Images/Icon/Back.png diff --git a/AcaMate/6. Resources/Images/TopBar/Edit.png b/AcaMate/6. Resources/Images/Icon/Edit.png similarity index 100% rename from AcaMate/6. Resources/Images/TopBar/Edit.png rename to AcaMate/6. Resources/Images/Icon/Edit.png diff --git a/AcaMate/6. Resources/Images/TopBar/Face.png b/AcaMate/6. Resources/Images/Icon/Face.png similarity index 100% rename from AcaMate/6. Resources/Images/TopBar/Face.png rename to AcaMate/6. Resources/Images/Icon/Face.png diff --git a/AcaMate/6. Resources/Images/TopBar/Market.png b/AcaMate/6. Resources/Images/Icon/Market.png similarity index 100% rename from AcaMate/6. Resources/Images/TopBar/Market.png rename to AcaMate/6. Resources/Images/Icon/Market.png diff --git a/AcaMate/6. Resources/Images/Icon/Notification OFF.png b/AcaMate/6. Resources/Images/Icon/Notification OFF.png new file mode 100644 index 0000000..f5f2e8a Binary files /dev/null and b/AcaMate/6. Resources/Images/Icon/Notification OFF.png differ diff --git a/AcaMate/6. Resources/Images/Icon/Notification ON.png b/AcaMate/6. Resources/Images/Icon/Notification ON.png new file mode 100644 index 0000000..de6e20a Binary files /dev/null and b/AcaMate/6. Resources/Images/Icon/Notification ON.png differ diff --git a/AcaMate/6. Resources/Images/Icon/Notification SET.png b/AcaMate/6. Resources/Images/Icon/Notification SET.png new file mode 100644 index 0000000..ce52e3e Binary files /dev/null and b/AcaMate/6. Resources/Images/Icon/Notification SET.png differ diff --git a/AcaMate/6. Resources/Images/TopBar/Person.png b/AcaMate/6. Resources/Images/Icon/Person.png similarity index 100% rename from AcaMate/6. Resources/Images/TopBar/Person.png rename to AcaMate/6. Resources/Images/Icon/Person.png diff --git a/AcaMate/6. Resources/Images/TopBar/Plus.png b/AcaMate/6. Resources/Images/Icon/Plus.png similarity index 100% rename from AcaMate/6. Resources/Images/TopBar/Plus.png rename to AcaMate/6. Resources/Images/Icon/Plus.png diff --git a/AcaMate/6. Resources/Images/TopBar/Save.png b/AcaMate/6. Resources/Images/Icon/Save.png similarity index 100% rename from AcaMate/6. Resources/Images/TopBar/Save.png rename to AcaMate/6. Resources/Images/Icon/Save.png diff --git a/AcaMate/6. Resources/Images/TopBar/Setting.png b/AcaMate/6. Resources/Images/Icon/Setting.png similarity index 100% rename from AcaMate/6. Resources/Images/TopBar/Setting.png rename to AcaMate/6. Resources/Images/Icon/Setting.png diff --git a/AcaMate/6. Resources/Images/Icon/APPLE.png b/AcaMate/6. Resources/Images/Logo/APPLE.png similarity index 100% rename from AcaMate/6. Resources/Images/Icon/APPLE.png rename to AcaMate/6. Resources/Images/Logo/APPLE.png diff --git a/AcaMate/6. Resources/Images/Icon/KAKAO.png b/AcaMate/6. Resources/Images/Logo/KAKAO.png similarity index 100% rename from AcaMate/6. Resources/Images/Icon/KAKAO.png rename to AcaMate/6. Resources/Images/Logo/KAKAO.png diff --git a/AcaMate/6. Resources/Images/Icon/LOGO.png b/AcaMate/6. Resources/Images/Logo/LOGO.png similarity index 100% rename from AcaMate/6. Resources/Images/Icon/LOGO.png rename to AcaMate/6. Resources/Images/Logo/LOGO.png diff --git a/AcaMate/6. Resources/Images/Icon/MI.png b/AcaMate/6. Resources/Images/Logo/MI.png similarity index 100% rename from AcaMate/6. Resources/Images/Icon/MI.png rename to AcaMate/6. Resources/Images/Logo/MI.png diff --git a/AcaMate/6. Resources/Images/Icon/PageIcon.png b/AcaMate/6. Resources/Images/Logo/PageIcon.png similarity index 100% rename from AcaMate/6. Resources/Images/Icon/PageIcon.png rename to AcaMate/6. Resources/Images/Logo/PageIcon.png diff --git a/AcaMate/6. Resources/Images/Icon/TeamIcon.png b/AcaMate/6. Resources/Images/Logo/TeamIcon.png similarity index 100% rename from AcaMate/6. Resources/Images/Icon/TeamIcon.png rename to AcaMate/6. Resources/Images/Logo/TeamIcon.png diff --git a/AcaMate/6. Resources/Images/Icon/appIcon.png b/AcaMate/6. Resources/Images/Logo/appIcon.png similarity index 100% rename from AcaMate/6. Resources/Images/Icon/appIcon.png rename to AcaMate/6. Resources/Images/Logo/appIcon.png diff --git a/AcaMate/LaunchScreen.storyboard b/AcaMate/LaunchScreen.storyboard index cb28862..a412ffc 100644 --- a/AcaMate/LaunchScreen.storyboard +++ b/AcaMate/LaunchScreen.storyboard @@ -1,5 +1,5 @@ - + @@ -39,7 +39,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -83,8 +83,8 @@ - - + +