From c23df63b6dffedb21c512f08dd6b53f51d55d534 Mon Sep 17 00:00:00 2001 From: yangg0228 Date: Fri, 22 May 2020 19:54:00 +0900 Subject: [PATCH] =?UTF-8?q?4=EC=B0=A8=EA=B3=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS_Week1_Exercise_Login/.DS_Store | Bin 6148 -> 8196 bytes iOS_Week1_Exercise_Login/Podfile | 11 ++ iOS_Week1_Exercise_Login/Podfile.lock | 22 +++ .../project.pbxproj | 96 ++++++++++- .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../Base.lproj/Main.storyboard | 15 ++ .../iOS_Week1_Exercise_Login/Info.plist | 5 + .../Resource/APIConstants.swift | 14 ++ .../Resource/LoginService.swift | 49 ++++++ .../Resource/NetworkResult.swift | 17 ++ .../Resource/SigninData.swift | 35 ++++ .../VC/LoginViewController.swift | 25 ++- iOS_Week2_3_assignment/.DS_Store | Bin 6148 -> 8196 bytes iOS_Week2_3_assignment/Podfile | 12 ++ iOS_Week2_3_assignment/Podfile.lock | 22 +++ .../project.pbxproj | 152 +++++++++++++++--- .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../{Supports => }/Info.plist | 5 + .../Assets.xcassets/1.imageset/1.png | Bin .../Assets.xcassets/1.imageset/1@2x.png | Bin .../Assets.xcassets/1.imageset/1@3x.png | Bin .../Assets.xcassets/1.imageset/Contents.json | 0 .../Assets.xcassets/1558.imageset/1558.png | Bin .../Assets.xcassets/1558.imageset/1558@2x.png | Bin .../Assets.xcassets/1558.imageset/1558@3x.png | Bin .../1558.imageset/Contents.json | 0 .../Assets.xcassets/1559.imageset/1559.png | Bin .../Assets.xcassets/1559.imageset/1559@2x.png | Bin .../Assets.xcassets/1559.imageset/1559@3x.png | Bin .../1559.imageset/Contents.json | 0 .../Assets.xcassets/1560.imageset/1560.png | Bin .../Assets.xcassets/1560.imageset/1560@2x.png | Bin .../Assets.xcassets/1560.imageset/1560@3x.png | Bin .../1560.imageset/Contents.json | 0 .../Assets.xcassets/1562.imageset/1562.png | Bin .../Assets.xcassets/1562.imageset/1562@2x.png | Bin .../Assets.xcassets/1562.imageset/1562@3x.png | Bin .../1562.imageset/Contents.json | 0 .../Assets.xcassets/1563.imageset/1563.png | Bin .../Assets.xcassets/1563.imageset/1563@2x.png | Bin .../Assets.xcassets/1563.imageset/1563@3x.png | Bin .../1563.imageset/Contents.json | 0 .../Assets.xcassets/477.imageset/477.png | Bin .../Assets.xcassets/477.imageset/477@2x.png | Bin .../Assets.xcassets/477.imageset/477@3x.png | Bin .../477.imageset/Contents.json | 0 ...5425230637911275922235726328076697600N.png | Bin ...5230637911275922235726328076697600N@2x.png | Bin ...5230637911275922235726328076697600N@3x.png | Bin .../Contents.json | 0 ...3125230634377942948539378523368849408N.png | Bin ...5230634377942948539378523368849408N@2x.png | Bin ...5230634377942948539378523368849408N@3x.png | Bin .../Contents.json | 0 ...0125230618377944548520091676373417984N.png | Bin ...5230618377944548520091676373417984N@2x.png | Bin ...5230618377944548520091676373417984N@3x.png | Bin .../Contents.json | 0 ...0325230625777943802058411231781322752N.png | Bin ...5230625777943802058411231781322752N@2x.png | Bin ...5230625777943802058411231781322752N@3x.png | Bin .../Contents.json | 0 ...0225230627344610312982063520952090624N.png | Bin ...5230627344610312982063520952090624N@2x.png | Bin ...5230627344610312982063520952090624N@3x.png | Bin .../Contents.json | 0 ...4625230618844611168856475911587889152N.png | Bin ...5230618844611168856475911587889152N@2x.png | Bin ...5230618844611168856475911587889152N@3x.png | Bin .../Contents.json | 0 .../AppIcon.appiconset/Contents.json | 0 .../Assets.xcassets/Contents.json | 0 .../backIndicator.imageset/Contents.json | 0 .../backIndicator-1.png | Bin .../backIndicator-2.png | Bin .../backIndicator.imageset/backIndicator.png | Bin .../correct.imageset/Contents.json | 0 .../correct.imageset/correct.png | Bin .../correct.imageset/correct@2x.png | Bin .../correct.imageset/correct@3x.png | Bin .../idcheckGreenIc.imageset/Contents.json | 0 .../idcheckGreenIc.png | Bin .../idcheckGreenIc@2x.png | Bin .../idcheckGreenIc@3x.png | Bin .../imgLoginLine.imageset/Contents.json | 0 .../imgLoginLine.imageset/imgLoginLine.png | Bin .../imgLoginLine.imageset/imgLoginLine@2x.png | Bin .../imgLoginLine.imageset/imgLoginLine@3x.png | Bin .../oursoptBgImg.imageset/Contents.json | 0 .../oursoptBgImg.imageset/oursoptBgImg.png | Bin .../oursoptBgImg.imageset/oursoptBgImg@2x.png | Bin .../oursoptBgImg.imageset/oursoptBgImg@3x.png | Bin ...6432601742940168682793295078318145536N.png | Bin ...2601742940168682793295078318145536N@2x.png | Bin ...2601742940168682793295078318145536N@3x.png | Bin .../profile0Img.imageset/Contents.json | 0 .../profile1Img.imageset/Contents.json | 0 .../profile1Img.imageset/profile1Img.png | Bin .../profile1Img.imageset/profile1Img@2x.png | Bin .../profile1Img.imageset/profile1Img@3x.png | Bin .../profile2Img.imageset/Contents.json | 0 .../profile2Img.imageset/profile2Img.png | Bin .../profile2Img.imageset/profile2Img@2x.png | Bin .../profile2Img.imageset/profile2Img@3x.png | Bin .../profile3Img.imageset/Contents.json | 0 .../profile3Img.imageset/profile3Img.png | Bin .../profile3Img.imageset/profile3Img@2x.png | Bin .../profile3Img.imageset/profile3Img@3x.png | Bin .../profile4Img.imageset/Contents.json | 0 .../profile4Img.imageset/profile4Img.png | Bin .../profile4Img.imageset/profile4Img@2x.png | Bin .../profile4Img.imageset/profile4Img@3x.png | Bin .../profile5Img.imageset/Contents.json | 0 .../profile5Img.imageset/profile5Img.png | Bin .../profile5Img.imageset/profile5Img@2x.png | Bin .../profile5Img.imageset/profile5Img@3x.png | Bin .../profile6Img.imageset/Contents.json | 0 .../profile6Img.imageset/profile6Img.png | Bin .../profile6Img.imageset/profile6Img@2x.png | Bin .../profile6Img.imageset/profile6Img@3x.png | Bin .../profile7Img.imageset/Contents.json | 0 .../profile7Img.imageset/profile7Img.png | Bin .../profile7Img.imageset/profile7Img@2x.png | Bin .../profile7Img.imageset/profile7Img@3x.png | Bin .../profile8Img.imageset/Contents.json | 0 .../profile8Img.imageset/profile8Img.png | Bin .../profile8Img.imageset/profile8Img@2x.png | Bin .../profile8Img.imageset/profile8Img@3x.png | Bin .../profile9Img.imageset/Contents.json | 0 .../profile9Img.imageset/profile9Img.png | Bin .../profile9Img.imageset/profile9Img@2x.png | Bin .../profile9Img.imageset/profile9Img@3x.png | Bin .../soptJoinLogo.imageset/Contents.json | 0 .../soptJoinLogo.imageset/soptJoinLogo.png | Bin .../soptJoinLogo.imageset/soptJoinLogo@2x.png | Bin .../soptJoinLogo.imageset/soptJoinLogo@3x.png | Bin .../soptLogo.imageset/Contents.json | 0 .../soptLogo.imageset/soptLogo.png | Bin .../soptLogo.imageset/soptLogo@2x.png | Bin .../soptLogo.imageset/soptLogo@3x.png | Bin .../Extensions+UIColor.swift | 0 .../Resource/LoginService.swift | 48 ++++++ .../Resource/Network/APIConstants.swift | 15 ++ .../Resource/NetworkResult.swift | 16 ++ .../Resource/SigninData.swift | 34 ++++ .../Resource/SignupData.swift | 28 ++++ .../Resource/SignupService.swift | 49 ++++++ .../Base.lproj/LaunchScreen.storyboard | 0 .../StoryBoard}/Base.lproj/Main.storyboard | 146 +++++++++++------ .../View => Source}/Cells/ProfileCell.swift | 0 .../Delgates/AppDelegate.swift | 0 .../Delgates/SceneDelegate.swift | 0 .../{Scenes => Source}/Friends.swift | 0 .../FriendViewController.swift | 0 .../ViewControllers/LoginViewController.swift | 48 +++++- .../Source/ViewControllers/SignUpVC.swift | 94 +++++++++++ .../SignUpViewController.swift | 12 +- .../ViewControllers/SoptVC.swift | 0 160 files changed, 920 insertions(+), 86 deletions(-) create mode 100644 iOS_Week1_Exercise_Login/Podfile create mode 100644 iOS_Week1_Exercise_Login/Podfile.lock create mode 100644 iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcworkspace/contents.xcworkspacedata create mode 100644 iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/APIConstants.swift create mode 100644 iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/LoginService.swift create mode 100644 iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/NetworkResult.swift create mode 100644 iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/SigninData.swift create mode 100644 iOS_Week2_3_assignment/Podfile create mode 100644 iOS_Week2_3_assignment/Podfile.lock create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcworkspace/contents.xcworkspacedata create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => }/Info.plist (95%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1.imageset/1.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1.imageset/1@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1.imageset/1@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1558.imageset/1558.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1558.imageset/1558@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1558.imageset/1558@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1558.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1559.imageset/1559.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1559.imageset/1559@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1559.imageset/1559@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1559.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1560.imageset/1560.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1560.imageset/1560@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1560.imageset/1560@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1560.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1562.imageset/1562.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1562.imageset/1562@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1562.imageset/1562@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1562.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1563.imageset/1563.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1563.imageset/1563@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1563.imageset/1563@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/1563.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/477.imageset/477.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/477.imageset/477@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/477.imageset/477@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/477.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/backIndicator.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/backIndicator.imageset/backIndicator-1.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/backIndicator.imageset/backIndicator-2.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/backIndicator.imageset/backIndicator.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/correct.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/correct.imageset/correct.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/correct.imageset/correct@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/correct.imageset/correct@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/idcheckGreenIc.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/imgLoginLine.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/imgLoginLine.imageset/imgLoginLine.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/oursoptBgImg.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile0Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile1Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile1Img.imageset/profile1Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile1Img.imageset/profile1Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile1Img.imageset/profile1Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile2Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile2Img.imageset/profile2Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile2Img.imageset/profile2Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile2Img.imageset/profile2Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile3Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile3Img.imageset/profile3Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile3Img.imageset/profile3Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile3Img.imageset/profile3Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile4Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile4Img.imageset/profile4Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile4Img.imageset/profile4Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile4Img.imageset/profile4Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile5Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile5Img.imageset/profile5Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile5Img.imageset/profile5Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile5Img.imageset/profile5Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile6Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile6Img.imageset/profile6Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile6Img.imageset/profile6Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile6Img.imageset/profile6Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile7Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile7Img.imageset/profile7Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile7Img.imageset/profile7Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile7Img.imageset/profile7Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile8Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile8Img.imageset/profile8Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile8Img.imageset/profile8Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile8Img.imageset/profile8Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile9Img.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile9Img.imageset/profile9Img.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile9Img.imageset/profile9Img@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/profile9Img.imageset/profile9Img@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/soptJoinLogo.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/soptLogo.imageset/Contents.json (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/soptLogo.imageset/soptLogo.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/soptLogo.imageset/soptLogo@2x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Assets.xcassets/soptLogo.imageset/soptLogo@3x.png (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Resource}/Extensions+UIColor.swift (100%) create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/LoginService.swift create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Network/APIConstants.swift create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/NetworkResult.swift create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SigninData.swift create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupData.swift create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupService.swift rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Scenes => Resource/StoryBoard}/Base.lproj/LaunchScreen.storyboard (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Scenes => Resource/StoryBoard}/Base.lproj/Main.storyboard (83%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Scenes/View => Source}/Cells/ProfileCell.swift (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Source}/Delgates/AppDelegate.swift (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Supports => Source}/Delgates/SceneDelegate.swift (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Scenes => Source}/Friends.swift (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Scenes/View => Source}/ViewControllers/FriendViewController.swift (100%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Scenes/View => Source}/ViewControllers/LoginViewController.swift (50%) create mode 100644 iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/SignUpVC.swift rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Scenes/View => Source}/ViewControllers/SignUpViewController.swift (85%) rename iOS_Week2_3_assignment/iOS_Week2_3_assignment/{Scenes/View => Source}/ViewControllers/SoptVC.swift (100%) diff --git a/iOS_Week1_Exercise_Login/.DS_Store b/iOS_Week1_Exercise_Login/.DS_Store index 2a56094ab068fe9e1542352753be9bf9681425c0..f0d6ca9692465aae6c5f10ad25202d05a7b304e7 100644 GIT binary patch delta 316 zcmZoMXmOBWU|?W$DortDU;r^WfEYvza8E20o2aMA$g?qEH}hr%jz7$c**Q2SHn1@A zOy*&6W_1E8Qr{fHBG1gIGWh_Td3`xUK0^^hHbXH(0Yf4~GDE6oPJVJyPJR-|G@u=y zfwabdFaWX`7}yyCfI3nb(ik!saxhejqp9XWRn4FW)RPaiB^zdo6;K1v8U|}1o`GZy z3shq(JnZpbKnY>LK delta 113 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50$jGrVU^g=($7CJ>XI5*VgvRC& y0eR+$rBfEOb8rYU14V#9fE!4-f^=;x{LVa?U&a$;1_KksJdhO(o8x)rFarPs`Vm+F diff --git a/iOS_Week1_Exercise_Login/Podfile b/iOS_Week1_Exercise_Login/Podfile new file mode 100644 index 0000000..579ec3d --- /dev/null +++ b/iOS_Week1_Exercise_Login/Podfile @@ -0,0 +1,11 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'iOS_Week1_Exercise_Login' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for iOS_Week1_Exercise_Login + pod 'Alamofire', '~> 4.8.2' + pod 'Kingfisher', '~> 5.0' +end diff --git a/iOS_Week1_Exercise_Login/Podfile.lock b/iOS_Week1_Exercise_Login/Podfile.lock new file mode 100644 index 0000000..485504d --- /dev/null +++ b/iOS_Week1_Exercise_Login/Podfile.lock @@ -0,0 +1,22 @@ +PODS: + - Alamofire (4.8.2) + - Kingfisher (5.14.0): + - Kingfisher/Core (= 5.14.0) + - Kingfisher/Core (5.14.0) + +DEPENDENCIES: + - Alamofire (~> 4.8.2) + - Kingfisher (~> 5.0) + +SPEC REPOS: + trunk: + - Alamofire + - Kingfisher + +SPEC CHECKSUMS: + Alamofire: ae5c501addb7afdbb13687d7f2f722c78734c2d3 + Kingfisher: 7b64389a43139c903ec434788344c288217c792d + +PODFILE CHECKSUM: b6ab108c6bf59e4a237a898ad00979def63c26b6 + +COCOAPODS: 1.9.1 diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcodeproj/project.pbxproj b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcodeproj/project.pbxproj index 561f9c1..5114721 100644 --- a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcodeproj/project.pbxproj +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcodeproj/project.pbxproj @@ -3,10 +3,11 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ + 349659700DBA20FCFD366532 /* Pods_iOS_Week1_Exercise_Login.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E2DFE169092531CCCFF6462 /* Pods_iOS_Week1_Exercise_Login.framework */; }; CC2A6928244AEA7F00379EA9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2A6927244AEA7F00379EA9 /* AppDelegate.swift */; }; CC2A692A244AEA7F00379EA9 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2A6929244AEA7F00379EA9 /* SceneDelegate.swift */; }; CC2A692C244AEA7F00379EA9 /* SignUpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2A692B244AEA7F00379EA9 /* SignUpViewController.swift */; }; @@ -15,9 +16,16 @@ CC2A6934244AEA8200379EA9 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CC2A6932244AEA8200379EA9 /* LaunchScreen.storyboard */; }; CC2A693C244AF1D100379EA9 /* LogoutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2A693B244AF1D100379EA9 /* LogoutViewController.swift */; }; CC2A693E244AF67F00379EA9 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2A693D244AF67F00379EA9 /* LoginViewController.swift */; }; + CCD627B4246FBBB700B6E6AF /* APIConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627B3246FBBB700B6E6AF /* APIConstants.swift */; }; + CCD627B6246FBE4F00B6E6AF /* SigninData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627B5246FBE4F00B6E6AF /* SigninData.swift */; }; + CCD627B8246FBFC400B6E6AF /* NetworkResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627B7246FBFC400B6E6AF /* NetworkResult.swift */; }; + CCD627BA246FC57F00B6E6AF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627B9246FC57F00B6E6AF /* LoginService.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 4E2DFE169092531CCCFF6462 /* Pods_iOS_Week1_Exercise_Login.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_Week1_Exercise_Login.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4E674989BED31BCEC55105C0 /* Pods-iOS_Week1_Exercise_Login.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS_Week1_Exercise_Login.debug.xcconfig"; path = "Target Support Files/Pods-iOS_Week1_Exercise_Login/Pods-iOS_Week1_Exercise_Login.debug.xcconfig"; sourceTree = ""; }; + 6E8DF582EB3CCA5B78D044AF /* Pods-iOS_Week1_Exercise_Login.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS_Week1_Exercise_Login.release.xcconfig"; path = "Target Support Files/Pods-iOS_Week1_Exercise_Login/Pods-iOS_Week1_Exercise_Login.release.xcconfig"; sourceTree = ""; }; CC2A6924244AEA7F00379EA9 /* iOS_Week1_Exercise_Login.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iOS_Week1_Exercise_Login.app; sourceTree = BUILT_PRODUCTS_DIR; }; CC2A6927244AEA7F00379EA9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; CC2A6929244AEA7F00379EA9 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -28,6 +36,10 @@ CC2A6935244AEA8200379EA9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; CC2A693B244AF1D100379EA9 /* LogoutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogoutViewController.swift; sourceTree = ""; }; CC2A693D244AF67F00379EA9 /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; + CCD627B3246FBBB700B6E6AF /* APIConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIConstants.swift; sourceTree = ""; }; + CCD627B5246FBE4F00B6E6AF /* SigninData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SigninData.swift; sourceTree = ""; }; + CCD627B7246FBFC400B6E6AF /* NetworkResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkResult.swift; sourceTree = ""; }; + CCD627B9246FC57F00B6E6AF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -35,17 +47,37 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 349659700DBA20FCFD366532 /* Pods_iOS_Week1_Exercise_Login.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 5358251427CF75479FCD770A /* Pods */ = { + isa = PBXGroup; + children = ( + 4E674989BED31BCEC55105C0 /* Pods-iOS_Week1_Exercise_Login.debug.xcconfig */, + 6E8DF582EB3CCA5B78D044AF /* Pods-iOS_Week1_Exercise_Login.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + B4FC0AE0716C13BEBDC48EC5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4E2DFE169092531CCCFF6462 /* Pods_iOS_Week1_Exercise_Login.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; CC2A691B244AEA7F00379EA9 = { isa = PBXGroup; children = ( CC2A6926244AEA7F00379EA9 /* iOS_Week1_Exercise_Login */, CC2A6925244AEA7F00379EA9 /* Products */, + 5358251427CF75479FCD770A /* Pods */, + B4FC0AE0716C13BEBDC48EC5 /* Frameworks */, ); sourceTree = ""; }; @@ -60,6 +92,7 @@ CC2A6926244AEA7F00379EA9 /* iOS_Week1_Exercise_Login */ = { isa = PBXGroup; children = ( + CCD627BB246FC59000B6E6AF /* Resource */, CC2A693F244AFD4E00379EA9 /* VC */, CC2A6927244AEA7F00379EA9 /* AppDelegate.swift */, CC2A6929244AEA7F00379EA9 /* SceneDelegate.swift */, @@ -81,6 +114,17 @@ path = VC; sourceTree = ""; }; + CCD627BB246FC59000B6E6AF /* Resource */ = { + isa = PBXGroup; + children = ( + CCD627B3246FBBB700B6E6AF /* APIConstants.swift */, + CCD627B5246FBE4F00B6E6AF /* SigninData.swift */, + CCD627B7246FBFC400B6E6AF /* NetworkResult.swift */, + CCD627B9246FC57F00B6E6AF /* LoginService.swift */, + ); + path = Resource; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -88,9 +132,11 @@ isa = PBXNativeTarget; buildConfigurationList = CC2A6938244AEA8200379EA9 /* Build configuration list for PBXNativeTarget "iOS_Week1_Exercise_Login" */; buildPhases = ( + 2524AC933647951BF76E8A5A /* [CP] Check Pods Manifest.lock */, CC2A6920244AEA7F00379EA9 /* Sources */, CC2A6921244AEA7F00379EA9 /* Frameworks */, CC2A6922244AEA7F00379EA9 /* Resources */, + C6A05B0A0E0515B1F62A900B /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -147,6 +193,48 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 2524AC933647951BF76E8A5A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-iOS_Week1_Exercise_Login-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C6A05B0A0E0515B1F62A900B /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iOS_Week1_Exercise_Login/Pods-iOS_Week1_Exercise_Login-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iOS_Week1_Exercise_Login/Pods-iOS_Week1_Exercise_Login-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iOS_Week1_Exercise_Login/Pods-iOS_Week1_Exercise_Login-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ CC2A6920244AEA7F00379EA9 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -154,9 +242,13 @@ files = ( CC2A692C244AEA7F00379EA9 /* SignUpViewController.swift in Sources */, CC2A6928244AEA7F00379EA9 /* AppDelegate.swift in Sources */, + CCD627B4246FBBB700B6E6AF /* APIConstants.swift in Sources */, CC2A693C244AF1D100379EA9 /* LogoutViewController.swift in Sources */, + CCD627BA246FC57F00B6E6AF /* LoginService.swift in Sources */, + CCD627B6246FBE4F00B6E6AF /* SigninData.swift in Sources */, CC2A693E244AF67F00379EA9 /* LoginViewController.swift in Sources */, CC2A692A244AEA7F00379EA9 /* SceneDelegate.swift in Sources */, + CCD627B8246FBFC400B6E6AF /* NetworkResult.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -298,6 +390,7 @@ }; CC2A6939244AEA8200379EA9 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 4E674989BED31BCEC55105C0 /* Pods-iOS_Week1_Exercise_Login.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; @@ -315,6 +408,7 @@ }; CC2A693A244AEA8200379EA9 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 6E8DF582EB3CCA5B78D044AF /* Pods-iOS_Week1_Exercise_Login.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcworkspace/contents.xcworkspacedata b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..24b0958 --- /dev/null +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Base.lproj/Main.storyboard b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Base.lproj/Main.storyboard index a5554d1..0197a19 100644 --- a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Base.lproj/Main.storyboard +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Base.lproj/Main.storyboard @@ -66,6 +66,7 @@ + @@ -137,6 +138,20 @@ + + diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Info.plist b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Info.plist index 2a3483c..694c475 100644 --- a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Info.plist +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Info.plist @@ -2,6 +2,11 @@ + NSAppTransportSecurity + + NSAllowsArbitraryLoads + YES + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/APIConstants.swift b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/APIConstants.swift new file mode 100644 index 0000000..7daeb7d --- /dev/null +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/APIConstants.swift @@ -0,0 +1,14 @@ +// +// APIConstants.swift +// iOS_Week1_Exercise_Login +// +// Created by 양지영 on 2020/05/16. +// Copyright © 2020 양지영. All rights reserved. +// +import Foundation + +struct APIConstants { + static let baseURL = "http://13.209.144.115:3333" + static let signinURL = APIConstants.baseURL + "/user/signin" + static let signupURL = APIConstants.baseURL + "/user/signup" +} diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/LoginService.swift b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/LoginService.swift new file mode 100644 index 0000000..754fd30 --- /dev/null +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/LoginService.swift @@ -0,0 +1,49 @@ +// +// LoginService.swift +// iOS_Week1_Exercise_Login +// +// Created by 양지영 on 2020/05/16. +// Copyright © 2020 양지영. All rights reserved. +// + +import Foundation +import Alamofire + +struct LoginService { + static let shared = LoginService() // shared:전역으로 사용가능, static let어디서든 접근 가능 + private func makeParameter(_ id: String, _ pwd: String) -> Parameters { + return ["id": id, "password":pwd] + } + func login(id: String, pwd: String, completion: @escaping (NetworkResult) -> Void) { + let header: HTTPHeaders = ["Content-Type": "application/json"] //httpheaders는 alanmofire 레퍼런스 + // 요청에해당하는 객체 생성 + let dataRequest = Alamofire.request(APIConstants.signinURL, method: .post, parameters: makeParameter(id, pwd), encoding: JSONEncoding.default, headers: header) + //데이터 통신시작 + dataRequest.responseData { dataResponse in + switch dataResponse.result { + case .success: + // statuscode를 헤더에 넣을경우 분기처리 적게해서 더 좋음(?), 지금은 쪼개면서 2번 분기처리 + guard let statusCode = dataResponse.response?.statusCode else { return } + guard let value = dataResponse.result.value else { return } + let networkResult = self.judge(by: statusCode, value) + completion(networkResult) + case .failure: completion(.networkFail) + } + } + } + private func judge(by statusCode: Int, _ data: Data) -> NetworkResult { + switch statusCode { + case 200: return isUser(by: data) //데이터를 넣어서 판단 시작 + case 400: return .pathErr + case 500: return .serverErr + default: return .networkFail + } + } + // 디코딩해줄 객체 + private func isUser(by data: Data) -> NetworkResult { + let decoder = JSONDecoder() + guard let decodedData = try? decoder.decode(SigininData.self, from: data) else { return .pathErr } + guard let tokenData = decodedData.data else { return .requestErr(decodedData.message) } + return .success(tokenData.jwt) + } +} diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/NetworkResult.swift b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/NetworkResult.swift new file mode 100644 index 0000000..9524c03 --- /dev/null +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/NetworkResult.swift @@ -0,0 +1,17 @@ +// +// NetworkResult.swift +// iOS_Week1_Exercise_Login +// +// Created by 양지영 on 2020/05/16. +// Copyright © 2020 양지영. All rights reserved. +// + +import Foundation + +enum NetworkResult { + case success(T) + case requestErr(T) + case pathErr + case serverErr + case networkFail +} diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/SigninData.swift b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/SigninData.swift new file mode 100644 index 0000000..3834f7a --- /dev/null +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/Resource/SigninData.swift @@ -0,0 +1,35 @@ +// +// SigninData.swift +// iOS_Week1_Exercise_Login +// +// Created by 양지영 on 2020/05/16. +// Copyright © 2020 양지영. All rights reserved. +// + +import Foundation + +struct SiginData: Codable { //인코딩, 디코딩 모두 가능하도록 + // 앞에 key 값만 같으면 됨 + var status: Int + var success: Bool + var message: String + var data: TokenData? // 실패했을 경우 nil 처리 해주기 위함 + + enum CodingKeys: String, CodingKey { // 중요!!! + case status = "status" + case success = "success" + case message = "message" + case data = "data" + } + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + status = (try? values.decode(Int.self, forKey: .status)) ?? -1 + success = (try? values.decode(Bool.self, forKey: .success)) ?? false + message = (try? values.decode(String.self, forKey: .message)) ?? "" + data = (try? values.decode(TokenData.self, forKey: .data)) ?? nil + } +} + +struct TokenData: Codable { + var jwt: String +} diff --git a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/VC/LoginViewController.swift b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/VC/LoginViewController.swift index 10a635d..0ea7494 100644 --- a/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/VC/LoginViewController.swift +++ b/iOS_Week1_Exercise_Login/iOS_Week1_Exercise_Login/VC/LoginViewController.swift @@ -37,5 +37,28 @@ class LoginViewController: UIViewController { self.present(receiveViewController, animated: true, completion: nil) } - + @IBAction func login(_ sender: Any) { + guard let inputID = idTextField.text else { return } + guard let inputPWD = pwdTextField.text else { return } + + LoginService.shared.login(id: inputID, pwd: inputPWD) { networkResult in + switch networkResult { + case .success(let token): + guard let token = token as? String else { return } + UserDefaults.standard.set(token, forKey: "token") + guard let tabbarController = self.storyboard?.instantiateViewController(identifier: + "customTabbarController") as? UITabBarController else { return } + tabbarController.modalPresentationStyle = .fullScreen + self.present(tabbarController, animated: true, completion: nil) + + case .requestErr(let message): + guard let message = message as? String else { return } + let alertViewController = UIAlertController(title: "로그인 실패", message: message, preferredStyle: .alert) + let action = UIAlertAction(title: "확인", style: .cancel, handler: nil) + alertViewController.addAction(action) + self.present(alertViewController, animated: true, completion: nil) + case .pathErr: print("path") + case .serverErr: print("serverErr") case .networkFail: print("networkFail") } + } + } } diff --git a/iOS_Week2_3_assignment/.DS_Store b/iOS_Week2_3_assignment/.DS_Store index 823dad8013ec28cd05ec000fff56bee60d06d732..7ce62b06db39ddbac3c98d6c940dfea764e1994e 100644 GIT binary patch literal 8196 zcmeHM-Hy^g82x4!-GUm4YlO?j#Ka3?V0T?Ej0r)!*u?0@8uvmCTPO>4OG{{3RK#%O zJE(8qt#9EI_#i%jp81iK0#V$=7@cWm&dl^X-^`rp4__f7RvkDcqC629$Q-lhP%KFN zJkN7!P4!#^GVqBGsD=S^=$qRzNGD75Ezzz&o2KW6678p4FvRKr8TH zD!`u)CNjs0!ihxj=s+Pt0ALE;BB72rKyXZj6@?Rtf(oB9dSHsmREWVO9p_DM4y-7g zNR)J9l1@yG%v6NJ#OUCe!kkz|qAs-pT7h{5c_f$KZLuo?_} zClr1xdBQN#M!KHOk49TJcM9g#Zh2fVN9A&{VD4=1j>l;ucdc}L@38yw)#&y3&3my- zV(K|WT)=qxfW}IKo>+a~3;Z^C+^4z9X3!0KK}`zC!RGX+kJ|IZ27QFj_y(QYzt=8V z&7j+ZU(7i73FWDM_BwH&74G@!Z|E?@`uq6&6haFdy0m7sU^)1WYjKJ0fzifDJ}&zrnI~>HktirAL^uu<;W%*mhau`FOgX2ba3T>sNcuy7kU*vvY6=G6Qu0fdDs*$X LEVenGXAUy}WJwnq diff --git a/iOS_Week2_3_assignment/Podfile b/iOS_Week2_3_assignment/Podfile new file mode 100644 index 0000000..89c890f --- /dev/null +++ b/iOS_Week2_3_assignment/Podfile @@ -0,0 +1,12 @@ + +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'iOS_Week2_3_assignment' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for iOS_Week2_3_assignment + pod 'Alamofire', '~> 4.8.2' + pod 'Kingfisher', '~> 5.0' +end diff --git a/iOS_Week2_3_assignment/Podfile.lock b/iOS_Week2_3_assignment/Podfile.lock new file mode 100644 index 0000000..60582f9 --- /dev/null +++ b/iOS_Week2_3_assignment/Podfile.lock @@ -0,0 +1,22 @@ +PODS: + - Alamofire (4.8.2) + - Kingfisher (5.14.0): + - Kingfisher/Core (= 5.14.0) + - Kingfisher/Core (5.14.0) + +DEPENDENCIES: + - Alamofire (~> 4.8.2) + - Kingfisher (~> 5.0) + +SPEC REPOS: + trunk: + - Alamofire + - Kingfisher + +SPEC CHECKSUMS: + Alamofire: ae5c501addb7afdbb13687d7f2f722c78734c2d3 + Kingfisher: 7b64389a43139c903ec434788344c288217c792d + +PODFILE CHECKSUM: 5aad8a63c041c4d9eb8d5fdae361e42dfeb6a090 + +COCOAPODS: 1.9.1 diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcodeproj/project.pbxproj b/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcodeproj/project.pbxproj index 2f2b843..6f4facd 100644 --- a/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcodeproj/project.pbxproj +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcodeproj/project.pbxproj @@ -3,10 +3,11 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ + 6F64C5E6BE1DF9CB1A3F30E8 /* Pods_iOS_Week2_3_assignment.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4705EFB0CA1C99718F90147 /* Pods_iOS_Week2_3_assignment.framework */; }; CC12EB962468347500A52EAB /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC12EB952468347500A52EAB /* LoginViewController.swift */; }; CC317C8E246E54E900FE9DF1 /* Extensions+UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC317C8D246E54E900FE9DF1 /* Extensions+UIColor.swift */; }; CC317C90246E5AF900FE9DF1 /* SignUpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC317C8F246E5AF900FE9DF1 /* SignUpViewController.swift */; }; @@ -19,9 +20,18 @@ CCB49F76246E87BC00CFD9D5 /* FriendViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCB49F75246E87BC00CFD9D5 /* FriendViewController.swift */; }; CCB49F7B246EA9E500CFD9D5 /* ProfileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCB49F7A246EA9E500CFD9D5 /* ProfileCell.swift */; }; CCB49F7D246EBB3700CFD9D5 /* Friends.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCB49F7C246EBB3700CFD9D5 /* Friends.swift */; }; + CCD627BD246FD3DC00B6E6AF /* APIConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627BC246FD3DC00B6E6AF /* APIConstants.swift */; }; + CCD627C3246FD7FE00B6E6AF /* NetworkResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627BE246FD7FE00B6E6AF /* NetworkResult.swift */; }; + CCD627C4246FD7FE00B6E6AF /* SigninData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627C0246FD7FE00B6E6AF /* SigninData.swift */; }; + CCD627C5246FD7FE00B6E6AF /* SignupData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627C2246FD7FE00B6E6AF /* SignupData.swift */; }; + CCD627C7246FD7FE00B6E6AF /* SignupService.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627C1246FD7FE00B6E6AF /* SignupService.swift */; }; + CCD627C9246FD86200B6E6AF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627C8246FD86200B6E6AF /* LoginService.swift */; }; + CCD627CE2477D81000B6E6AF /* SignUpVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD627CD2477D81000B6E6AF /* SignUpVC.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 064B5EF67C9B30B5AF502DE7 /* Pods-iOS_Week2_3_assignment.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS_Week2_3_assignment.debug.xcconfig"; path = "Target Support Files/Pods-iOS_Week2_3_assignment/Pods-iOS_Week2_3_assignment.debug.xcconfig"; sourceTree = ""; }; + 366CB76E98FF1E1E6600BF86 /* Pods-iOS_Week2_3_assignment.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS_Week2_3_assignment.release.xcconfig"; path = "Target Support Files/Pods-iOS_Week2_3_assignment/Pods-iOS_Week2_3_assignment.release.xcconfig"; sourceTree = ""; }; CC12EB952468347500A52EAB /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; CC317C8D246E54E900FE9DF1 /* Extensions+UIColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Extensions+UIColor.swift"; sourceTree = ""; }; CC317C8F246E5AF900FE9DF1 /* SignUpViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignUpViewController.swift; sourceTree = ""; }; @@ -36,6 +46,14 @@ CCB49F75246E87BC00CFD9D5 /* FriendViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendViewController.swift; sourceTree = ""; }; CCB49F7A246EA9E500CFD9D5 /* ProfileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileCell.swift; sourceTree = ""; }; CCB49F7C246EBB3700CFD9D5 /* Friends.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Friends.swift; sourceTree = ""; }; + CCD627BC246FD3DC00B6E6AF /* APIConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIConstants.swift; sourceTree = ""; }; + CCD627BE246FD7FE00B6E6AF /* NetworkResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = NetworkResult.swift; path = /Users/JiyoungYang/YangJiYoung/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/NetworkResult.swift; sourceTree = ""; }; + CCD627C0246FD7FE00B6E6AF /* SigninData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SigninData.swift; path = /Users/JiyoungYang/YangJiYoung/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SigninData.swift; sourceTree = ""; }; + CCD627C1246FD7FE00B6E6AF /* SignupService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SignupService.swift; path = /Users/JiyoungYang/YangJiYoung/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupService.swift; sourceTree = ""; }; + CCD627C2246FD7FE00B6E6AF /* SignupData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SignupData.swift; path = /Users/JiyoungYang/YangJiYoung/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupData.swift; sourceTree = ""; }; + CCD627C8246FD86200B6E6AF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LoginService.swift; path = /Users/JiyoungYang/YangJiYoung/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/LoginService.swift; sourceTree = ""; }; + CCD627CD2477D81000B6E6AF /* SignUpVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignUpVC.swift; sourceTree = ""; }; + D4705EFB0CA1C99718F90147 /* Pods_iOS_Week2_3_assignment.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_Week2_3_assignment.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -43,30 +61,31 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 6F64C5E6BE1DF9CB1A3F30E8 /* Pods_iOS_Week2_3_assignment.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 3D8D573B246E6F2D008AE141 /* Scenes */ = { + 3B72D1B43590DABF14E6E70C /* Pods */ = { isa = PBXGroup; children = ( - CC58A320246814B600ACC4B7 /* Main.storyboard */, - CCB49F7C246EBB3700CFD9D5 /* Friends.swift */, - CC58A325246814B900ACC4B7 /* LaunchScreen.storyboard */, - 3D8D573C246E6F2D008AE141 /* View */, + 064B5EF67C9B30B5AF502DE7 /* Pods-iOS_Week2_3_assignment.debug.xcconfig */, + 366CB76E98FF1E1E6600BF86 /* Pods-iOS_Week2_3_assignment.release.xcconfig */, ); - path = Scenes; + path = Pods; sourceTree = ""; }; - 3D8D573C246E6F2D008AE141 /* View */ = { + 3D8D573C246E6F2D008AE141 /* Source */ = { isa = PBXGroup; children = ( + CCB49F7C246EBB3700CFD9D5 /* Friends.swift */, + 3D8D573F246E6F50008AE141 /* Delgates */, CCB49F77246EA86100CFD9D5 /* Cells */, 3D8D573D246E6F2D008AE141 /* ViewControllers */, ); - path = View; + path = Source; sourceTree = ""; }; 3D8D573D246E6F2D008AE141 /* ViewControllers */ = { @@ -76,28 +95,26 @@ CC58A31E246814B600ACC4B7 /* SoptVC.swift */, CC317C8F246E5AF900FE9DF1 /* SignUpViewController.swift */, CC12EB952468347500A52EAB /* LoginViewController.swift */, + CCD627CD2477D81000B6E6AF /* SignUpVC.swift */, ); path = ViewControllers; sourceTree = ""; }; - 3D8D573E246E6F39008AE141 /* Supports */ = { + 3D8D573F246E6F50008AE141 /* Delgates */ = { isa = PBXGroup; children = ( - CC317C8D246E54E900FE9DF1 /* Extensions+UIColor.swift */, - CC58A323246814B900ACC4B7 /* Assets.xcassets */, - CC58A328246814B900ACC4B7 /* Info.plist */, - 3D8D573F246E6F50008AE141 /* Delgates */, + CC58A31A246814B600ACC4B7 /* AppDelegate.swift */, + CC58A31C246814B600ACC4B7 /* SceneDelegate.swift */, ); - path = Supports; + path = Delgates; sourceTree = ""; }; - 3D8D573F246E6F50008AE141 /* Delgates */ = { + A2AD04FEBB1DFB497D44101E /* Frameworks */ = { isa = PBXGroup; children = ( - CC58A31A246814B600ACC4B7 /* AppDelegate.swift */, - CC58A31C246814B600ACC4B7 /* SceneDelegate.swift */, + D4705EFB0CA1C99718F90147 /* Pods_iOS_Week2_3_assignment.framework */, ); - path = Delgates; + name = Frameworks; sourceTree = ""; }; CC58A30E246814B600ACC4B7 = { @@ -105,6 +122,8 @@ children = ( CC58A319246814B600ACC4B7 /* iOS_Week2_assignment */, CC58A318246814B600ACC4B7 /* Products */, + 3B72D1B43590DABF14E6E70C /* Pods */, + A2AD04FEBB1DFB497D44101E /* Frameworks */, ); sourceTree = ""; }; @@ -119,8 +138,9 @@ CC58A319246814B600ACC4B7 /* iOS_Week2_assignment */ = { isa = PBXGroup; children = ( - 3D8D573E246E6F39008AE141 /* Supports */, - 3D8D573B246E6F2D008AE141 /* Scenes */, + CC58A328246814B900ACC4B7 /* Info.plist */, + 3D8D573C246E6F2D008AE141 /* Source */, + CCD627B2246FADCD00B6E6AF /* Resource */, ); name = iOS_Week2_assignment; path = iOS_Week2_3_assignment; @@ -134,6 +154,39 @@ path = Cells; sourceTree = ""; }; + CCD627B2246FADCD00B6E6AF /* Resource */ = { + isa = PBXGroup; + children = ( + CC317C8D246E54E900FE9DF1 /* Extensions+UIColor.swift */, + CCD627CB2477D3B700B6E6AF /* Network */, + CCD627CA246FD8B500B6E6AF /* StoryBoard */, + CC58A323246814B900ACC4B7 /* Assets.xcassets */, + ); + path = Resource; + sourceTree = ""; + }; + CCD627CA246FD8B500B6E6AF /* StoryBoard */ = { + isa = PBXGroup; + children = ( + CC58A320246814B600ACC4B7 /* Main.storyboard */, + CC58A325246814B900ACC4B7 /* LaunchScreen.storyboard */, + ); + path = StoryBoard; + sourceTree = ""; + }; + CCD627CB2477D3B700B6E6AF /* Network */ = { + isa = PBXGroup; + children = ( + CCD627C2246FD7FE00B6E6AF /* SignupData.swift */, + CCD627C8246FD86200B6E6AF /* LoginService.swift */, + CCD627BE246FD7FE00B6E6AF /* NetworkResult.swift */, + CCD627C1246FD7FE00B6E6AF /* SignupService.swift */, + CCD627C0246FD7FE00B6E6AF /* SigninData.swift */, + CCD627BC246FD3DC00B6E6AF /* APIConstants.swift */, + ); + path = Network; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -141,9 +194,11 @@ isa = PBXNativeTarget; buildConfigurationList = CC58A32B246814B900ACC4B7 /* Build configuration list for PBXNativeTarget "iOS_Week2_3_assignment" */; buildPhases = ( + 08D9FF1C35FA37A5061C80F9 /* [CP] Check Pods Manifest.lock */, CC58A313246814B600ACC4B7 /* Sources */, CC58A314246814B600ACC4B7 /* Frameworks */, CC58A315246814B600ACC4B7 /* Resources */, + F048760F7AD1E9925B432388 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -200,6 +255,48 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 08D9FF1C35FA37A5061C80F9 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-iOS_Week2_3_assignment-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + F048760F7AD1E9925B432388 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iOS_Week2_3_assignment/Pods-iOS_Week2_3_assignment-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iOS_Week2_3_assignment/Pods-iOS_Week2_3_assignment-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iOS_Week2_3_assignment/Pods-iOS_Week2_3_assignment-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ CC58A313246814B600ACC4B7 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -207,12 +304,19 @@ files = ( CC317C90246E5AF900FE9DF1 /* SignUpViewController.swift in Sources */, CC12EB962468347500A52EAB /* LoginViewController.swift in Sources */, + CCD627C3246FD7FE00B6E6AF /* NetworkResult.swift in Sources */, + CCD627C7246FD7FE00B6E6AF /* SignupService.swift in Sources */, CC58A31F246814B600ACC4B7 /* SoptVC.swift in Sources */, CCB49F76246E87BC00CFD9D5 /* FriendViewController.swift in Sources */, + CCD627C4246FD7FE00B6E6AF /* SigninData.swift in Sources */, + CCD627C9246FD86200B6E6AF /* LoginService.swift in Sources */, + CCD627CE2477D81000B6E6AF /* SignUpVC.swift in Sources */, CCB49F7D246EBB3700CFD9D5 /* Friends.swift in Sources */, CC58A31B246814B600ACC4B7 /* AppDelegate.swift in Sources */, + CCD627BD246FD3DC00B6E6AF /* APIConstants.swift in Sources */, CCB49F7B246EA9E500CFD9D5 /* ProfileCell.swift in Sources */, CC58A31D246814B600ACC4B7 /* SceneDelegate.swift in Sources */, + CCD627C5246FD7FE00B6E6AF /* SignupData.swift in Sources */, CC317C8E246E54E900FE9DF1 /* Extensions+UIColor.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -355,10 +459,11 @@ }; CC58A32C246814B900ACC4B7 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 064B5EF67C9B30B5AF502DE7 /* Pods-iOS_Week2_3_assignment.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = iOS_Week2_3_assignment/Supports/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/iOS_Week2_3_assignment/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -372,10 +477,11 @@ }; CC58A32D246814B900ACC4B7 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 366CB76E98FF1E1E6600BF86 /* Pods-iOS_Week2_3_assignment.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = iOS_Week2_3_assignment/Supports/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/iOS_Week2_3_assignment/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcworkspace/contents.xcworkspacedata b/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..d3715e2 --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Info.plist b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Info.plist similarity index 95% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Info.plist rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Info.plist index 2a3483c..ecd0ce3 100644 --- a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Info.plist +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Info.plist @@ -2,6 +2,11 @@ + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1.imageset/1.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1.imageset/1.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1.imageset/1.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1.imageset/1.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1.imageset/1@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1.imageset/1@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1.imageset/1@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1.imageset/1@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1.imageset/1@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1.imageset/1@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1.imageset/1@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1.imageset/1@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1558.imageset/1558.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1558.imageset/1558.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1558.imageset/1558.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1558.imageset/1558.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1558.imageset/1558@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1558.imageset/1558@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1558.imageset/1558@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1558.imageset/1558@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1558.imageset/1558@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1558.imageset/1558@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1558.imageset/1558@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1558.imageset/1558@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1558.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1558.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1558.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1558.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1559.imageset/1559.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1559.imageset/1559.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1559.imageset/1559.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1559.imageset/1559.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1559.imageset/1559@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1559.imageset/1559@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1559.imageset/1559@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1559.imageset/1559@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1559.imageset/1559@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1559.imageset/1559@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1559.imageset/1559@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1559.imageset/1559@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1559.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1559.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1559.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1559.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1560.imageset/1560.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1560.imageset/1560.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1560.imageset/1560.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1560.imageset/1560.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1560.imageset/1560@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1560.imageset/1560@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1560.imageset/1560@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1560.imageset/1560@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1560.imageset/1560@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1560.imageset/1560@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1560.imageset/1560@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1560.imageset/1560@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1560.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1560.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1560.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1560.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1562.imageset/1562.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1562.imageset/1562.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1562.imageset/1562.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1562.imageset/1562.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1562.imageset/1562@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1562.imageset/1562@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1562.imageset/1562@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1562.imageset/1562@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1562.imageset/1562@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1562.imageset/1562@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1562.imageset/1562@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1562.imageset/1562@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1562.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1562.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1562.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1562.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1563.imageset/1563.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1563.imageset/1563.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1563.imageset/1563.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1563.imageset/1563.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1563.imageset/1563@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1563.imageset/1563@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1563.imageset/1563@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1563.imageset/1563@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1563.imageset/1563@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1563.imageset/1563@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1563.imageset/1563@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1563.imageset/1563@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1563.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1563.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/1563.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/1563.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/477.imageset/477.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/477.imageset/477.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/477.imageset/477.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/477.imageset/477.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/477.imageset/477@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/477.imageset/477@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/477.imageset/477@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/477.imageset/477@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/477.imageset/477@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/477.imageset/477@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/477.imageset/477@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/477.imageset/477@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/477.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/477.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/477.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/477.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/9188465425230637911275922235726328076697600N@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9188465425230637911275922235726328076697600N.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/9213383125230634377942948539378523368849408N@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213383125230634377942948539378523368849408N.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/9213470125230618377944548520091676373417984N@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9213470125230618377944548520091676373417984N.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/9229480325230625777943802058411231781322752N@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9229480325230625777943802058411231781322752N.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/9235840225230627344610312982063520952090624N@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9235840225230627344610312982063520952090624N.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/9298934625230618844611168856475911587889152N@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/9298934625230618844611168856475911587889152N.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/AppIcon.appiconset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/AppIcon.appiconset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/backIndicator.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/backIndicator.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/backIndicator.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/backIndicator.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/backIndicator.imageset/backIndicator-1.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/backIndicator.imageset/backIndicator-1.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/backIndicator.imageset/backIndicator-1.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/backIndicator.imageset/backIndicator-1.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/backIndicator.imageset/backIndicator-2.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/backIndicator.imageset/backIndicator-2.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/backIndicator.imageset/backIndicator-2.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/backIndicator.imageset/backIndicator-2.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/backIndicator.imageset/backIndicator.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/backIndicator.imageset/backIndicator.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/backIndicator.imageset/backIndicator.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/backIndicator.imageset/backIndicator.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/correct.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/correct.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/correct.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/correct.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/correct.imageset/correct.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/correct.imageset/correct.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/correct.imageset/correct.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/correct.imageset/correct.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/correct.imageset/correct@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/correct.imageset/correct@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/correct.imageset/correct@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/correct.imageset/correct@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/correct.imageset/correct@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/correct.imageset/correct@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/correct.imageset/correct@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/correct.imageset/correct@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/idcheckGreenIc.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/idcheckGreenIc.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/idcheckGreenIc.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/idcheckGreenIc.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/idcheckGreenIc.imageset/idcheckGreenIc@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/imgLoginLine.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/imgLoginLine.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/imgLoginLine.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/imgLoginLine.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/imgLoginLine.imageset/imgLoginLine.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/imgLoginLine.imageset/imgLoginLine.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/imgLoginLine.imageset/imgLoginLine.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/imgLoginLine.imageset/imgLoginLine.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/imgLoginLine.imageset/imgLoginLine@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/oursoptBgImg.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/oursoptBgImg.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/oursoptBgImg.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/oursoptBgImg.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/oursoptBgImg.imageset/oursoptBgImg@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile0Img.imageset/9573886432601742940168682793295078318145536N@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile0Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile0Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile0Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile0Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile1Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile1Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile1Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile1Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile1Img.imageset/profile1Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile1Img.imageset/profile1Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile1Img.imageset/profile1Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile1Img.imageset/profile1Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile1Img.imageset/profile1Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile1Img.imageset/profile1Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile1Img.imageset/profile1Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile1Img.imageset/profile1Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile1Img.imageset/profile1Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile1Img.imageset/profile1Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile1Img.imageset/profile1Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile1Img.imageset/profile1Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile2Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile2Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile2Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile2Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile2Img.imageset/profile2Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile2Img.imageset/profile2Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile2Img.imageset/profile2Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile2Img.imageset/profile2Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile2Img.imageset/profile2Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile2Img.imageset/profile2Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile2Img.imageset/profile2Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile2Img.imageset/profile2Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile2Img.imageset/profile2Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile2Img.imageset/profile2Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile2Img.imageset/profile2Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile2Img.imageset/profile2Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile3Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile3Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile3Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile3Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile3Img.imageset/profile3Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile3Img.imageset/profile3Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile3Img.imageset/profile3Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile3Img.imageset/profile3Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile3Img.imageset/profile3Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile3Img.imageset/profile3Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile3Img.imageset/profile3Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile3Img.imageset/profile3Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile3Img.imageset/profile3Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile3Img.imageset/profile3Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile3Img.imageset/profile3Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile3Img.imageset/profile3Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile4Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile4Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile4Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile4Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile4Img.imageset/profile4Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile4Img.imageset/profile4Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile4Img.imageset/profile4Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile4Img.imageset/profile4Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile4Img.imageset/profile4Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile4Img.imageset/profile4Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile4Img.imageset/profile4Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile4Img.imageset/profile4Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile4Img.imageset/profile4Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile4Img.imageset/profile4Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile4Img.imageset/profile4Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile4Img.imageset/profile4Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile5Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile5Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile5Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile5Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile5Img.imageset/profile5Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile5Img.imageset/profile5Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile5Img.imageset/profile5Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile5Img.imageset/profile5Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile5Img.imageset/profile5Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile5Img.imageset/profile5Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile5Img.imageset/profile5Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile5Img.imageset/profile5Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile5Img.imageset/profile5Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile5Img.imageset/profile5Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile5Img.imageset/profile5Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile5Img.imageset/profile5Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile6Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile6Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile6Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile6Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile6Img.imageset/profile6Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile6Img.imageset/profile6Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile6Img.imageset/profile6Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile6Img.imageset/profile6Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile6Img.imageset/profile6Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile6Img.imageset/profile6Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile6Img.imageset/profile6Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile6Img.imageset/profile6Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile6Img.imageset/profile6Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile6Img.imageset/profile6Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile6Img.imageset/profile6Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile6Img.imageset/profile6Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile7Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile7Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile7Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile7Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile7Img.imageset/profile7Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile7Img.imageset/profile7Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile7Img.imageset/profile7Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile7Img.imageset/profile7Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile7Img.imageset/profile7Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile7Img.imageset/profile7Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile7Img.imageset/profile7Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile7Img.imageset/profile7Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile7Img.imageset/profile7Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile7Img.imageset/profile7Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile7Img.imageset/profile7Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile7Img.imageset/profile7Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile8Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile8Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile8Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile8Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile8Img.imageset/profile8Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile8Img.imageset/profile8Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile8Img.imageset/profile8Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile8Img.imageset/profile8Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile8Img.imageset/profile8Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile8Img.imageset/profile8Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile8Img.imageset/profile8Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile8Img.imageset/profile8Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile8Img.imageset/profile8Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile8Img.imageset/profile8Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile8Img.imageset/profile8Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile8Img.imageset/profile8Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile9Img.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile9Img.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile9Img.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile9Img.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile9Img.imageset/profile9Img.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile9Img.imageset/profile9Img.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile9Img.imageset/profile9Img.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile9Img.imageset/profile9Img.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile9Img.imageset/profile9Img@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile9Img.imageset/profile9Img@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile9Img.imageset/profile9Img@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile9Img.imageset/profile9Img@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile9Img.imageset/profile9Img@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile9Img.imageset/profile9Img@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/profile9Img.imageset/profile9Img@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/profile9Img.imageset/profile9Img@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptJoinLogo.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptJoinLogo.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptJoinLogo.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptJoinLogo.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptJoinLogo.imageset/soptJoinLogo@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptLogo.imageset/Contents.json b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptLogo.imageset/Contents.json similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptLogo.imageset/Contents.json rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptLogo.imageset/Contents.json diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptLogo.imageset/soptLogo.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptLogo.imageset/soptLogo.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptLogo.imageset/soptLogo.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptLogo.imageset/soptLogo.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptLogo.imageset/soptLogo@2x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptLogo.imageset/soptLogo@2x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptLogo.imageset/soptLogo@2x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptLogo.imageset/soptLogo@2x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptLogo.imageset/soptLogo@3x.png b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptLogo.imageset/soptLogo@3x.png similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Assets.xcassets/soptLogo.imageset/soptLogo@3x.png rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Assets.xcassets/soptLogo.imageset/soptLogo@3x.png diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Extensions+UIColor.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Extensions+UIColor.swift similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Extensions+UIColor.swift rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Extensions+UIColor.swift diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/LoginService.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/LoginService.swift new file mode 100644 index 0000000..aaae9ad --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/LoginService.swift @@ -0,0 +1,48 @@ +// +// LoginService.swift +// +// +// Created by 양지영 on 2020/05/16. +// + +import Foundation +import Alamofire + +struct LoginService { + static let shared = LoginService() // shared:전역으로 사용가능, static let어디서든 접근 가능 + private func makeParameter(_ id: String, _ pwd: String) -> Parameters { + return ["id": id, "password":pwd] + } + func login(id: String, pwd: String, completion: @escaping (NetworkResult) -> Void) { + let header: HTTPHeaders = ["Content-Type": "application/json"] //httpheaders는 alanmofire 레퍼런스 + // 요청에해당하는 객체 생성 + let dataRequest = Alamofire.request(APIConstants.signinURL, method: .post, parameters: makeParameter(id, pwd), encoding: JSONEncoding.default, headers: header) + //데이터 통신시작 + dataRequest.responseData { dataResponse in + switch dataResponse.result { + case .success: + // statuscode를 헤더에 넣을경우 분기처리 적게해서 더 좋음(?), 지금은 쪼개면서 2번 분기처리 + guard let statusCode = dataResponse.response?.statusCode else { return } + guard let value = dataResponse.result.value else { return } + let networkResult = self.judge(by: statusCode, value) + completion(networkResult) + case .failure: completion(.networkFail) + } + } + } + private func judge(by statusCode: Int, _ data: Data) -> NetworkResult { + switch statusCode { + case 200: return isUser(by: data) //데이터를 넣어서 판단 시작 + case 400: return .pathErr + case 500: return .serverErr + default: return .networkFail + } + } + // 디코딩해줄 객체 + private func isUser(by data: Data) -> NetworkResult { + let decoder = JSONDecoder() + guard let decodedData = try? decoder.decode(SiginData.self, from: data) else { return .pathErr } + guard let tokenData = decodedData.data else { return .requestErr(decodedData.message) } + return .success(tokenData.jwt) + } +} diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Network/APIConstants.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Network/APIConstants.swift new file mode 100644 index 0000000..bee2a72 --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/Network/APIConstants.swift @@ -0,0 +1,15 @@ +// +// APIConstants.swift +// iOS_Week2_3_assignment +// +// Created by 양지영 on 2020/05/16. +// Copyright © 2020 양지영. All rights reserved. +// + +import Foundation + +struct APIConstants { + static let baseURL = "http://13.209.144.115:3333" + static let signinURL = APIConstants.baseURL + "/user/signin" + static let signupURL = APIConstants.baseURL + "/user/signup" +} diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/NetworkResult.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/NetworkResult.swift new file mode 100644 index 0000000..0566cd4 --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/NetworkResult.swift @@ -0,0 +1,16 @@ +// +// NetworkResult.swift +// +// +// Created by 양지영 on 2020/05/16. +// + +import Foundation + +enum NetworkResult { + case success(T) + case requestErr(T) + case pathErr + case serverErr + case networkFail +} diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SigninData.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SigninData.swift new file mode 100644 index 0000000..119659a --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SigninData.swift @@ -0,0 +1,34 @@ +// +// SigninData.swift +// +// +// Created by 양지영 on 2020/05/16. +// + +import Foundation + +struct SiginData: Codable { //인코딩, 디코딩 모두 가능하도록 + // 앞에 key 값만 같으면 됨 + var status: Int + var success: Bool + var message: String + var data: TokenData? // 실패했을 경우 nil 처리 해주기 위함 + + enum CodingKeys: String, CodingKey { // 중요!!! + case status = "status" + case success = "success" + case message = "message" + case data = "data" + } + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + status = (try? values.decode(Int.self, forKey: .status)) ?? -1 + success = (try? values.decode(Bool.self, forKey: .success)) ?? false + message = (try? values.decode(String.self, forKey: .message)) ?? "" + data = (try? values.decode(TokenData.self, forKey: .data)) ?? nil + } +} + +struct TokenData: Codable { + var jwt: String +} diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupData.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupData.swift new file mode 100644 index 0000000..d7c38ce --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupData.swift @@ -0,0 +1,28 @@ +// +// SignupData.swift +// +// +// Created by 양지영 on 2020/05/16. +// + +import Foundation + +struct SignupData: Codable { //인코딩, 디코딩 모두 가능하도록 + // 앞에 key 값만 같으면 됨 + var status: Int + var success: Bool + var message: String + + enum CodingKeys: String, CodingKey { // 중요!!! + case status = "status" + case success = "success" + case message = "message" + } + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + status = (try? values.decode(Int.self, forKey: .status)) ?? -1 + success = (try? values.decode(Bool.self, forKey: .success)) ?? false + message = (try? values.decode(String.self, forKey: .message)) ?? "" + } + } + diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupService.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupService.swift new file mode 100644 index 0000000..6a74f15 --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/SignupService.swift @@ -0,0 +1,49 @@ +// +// SignupService.swift +// +// +// Created by 양지영 on 2020/05/16. +// + +import Foundation +import Alamofire + +struct SignupService { + static let shared = SignupService() // shared:전역으로 사용가능, static let어디서든 접근 가능 + private func makeParameter(_ id: String, _ pwd: String, _ name: String, _ email: String, _ phone: String) -> Parameters { + return ["id": id, "password":pwd, "name":name, "email":email, "phone":phone] + } + func signup(id: String, pwd: String, name: String, email: String, phone: String, completion: @escaping (NetworkResult) -> Void) { + let header: HTTPHeaders = ["Content-Type": "application/json"] //httpheaders는 alanmofire 레퍼런스 + // 요청에해당하는 객체 생성 + let dataRequest = Alamofire.request(APIConstants.signupURL, method: .post, parameters: makeParameter(id, pwd, name, email, phone), encoding: JSONEncoding.default, headers: header) + //데이터 통신시작 + dataRequest.responseData { dataResponse in + switch dataResponse.result { + case .success: + // statuscode를 헤더에 넣을경우 분기처리 적게해서 더 좋음(?), 지금은 쪼개면서 2번 분기처리 + guard let statusCode = dataResponse.response?.statusCode else { return } + guard let value = dataResponse.result.value else { return } + let networkResult = self.judge(by: statusCode, value) + completion(networkResult) + case .failure: completion(.networkFail) + } + } + } + private func judge(by statusCode: Int, _ data: Data) -> NetworkResult { + switch statusCode { + case 200: return isSignUp(by: data) //데이터를 넣어서 판단 시작 + case 400: return .pathErr + case 500: return .serverErr + default: return .networkFail + } + } + // 디코딩해줄 객체 + private func isSignUp(by data: Data) -> NetworkResult { + let decoder = JSONDecoder() + guard let decodedData = try? decoder.decode(SignupData.self, from: data) else { return .pathErr } + if decodedData.success {return .success(data)} + else {return .requestErr(decodedData.message)} + } +} + diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/Base.lproj/LaunchScreen.storyboard b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/StoryBoard/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/Base.lproj/LaunchScreen.storyboard rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/StoryBoard/Base.lproj/LaunchScreen.storyboard diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/Base.lproj/Main.storyboard b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/StoryBoard/Base.lproj/Main.storyboard similarity index 83% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/Base.lproj/Main.storyboard rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/StoryBoard/Base.lproj/Main.storyboard index 2b4a918..1196815 100644 --- a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/Base.lproj/Main.storyboard +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Resource/StoryBoard/Base.lproj/Main.storyboard @@ -60,15 +60,29 @@ - + - @@ -107,92 +121,126 @@ - + - - + + - - + + - - + + - - - - - - - - - - + + + + + + + + + + + + - + + - - - - + + + + + + - + - + diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/View/Cells/ProfileCell.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/Cells/ProfileCell.swift similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/View/Cells/ProfileCell.swift rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/Cells/ProfileCell.swift diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Delgates/AppDelegate.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/Delgates/AppDelegate.swift similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Delgates/AppDelegate.swift rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/Delgates/AppDelegate.swift diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Delgates/SceneDelegate.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/Delgates/SceneDelegate.swift similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Supports/Delgates/SceneDelegate.swift rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/Delgates/SceneDelegate.swift diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/Friends.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/Friends.swift similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/Friends.swift rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/Friends.swift diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/View/ViewControllers/FriendViewController.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/FriendViewController.swift similarity index 100% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/View/ViewControllers/FriendViewController.swift rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/FriendViewController.swift diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/View/ViewControllers/LoginViewController.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/LoginViewController.swift similarity index 50% rename from iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/View/ViewControllers/LoginViewController.swift rename to iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/LoginViewController.swift index 5ee8757..59180e7 100644 --- a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Scenes/View/ViewControllers/LoginViewController.swift +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/LoginViewController.swift @@ -9,8 +9,6 @@ import UIKit class LoginViewController: UIViewController { - - @IBOutlet var txtFields: [UITextField]! @IBOutlet weak var loginButton: UIButton! override func viewDidLoad() { @@ -21,15 +19,51 @@ class LoginViewController: UIViewController { setNavigationBarLooksLike() } - @IBAction func loginButton(_ sender: Any) { - guard let viewcontroller = storyboard?.instantiateViewController(withIdentifier: "TabbarController") else { - return +// @IBAction func loginButton(_ sender: Any) { +// guard let viewcontroller = storyboard?.instantiateViewController(withIdentifier: "TabbarController") else { +// return +// } +// +// viewcontroller.modalPresentationStyle = .currentContext +// present(viewcontroller, animated: true) +// } + + @IBAction func login(_ sender: Any) { + guard let inputID = txtFields[0].text else { return } + guard let inputPWD = txtFields[1].text else { return } + + LoginService.shared.login(id: inputID, pwd: inputPWD) { networkResult in + switch networkResult { + case .success(let token): + guard let token = token as? String else { return } + UserDefaults.standard.set(token, forKey: "token") + guard let tabbarController = self.storyboard?.instantiateViewController(identifier: + "TabbarController") as? UITabBarController else { return } + tabbarController.modalPresentationStyle = .fullScreen + self.present(tabbarController, animated: true, completion: nil) + + case .requestErr(let message): + guard let message = message as? String else { return } + let alertViewController = UIAlertController(title: "로그인 실패", message: message, preferredStyle: .alert) + let action = UIAlertAction(title: "확인", style: .cancel, handler: nil) + alertViewController.addAction(action) + self.present(alertViewController, animated: true, completion: nil) + case .pathErr: print("path") + case .serverErr: print("serverErr") case .networkFail: print("networkFail") } } + } + + @IBAction func signupButton(_ sender: Any) { + guard let viewcontroller = storyboard?.instantiateViewController(withIdentifier: "SignUpViewController") else { + return + } viewcontroller.modalPresentationStyle = .currentContext - present(viewcontroller, animated: true) + present(viewcontroller, animated: true) } + + func setNavigationBarLooksLike(){ guard let navigationBar = self.navigationController?.navigationBar else { return } @@ -46,7 +80,7 @@ class LoginViewController: UIViewController { txtFields[i].layer.borderWidth = 1 txtFields[i].layer.borderColor = UIColor.white.cgColor txtFields[i].clipsToBounds = true - txtFields[0].placeholder = " 이메일" + txtFields[0].placeholder = " 아이디" txtFields[1].placeholder = " 비밀번호" txtFields[1].isSecureTextEntry = true } diff --git a/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/SignUpVC.swift b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/SignUpVC.swift new file mode 100644 index 0000000..5bde34c --- /dev/null +++ b/iOS_Week2_3_assignment/iOS_Week2_3_assignment/Source/ViewControllers/SignUpVC.swift @@ -0,0 +1,94 @@ +// +// SignUpVC.swift +// iOS_Week2_3_assignment +// +// Created by 양지영 on 2020/05/22. +// Copyright © 2020 양지영. All rights reserved. +// + +import UIKit + +class SignUpVC: UIViewController { + + @IBOutlet var txtFields: [UITextField]! + @IBOutlet weak var signUpButton: UIButton! + + override func viewDidLoad() { + super.viewDidLoad() + + layerSettins() + setNavigationBarLooksLike() + } + + @IBAction func sendNextVC(_ sender: Any) { + guard let inputID = txtFields[0].text else {return} + guard let inputPWD = txtFields[1].text else {return} + guard let inputName = txtFields[2].text else {return} + guard let inputEmail = txtFields[3].text else {return} + guard let inputPhone = txtFields[4].text else {return} + + SignupService.shared.signup(id: inputID, pwd: inputPWD, name: inputName, email: inputEmail, phone: inputPhone) { + networkResult in + switch networkResult{ + case .success: + guard let tabbarController = self.storyboard?.instantiateViewController(identifier: "TabbarController") as? UITabBarController else {return} + tabbarController.modalPresentationStyle = .fullScreen + self.present(tabbarController, animated: true, completion: nil) + case .requestErr(let message): + guard let message = message as? String else {return} + let alertViewController = UIAlertController(title: "회원가입 실패", message: message, preferredStyle: .alert) + let action = UIAlertAction(title: "확인", style: .cancel, handler: nil) + alertViewController.addAction(action) + self.present(alertViewController, animated: true, completion: nil) + case .pathErr: print("path") + case .serverErr: print("serverErr") + case .networkFail: print("networkfail") + + } + } + } + + func layerSettins() { + for i in 0..