diff --git a/Resources/Assets.xcassets/AccentColor.colorset/Contents.json b/Resources/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Resources/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9221b9b --- /dev/null +++ b/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/Contents.json b/Resources/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Resources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/arrow.imageset/Contents.json b/Resources/Assets.xcassets/arrow.imageset/Contents.json new file mode 100644 index 0000000..1f92000 --- /dev/null +++ b/Resources/Assets.xcassets/arrow.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "quill_chevron-up.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/arrow.imageset/quill_chevron-up.svg b/Resources/Assets.xcassets/arrow.imageset/quill_chevron-up.svg new file mode 100644 index 0000000..3dc79e8 --- /dev/null +++ b/Resources/Assets.xcassets/arrow.imageset/quill_chevron-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/Resources/Assets.xcassets/f1 2.imageset/Contents.json b/Resources/Assets.xcassets/f1 2.imageset/Contents.json new file mode 100644 index 0000000..24c474e --- /dev/null +++ b/Resources/Assets.xcassets/f1 2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/f1 2.imageset/image.png b/Resources/Assets.xcassets/f1 2.imageset/image.png new file mode 100644 index 0000000..5e1daf3 Binary files /dev/null and b/Resources/Assets.xcassets/f1 2.imageset/image.png differ diff --git a/Resources/Assets.xcassets/f1.imageset/Contents.json b/Resources/Assets.xcassets/f1.imageset/Contents.json new file mode 100644 index 0000000..7950970 --- /dev/null +++ b/Resources/Assets.xcassets/f1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "f1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/f1.imageset/f1.png b/Resources/Assets.xcassets/f1.imageset/f1.png new file mode 100644 index 0000000..9916c13 Binary files /dev/null and b/Resources/Assets.xcassets/f1.imageset/f1.png differ diff --git a/Resources/Assets.xcassets/film_reel.imageset/Contents.json b/Resources/Assets.xcassets/film_reel.imageset/Contents.json new file mode 100644 index 0000000..739cea8 --- /dev/null +++ b/Resources/Assets.xcassets/film_reel.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "film-reel 1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/film_reel.imageset/film-reel 1.png b/Resources/Assets.xcassets/film_reel.imageset/film-reel 1.png new file mode 100644 index 0000000..2a4fdec Binary files /dev/null and b/Resources/Assets.xcassets/film_reel.imageset/film-reel 1.png differ diff --git a/Resources/Assets.xcassets/kakaoLoginBtn.imageset/Contents.json b/Resources/Assets.xcassets/kakaoLoginBtn.imageset/Contents.json new file mode 100644 index 0000000..ce9df2f --- /dev/null +++ b/Resources/Assets.xcassets/kakaoLoginBtn.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "LoginBtn.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/kakaoLoginBtn.imageset/LoginBtn.pdf b/Resources/Assets.xcassets/kakaoLoginBtn.imageset/LoginBtn.pdf new file mode 100644 index 0000000..1e76c3c Binary files /dev/null and b/Resources/Assets.xcassets/kakaoLoginBtn.imageset/LoginBtn.pdf differ diff --git a/Resources/Assets.xcassets/megaboxLogo.imageset/Contents.json b/Resources/Assets.xcassets/megaboxLogo.imageset/Contents.json new file mode 100644 index 0000000..b810cc9 --- /dev/null +++ b/Resources/Assets.xcassets/megaboxLogo.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "meboxLogo.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/megaboxLogo.imageset/meboxLogo.pdf b/Resources/Assets.xcassets/megaboxLogo.imageset/meboxLogo.pdf new file mode 100644 index 0000000..cb93dbb Binary files /dev/null and b/Resources/Assets.xcassets/megaboxLogo.imageset/meboxLogo.pdf differ diff --git a/Resources/Assets.xcassets/naverLoginBtn.imageset/Contents.json b/Resources/Assets.xcassets/naverLoginBtn.imageset/Contents.json new file mode 100644 index 0000000..ce9df2f --- /dev/null +++ b/Resources/Assets.xcassets/naverLoginBtn.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "LoginBtn.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/naverLoginBtn.imageset/LoginBtn.pdf b/Resources/Assets.xcassets/naverLoginBtn.imageset/LoginBtn.pdf new file mode 100644 index 0000000..87a158d Binary files /dev/null and b/Resources/Assets.xcassets/naverLoginBtn.imageset/LoginBtn.pdf differ diff --git a/Resources/Assets.xcassets/pin_map.imageset/Contents.json b/Resources/Assets.xcassets/pin_map.imageset/Contents.json new file mode 100644 index 0000000..bdf2e53 --- /dev/null +++ b/Resources/Assets.xcassets/pin_map.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "free-icon-pin-map-8358838.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/pin_map.imageset/free-icon-pin-map-8358838.png b/Resources/Assets.xcassets/pin_map.imageset/free-icon-pin-map-8358838.png new file mode 100644 index 0000000..ceefab4 Binary files /dev/null and b/Resources/Assets.xcassets/pin_map.imageset/free-icon-pin-map-8358838.png differ diff --git a/Resources/Assets.xcassets/popcorn.imageset/Contents.json b/Resources/Assets.xcassets/popcorn.imageset/Contents.json new file mode 100644 index 0000000..e6e2d7d --- /dev/null +++ b/Resources/Assets.xcassets/popcorn.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "free-icon-cinema-2809591.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/popcorn.imageset/free-icon-cinema-2809591.png b/Resources/Assets.xcassets/popcorn.imageset/free-icon-cinema-2809591.png new file mode 100644 index 0000000..b81e20e Binary files /dev/null and b/Resources/Assets.xcassets/popcorn.imageset/free-icon-cinema-2809591.png differ diff --git a/Resources/Assets.xcassets/poster2.imageset/Contents.json b/Resources/Assets.xcassets/poster2.imageset/Contents.json new file mode 100644 index 0000000..ad70463 --- /dev/null +++ b/Resources/Assets.xcassets/poster2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image 12.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/poster2.imageset/image 12.png b/Resources/Assets.xcassets/poster2.imageset/image 12.png new file mode 100644 index 0000000..8829e24 Binary files /dev/null and b/Resources/Assets.xcassets/poster2.imageset/image 12.png differ diff --git a/Resources/Assets.xcassets/poster3.imageset/Contents.json b/Resources/Assets.xcassets/poster3.imageset/Contents.json new file mode 100644 index 0000000..82e1c33 --- /dev/null +++ b/Resources/Assets.xcassets/poster3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image 12-1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/poster3.imageset/image 12-1.png b/Resources/Assets.xcassets/poster3.imageset/image 12-1.png new file mode 100644 index 0000000..4c8c731 Binary files /dev/null and b/Resources/Assets.xcassets/poster3.imageset/image 12-1.png differ diff --git a/Resources/Assets.xcassets/poster4.imageset/Contents.json b/Resources/Assets.xcassets/poster4.imageset/Contents.json new file mode 100644 index 0000000..b4fba87 --- /dev/null +++ b/Resources/Assets.xcassets/poster4.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image 2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/poster4.imageset/image 2.png b/Resources/Assets.xcassets/poster4.imageset/image 2.png new file mode 100644 index 0000000..77b8935 Binary files /dev/null and b/Resources/Assets.xcassets/poster4.imageset/image 2.png differ diff --git a/Resources/Assets.xcassets/poster5.imageset/Contents.json b/Resources/Assets.xcassets/poster5.imageset/Contents.json new file mode 100644 index 0000000..a0a5178 --- /dev/null +++ b/Resources/Assets.xcassets/poster5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image 1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/poster5.imageset/image 1.png b/Resources/Assets.xcassets/poster5.imageset/image 1.png new file mode 100644 index 0000000..e54821e Binary files /dev/null and b/Resources/Assets.xcassets/poster5.imageset/image 1.png differ diff --git a/Resources/Assets.xcassets/poster6.imageset/Contents.json b/Resources/Assets.xcassets/poster6.imageset/Contents.json new file mode 100644 index 0000000..7950970 --- /dev/null +++ b/Resources/Assets.xcassets/poster6.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "f1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/poster6.imageset/f1.png b/Resources/Assets.xcassets/poster6.imageset/f1.png new file mode 100644 index 0000000..ca20633 Binary files /dev/null and b/Resources/Assets.xcassets/poster6.imageset/f1.png differ diff --git a/Resources/Assets.xcassets/poster7.imageset/Contents.json b/Resources/Assets.xcassets/poster7.imageset/Contents.json new file mode 100644 index 0000000..64871da --- /dev/null +++ b/Resources/Assets.xcassets/poster7.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "어쩔수가 없다.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/poster7.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" "b/Resources/Assets.xcassets/poster7.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" new file mode 100644 index 0000000..ac49ec5 Binary files /dev/null and "b/Resources/Assets.xcassets/poster7.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" differ diff --git a/Resources/Assets.xcassets/poster8.imageset/Contents.json b/Resources/Assets.xcassets/poster8.imageset/Contents.json new file mode 100644 index 0000000..e802262 --- /dev/null +++ b/Resources/Assets.xcassets/poster8.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "무한성.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/poster8.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" "b/Resources/Assets.xcassets/poster8.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" new file mode 100644 index 0000000..cec8ca2 Binary files /dev/null and "b/Resources/Assets.xcassets/poster8.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" differ diff --git a/Resources/Assets.xcassets/sofa.imageset/Contents.json b/Resources/Assets.xcassets/sofa.imageset/Contents.json new file mode 100644 index 0000000..49222d7 --- /dev/null +++ b/Resources/Assets.xcassets/sofa.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "free-icon-sofa-6087271.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/sofa.imageset/free-icon-sofa-6087271.png b/Resources/Assets.xcassets/sofa.imageset/free-icon-sofa-6087271.png new file mode 100644 index 0000000..9b36368 Binary files /dev/null and b/Resources/Assets.xcassets/sofa.imageset/free-icon-sofa-6087271.png differ diff --git a/Resources/Assets.xcassets/umc.imageset/Contents.json b/Resources/Assets.xcassets/umc.imageset/Contents.json new file mode 100644 index 0000000..6457313 --- /dev/null +++ b/Resources/Assets.xcassets/umc.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "umc 1.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Assets.xcassets/umc.imageset/umc 1.pdf b/Resources/Assets.xcassets/umc.imageset/umc 1.pdf new file mode 100644 index 0000000..1e26365 Binary files /dev/null and b/Resources/Assets.xcassets/umc.imageset/umc 1.pdf differ diff --git "a/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/Contents.json" "b/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/Contents.json" new file mode 100644 index 0000000..e802262 --- /dev/null +++ "b/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/Contents.json" @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "무한성.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" "b/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" new file mode 100644 index 0000000..b647e73 Binary files /dev/null and "b/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" differ diff --git "a/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/Contents.json" "b/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/Contents.json" new file mode 100644 index 0000000..64871da --- /dev/null +++ "b/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/Contents.json" @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "어쩔수가 없다.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" "b/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" new file mode 100644 index 0000000..b1d50dd Binary files /dev/null and "b/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" differ diff --git "a/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/Contents.json" "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/Contents.json" new file mode 100644 index 0000000..dc4f61a --- /dev/null +++ "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/Contents.json" @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "image 2.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/image 2.pdf" "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/image 2.pdf" new file mode 100644 index 0000000..101b1d9 Binary files /dev/null and "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/image 2.pdf" differ diff --git "a/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/Contents.json" "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/Contents.json" new file mode 100644 index 0000000..b4fba87 --- /dev/null +++ "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/Contents.json" @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image 2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/image 2.png" "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/image 2.png" new file mode 100644 index 0000000..a8dfcbf Binary files /dev/null and "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/image 2.png" differ diff --git "a/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/Contents.json" "b/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/Contents.json" new file mode 100644 index 0000000..24c474e --- /dev/null +++ "b/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/Contents.json" @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/image.png" "b/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/image.png" new file mode 100644 index 0000000..42d1ed8 Binary files /dev/null and "b/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/image.png" differ diff --git "a/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/Contents.json" "b/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/Contents.json" new file mode 100644 index 0000000..dc4f61a --- /dev/null +++ "b/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/Contents.json" @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "image 2.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/image 2.pdf" "b/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/image 2.pdf" new file mode 100644 index 0000000..1ede1f9 Binary files /dev/null and "b/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/image 2.pdf" differ diff --git "a/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/Contents.json" "b/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/Contents.json" new file mode 100644 index 0000000..a0a5178 --- /dev/null +++ "b/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/Contents.json" @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image 1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/image 1.png" "b/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/image 1.png" new file mode 100644 index 0000000..96ea81c Binary files /dev/null and "b/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/image 1.png" differ diff --git a/Resources/Colors.xcassets/Contents.json b/Resources/Colors.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Resources/Colors.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/black.colorset/Contents.json b/Resources/Colors.xcassets/black.colorset/Contents.json new file mode 100644 index 0000000..3fe9b59 --- /dev/null +++ b/Resources/Colors.xcassets/black.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x00", + "green" : "0x00", + "red" : "0x00" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue00.colorset/Contents.json b/Resources/Colors.xcassets/blue00.colorset/Contents.json new file mode 100644 index 0000000..5d58adb --- /dev/null +++ b/Resources/Colors.xcassets/blue00.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFA", + "green" : "0xF7", + "red" : "0xF3" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue01.colorset/Contents.json b/Resources/Colors.xcassets/blue01.colorset/Contents.json new file mode 100644 index 0000000..ac41082 --- /dev/null +++ b/Resources/Colors.xcassets/blue01.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF7", + "green" : "0xF2", + "red" : "0xED" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue02.colorset/Contents.json b/Resources/Colors.xcassets/blue02.colorset/Contents.json new file mode 100644 index 0000000..7e32c7e --- /dev/null +++ b/Resources/Colors.xcassets/blue02.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xEF", + "green" : "0xE5", + "red" : "0xDA" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue03.colorset/Contents.json b/Resources/Colors.xcassets/blue03.colorset/Contents.json new file mode 100644 index 0000000..9d80dc4 --- /dev/null +++ b/Resources/Colors.xcassets/blue03.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xCC", + "green" : "0xAA", + "red" : "0x88" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue04.colorset/Contents.json b/Resources/Colors.xcassets/blue04.colorset/Contents.json new file mode 100644 index 0000000..f47d6f9 --- /dev/null +++ b/Resources/Colors.xcassets/blue04.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xB8", + "green" : "0x99", + "red" : "0x7A" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue05.colorset/Contents.json b/Resources/Colors.xcassets/blue05.colorset/Contents.json new file mode 100644 index 0000000..d1c77f8 --- /dev/null +++ b/Resources/Colors.xcassets/blue05.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xA3", + "green" : "0x88", + "red" : "0x6D" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue06.colorset/Contents.json b/Resources/Colors.xcassets/blue06.colorset/Contents.json new file mode 100644 index 0000000..fa61276 --- /dev/null +++ b/Resources/Colors.xcassets/blue06.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x99", + "green" : "0x80", + "red" : "0x66" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue07.colorset/Contents.json b/Resources/Colors.xcassets/blue07.colorset/Contents.json new file mode 100644 index 0000000..fa61276 --- /dev/null +++ b/Resources/Colors.xcassets/blue07.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x99", + "green" : "0x80", + "red" : "0x66" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue08.colorset/Contents.json b/Resources/Colors.xcassets/blue08.colorset/Contents.json new file mode 100644 index 0000000..45ffb79 --- /dev/null +++ b/Resources/Colors.xcassets/blue08.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x5C", + "green" : "0x4C", + "red" : "0x3D" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/blue09.colorset/Contents.json b/Resources/Colors.xcassets/blue09.colorset/Contents.json new file mode 100644 index 0000000..515b45a --- /dev/null +++ b/Resources/Colors.xcassets/blue09.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x47", + "green" : "0x3B", + "red" : "0x30" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray00.colorset/Contents.json b/Resources/Colors.xcassets/gray00.colorset/Contents.json new file mode 100644 index 0000000..616f828 --- /dev/null +++ b/Resources/Colors.xcassets/gray00.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF2", + "green" : "0xF2", + "red" : "0xF2" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray01.colorset/Contents.json b/Resources/Colors.xcassets/gray01.colorset/Contents.json new file mode 100644 index 0000000..bb37089 --- /dev/null +++ b/Resources/Colors.xcassets/gray01.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xEB", + "green" : "0xEB", + "red" : "0xEB" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray02.colorset/Contents.json b/Resources/Colors.xcassets/gray02.colorset/Contents.json new file mode 100644 index 0000000..4b319f2 --- /dev/null +++ b/Resources/Colors.xcassets/gray02.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD5", + "green" : "0xD5", + "red" : "0xD5" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray03.colorset/Contents.json b/Resources/Colors.xcassets/gray03.colorset/Contents.json new file mode 100644 index 0000000..c08da6e --- /dev/null +++ b/Resources/Colors.xcassets/gray03.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x78", + "green" : "0x78", + "red" : "0x78" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray04.colorset/Contents.json b/Resources/Colors.xcassets/gray04.colorset/Contents.json new file mode 100644 index 0000000..703da77 --- /dev/null +++ b/Resources/Colors.xcassets/gray04.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x6C", + "green" : "0x6C", + "red" : "0x6C" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray05.colorset/Contents.json b/Resources/Colors.xcassets/gray05.colorset/Contents.json new file mode 100644 index 0000000..00c9a49 --- /dev/null +++ b/Resources/Colors.xcassets/gray05.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x60", + "green" : "0x60", + "red" : "0x60" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray06.colorset/Contents.json b/Resources/Colors.xcassets/gray06.colorset/Contents.json new file mode 100644 index 0000000..2bd9fcf --- /dev/null +++ b/Resources/Colors.xcassets/gray06.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x5A", + "green" : "0x5A", + "red" : "0x5A" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray07.colorset/Contents.json b/Resources/Colors.xcassets/gray07.colorset/Contents.json new file mode 100644 index 0000000..c626884 --- /dev/null +++ b/Resources/Colors.xcassets/gray07.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x48", + "green" : "0x48", + "red" : "0x48" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray08.colorset/Contents.json b/Resources/Colors.xcassets/gray08.colorset/Contents.json new file mode 100644 index 0000000..2767e0e --- /dev/null +++ b/Resources/Colors.xcassets/gray08.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x36", + "green" : "0x36", + "red" : "0x36" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/gray09.colorset/Contents.json b/Resources/Colors.xcassets/gray09.colorset/Contents.json new file mode 100644 index 0000000..69f05fa --- /dev/null +++ b/Resources/Colors.xcassets/gray09.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x2A", + "green" : "0x2A", + "red" : "0x2A" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple00.colorset/Contents.json b/Resources/Colors.xcassets/purple00.colorset/Contents.json new file mode 100644 index 0000000..84e81ca --- /dev/null +++ b/Resources/Colors.xcassets/purple00.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFB", + "green" : "0xE7", + "red" : "0xF0" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple01.colorset/Contents.json b/Resources/Colors.xcassets/purple01.colorset/Contents.json new file mode 100644 index 0000000..212db49 --- /dev/null +++ b/Resources/Colors.xcassets/purple01.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF9", + "green" : "0xDB", + "red" : "0xE8" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple02.colorset/Contents.json b/Resources/Colors.xcassets/purple02.colorset/Contents.json new file mode 100644 index 0000000..79a1f78 --- /dev/null +++ b/Resources/Colors.xcassets/purple02.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF3", + "green" : "0xB4", + "red" : "0xCF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple03.colorset/Contents.json b/Resources/Colors.xcassets/purple03.colorset/Contents.json new file mode 100644 index 0000000..837c03a --- /dev/null +++ b/Resources/Colors.xcassets/purple03.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD8", + "green" : "0x0E", + "red" : "0x65" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple04.colorset/Contents.json b/Resources/Colors.xcassets/purple04.colorset/Contents.json new file mode 100644 index 0000000..468da82 --- /dev/null +++ b/Resources/Colors.xcassets/purple04.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xC2", + "green" : "0x0D", + "red" : "0x5B" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple05.colorset/Contents.json b/Resources/Colors.xcassets/purple05.colorset/Contents.json new file mode 100644 index 0000000..4ca379f --- /dev/null +++ b/Resources/Colors.xcassets/purple05.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xAD", + "green" : "0x0B", + "red" : "0x51" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple06.colorset/Contents.json b/Resources/Colors.xcassets/purple06.colorset/Contents.json new file mode 100644 index 0000000..f989504 --- /dev/null +++ b/Resources/Colors.xcassets/purple06.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xA2", + "green" : "0x0B", + "red" : "0x4C" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple07.colorset/Contents.json b/Resources/Colors.xcassets/purple07.colorset/Contents.json new file mode 100644 index 0000000..70de855 --- /dev/null +++ b/Resources/Colors.xcassets/purple07.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x82", + "green" : "0x08", + "red" : "0x3D" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple08.colorset/Contents.json b/Resources/Colors.xcassets/purple08.colorset/Contents.json new file mode 100644 index 0000000..4898309 --- /dev/null +++ b/Resources/Colors.xcassets/purple08.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x61", + "green" : "0x06", + "red" : "0x2D" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/purple09.colorset/Contents.json b/Resources/Colors.xcassets/purple09.colorset/Contents.json new file mode 100644 index 0000000..d220f1a --- /dev/null +++ b/Resources/Colors.xcassets/purple09.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x4C", + "green" : "0x05", + "red" : "0x23" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/tag.colorset/Contents.json b/Resources/Colors.xcassets/tag.colorset/Contents.json new file mode 100644 index 0000000..5586618 --- /dev/null +++ b/Resources/Colors.xcassets/tag.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD2", + "green" : "0xCD", + "red" : "0x47" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Resources/Colors.xcassets/white.colorset/Contents.json b/Resources/Colors.xcassets/white.colorset/Contents.json new file mode 100644 index 0000000..6e64977 --- /dev/null +++ b/Resources/Colors.xcassets/white.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFE" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/HomeView.swift b/Sources/HomeView.swift new file mode 100644 index 0000000..e2ca09c --- /dev/null +++ b/Sources/HomeView.swift @@ -0,0 +1,209 @@ +import SwiftUI + +struct Movie: Identifiable { + let id = UUID() + let title: String + let moviegoer: String + let imageName: String + let imageName2: String +} + +struct MovieChartView: View { + let movies: [Movie] = [ + Movie(title: "어쩔수가 없다", moviegoer: "누적관객수 20만", imageName: "어쩔수가 없다", imageName2: "f1 2"), + Movie(title: "극장판 귀멸의 ...", moviegoer: "누적관객수 10만", imageName: "무한성", imageName2: "f1 2"), + Movie(title: "F1 더 무비", moviegoer: "누적관객수 10만", imageName: "f1", imageName2: "f1 2"), + Movie(title: "얼굴", moviegoer: "누적관객수 10만", imageName: "얼굴", imageName2: "f1 2"), + Movie(title: "모노노케 히메", moviegoer: "누적관객수 10만", imageName: "모노노케 히메", imageName2: "f1 2") + ] + + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .top, spacing: 16) { + ForEach(movies) { movie in + + NavigationLink(destination: Text("\(movie.title) 상세 페이지")) { + + VStack(alignment: .leading, spacing: 8) { + Image(movie.imageName) + .resizable().scaledToFit().frame(width: 140, height: 210) + + // MARK: - UI를 새 데이터에 맞게 수정 + Text(movie.title) + .font(.system(size: 15, weight: .bold)) + .foregroundStyle(.black) + .lineLimit(1) + + Text(movie.moviegoer) + .font(.system(size: 13)) + .foregroundStyle(.gray) + } + .frame(width: 140) + } + .buttonStyle(PlainButtonStyle()) + } + } + .padding(.horizontal) + } + } + +} + +struct ComingSoonView: View { + var body: some View { + VStack { + Spacer() + Text("상영예정 영화 목록입니다.").font(.headline) + Spacer() + } + } +} + +// MARK: - '홈' 탭이 선택되었을 때 보여줄 콘텐츠 뷰 +struct HomeContentView: View { + @State private var selectedMenu: String = "무비차트" + let menus = ["무비차트", "상영예정"] + + var body: some View { + VStack(alignment: .leading, spacing: 20) { + HStack(spacing: 20) { + ForEach(menus, id: \.self) { menu in + Button(action: { + self.selectedMenu = menu + }) { + Text(menu) + .font(.system(size: 22, weight: .bold)) + .foregroundStyle(selectedMenu == menu ? .black : .gray.opacity(0.5)) + } + } + } + .padding(.horizontal) + + if selectedMenu == "무비차트" { + MovieChartView() // (가로 스크롤 뷰가 여기에 포함되어 있습니다) + } else { + ComingSoonView() + } + } + .frame(maxWidth: .infinity, alignment: .leading) + + + } +} + + +struct Home: View { + @State private var selectedTab = "홈" + let tabs = ["홈", "이벤트", "스토어", "선호극장"] + + var body: some View { + + NavigationStack { + VStack(spacing: 0) { + + HStack { + Image("megaboxLogo2") + .resizable().scaledToFit().frame(height: 30) + .padding(.leading, 16) + Spacer() + } + .padding(.vertical, 8) + + HStack(spacing: 25) { + ForEach(tabs, id: \.self) { tab in + Text(tab) + .font(.system(size: 17)) + .fontWeight(selectedTab == tab ? .bold : .regular) + .foregroundStyle(selectedTab == tab ? .black : .gray) + .onTapGesture { + withAnimation(.easeIn(duration: 0.2)) { + self.selectedTab = tab + } + } + } + Spacer() + } + .padding(.bottom, 15) + .padding(.leading, 16) + + ZStack { + switch selectedTab { + + case "홈": + ScrollView(.vertical, showsIndicators: false) { + + VStack(spacing: 0) { + + HomeContentView() + + VStack { + HStack { + Text("알고보면 더 재밌는 무비피드") + .padding(.leading, 16) + .padding(.trailing, 109) + + Button(action: { + print("오른쪽 화살표 버튼 클릭됨") + }) { + Image(systemName: "arrow.right") + .font(.system(size: 20, weight: .bold)) + .padding() + .foregroundStyle(.black) + } + Spacer() + } + + Image("무비피드") + .resizable() + .scaledToFit() + .frame(width: 408, height: 221) + } + .padding(.bottom, 44) + + VStack { + HStack { + Image("모노노케 히메 2") + .padding(.leading, 16) + VStack { + Text("9월, 메가박스의 영화들(1) - 명작들의 재개봉’") + Text("<모노노케 히메>,<퍼펙트 블루>") + } + Spacer() + } + .padding(.bottom, 39) + + HStack { + Image("얼굴 2") + .padding(.leading, 16) + VStack { + Text("메가박스 오리지널 티켓 Re.37 <얼굴>") + Text("영화 속 양극적인 감정의 대비") + } + Spacer() + } + } + .padding(.bottom, 50) + } + } + + case "이벤트": + Text("이벤트 목록").font(.largeTitle) + case "스토어": + Text("스토어 상품들").font(.largeTitle) + case "선호극장": + Text("선호극장 정보").font(.largeTitle) + default: + EmptyView() + } + } + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) + + } + .navigationBarHidden(true) + } + } +} + +#Preview { + Home() +} diff --git a/Sources/KeyChainHelper.swift b/Sources/KeyChainHelper.swift new file mode 100644 index 0000000..4c00d9c --- /dev/null +++ b/Sources/KeyChainHelper.swift @@ -0,0 +1,77 @@ +// KeychainHelper.swift + +import Foundation +import Security + +struct KeychainHelper { + + private static let service = "com.myapp.credentials" + + // MARK: - Save + + static func save(string: String, account: String) -> Bool { + guard let data = string.data(using: .utf8) else { return false } + + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: service, + kSecAttrAccount as String: account + ] + + let attributes: [String: Any] = [ + kSecValueData as String: data + ] + + let status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary) + + if status == errSecItemNotFound { + let addQuery: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: service, + kSecAttrAccount as String: account, + kSecValueData as String: data, + kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked // 접근성 설정 + ] + let addStatus = SecItemAdd(addQuery as CFDictionary, nil) + return addStatus == errSecSuccess + } + + return status == errSecSuccess + } + + // MARK: - Read + + static func read(account: String) -> String? { + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: service, + kSecAttrAccount as String: account, + kSecReturnData as String: kCFBooleanTrue!, // 데이터 반환 요청 + kSecMatchLimit as String: kSecMatchLimitOne // 하나의 항목만 + ] + + var dataTypeRef: AnyObject? + let status = SecItemCopyMatching(query as CFDictionary, &dataTypeRef) + + if status == errSecSuccess { + if let data = dataTypeRef as? Data, + let string = String(data: data, encoding: .utf8) { + return string + } + } + return nil + } + + // MARK: - Delete + + static func delete(account: String) -> Bool { + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: service, + kSecAttrAccount as String: account + ] + + let status = SecItemDelete(query as CFDictionary) + return status == errSecSuccess || status == errSecItemNotFound + } +} diff --git a/Sources/LoginModel.swift b/Sources/LoginModel.swift new file mode 100644 index 0000000..0956933 --- /dev/null +++ b/Sources/LoginModel.swift @@ -0,0 +1,14 @@ +// +// LoginModel.swift +// megabox +// +// Created by 문인성 on 9/25/25. +// + +import Foundation + +struct LoginModel { + var id: String = "" + var pwd: String = "" +} + diff --git a/Sources/LoginView.swift b/Sources/LoginView.swift new file mode 100644 index 0000000..a3de0d8 --- /dev/null +++ b/Sources/LoginView.swift @@ -0,0 +1,99 @@ +// LoginView.swift + +import SwiftUI + +struct LoginView: View { + + @StateObject private var viewModel: LoginViewModel + + init(viewModel: LoginViewModel) { + _viewModel = StateObject(wrappedValue: viewModel) + } + + @State private var showAlert: Bool = false + + var body: some View { + VStack { + HStack { + Text("로그인") + .font(.semiBold24) + .padding(.top, 44) + } + + Spacer() + + VStack { + TextField("아이디", text: $viewModel.loginInfo.id) + .padding(.horizontal, 16) + Divider() + .padding(.horizontal, 16) + + SecureField("비밀번호", text: $viewModel.loginInfo.pwd) + .padding(.horizontal, 16) + Divider() + .padding(.horizontal, 16) + .padding(.bottom, 74.98) + + + Button(action: { + + viewModel.handleLogin() + + if !viewModel.isLoggedIn { + showAlert = true + } + + }) { + Text("로그인") + .font(.headline) + .fontWeight(.bold) + .foregroundStyle(.white) + .frame(maxWidth: .infinity) + .padding(.vertical, 9) + .background(Color.purple) // Color("purple03") + .cornerRadius(10) + } + .padding(.horizontal, 16.5) + .padding(.bottom, 17) + + Text("회원가입") + .font(.medium13) + .foregroundStyle(Color.gray) // Color("gray04") + } + + } + + .alert("로그인 실패", isPresented: $showAlert) { + Button("확인", role: .cancel) {} + } message: { + Text("아이디 또는 비밀번호를 확인해주세요.") + } + + HStack { + Image("naverLoginBtn") + Spacer() + Image("kakaoLoginBtn") + Spacer() + Image("appleLoginBtn") + } + .frame(maxWidth: .infinity) + .padding(.top, 35) + .padding(.horizontal, 87) + .padding(.bottom, 39) + + HStack { + Image("umc") + .resizable() + .scaledToFit() + .frame(maxWidth: .infinity) + .padding(.horizontal, 16) + } + + Spacer() + + } +} + +#Preview { + LoginView(viewModel: LoginViewModel()) +} diff --git a/Sources/LoginViewModel.swift b/Sources/LoginViewModel.swift new file mode 100644 index 0000000..e122bf3 --- /dev/null +++ b/Sources/LoginViewModel.swift @@ -0,0 +1,66 @@ +// LoginViewModel.swift +// (이 코드로 파일 전체를 덮어쓰세요) + +import Foundation + +class LoginViewModel: ObservableObject { + + @Published var loginInfo = LoginModel() + @Published var isLoggedIn: Bool = false + @Published var userName: String = "" // 마이페이지 표시용 + + + private let idAccount = "userID" + private let pwdAccount = "userPassword" + + init() { + checkAutoLogin() + } + + func checkAutoLogin() { + guard let savedId = KeychainHelper.read(account: idAccount), + let savedPwd = KeychainHelper.read(account: pwdAccount) else { + print("No credentials found in Keychain.") + return + } + + print("Auto login successful.") + self.userName = savedId // 마이페이지용 이름 설정 (체크리스트 3번) + self.isLoggedIn = true // 로그인 상태를 true로 변경 + } + + func handleLogin() { + let correctId = "swift" + let correctPwd = "1234" + + if loginInfo.id == correctId && loginInfo.pwd == correctPwd { + let idSaved = KeychainHelper.save(string: loginInfo.id, account: idAccount) + let pwdSaved = KeychainHelper.save(string: loginInfo.pwd, account: pwdAccount) + + if idSaved && pwdSaved { + print("Credentials saved to Keychain.") + self.userName = loginInfo.id + self.isLoggedIn = true + } else { + print("Failed to save credentials to Keychain.") + } + + } else { + print("Login failed: Incorrect ID or PWD.") + } + } + + func handleLogout() { + let idDeleted = KeychainHelper.delete(account: idAccount) + let pwdDeleted = KeychainHelper.delete(account: pwdAccount) + + if idDeleted && pwdDeleted { + print("Credentials deleted from Keychain.") + } else { + print("Could not delete credentials from Keychain.") + } + + self.isLoggedIn = false + self.userName = "" // 저장된 사용자 이름도 지웁니다. + } +} diff --git a/Sources/MainTabView.swift b/Sources/MainTabView.swift new file mode 100644 index 0000000..4749cf0 --- /dev/null +++ b/Sources/MainTabView.swift @@ -0,0 +1,35 @@ +// +// TabView.swift +// megabox +// +// Created by 문인성 on 10/8/25. +// + +import SwiftUI + +struct MainTabView: View { + var body: some View { + TabView { + Tab("홈" , systemImage: "house.fill") { + Home() + } + + Tab("바로 예매" , systemImage: "play.laptopcomputer") { + LoginView(viewModel: LoginViewModel()) + } + + Tab("모바일 오더" , systemImage: "popcorn") { + LoginView(viewModel: LoginViewModel()) + } + + Tab("마이 페이지" , systemImage: "person") { + UserInformation() + + } + } + } +} + +#Preview { + MainTabView() +} diff --git a/Sources/MegaboxApp.swift b/Sources/MegaboxApp.swift new file mode 100644 index 0000000..236b323 --- /dev/null +++ b/Sources/MegaboxApp.swift @@ -0,0 +1,28 @@ +import SwiftUI + +@main +struct YourApp: App { + + @StateObject private var viewModel = LoginViewModel() + + @State private var isSplashFinished: Bool = false + + var body: some Scene { + WindowGroup { + + if !isSplashFinished { + SplashView(isSplashFinished: $isSplashFinished) + + } else { + + if viewModel.isLoggedIn { + MainTabView() + .environmentObject(viewModel) + } else { + // (checkAutoLogin()이 실패했다면) + LoginView(viewModel: viewModel) + } + } + } + } +} diff --git a/Sources/Movie.swift b/Sources/Movie.swift new file mode 100644 index 0000000..24638d4 --- /dev/null +++ b/Sources/Movie.swift @@ -0,0 +1,15 @@ +// +// Movie.swift +// megabox +// +// Created by 문인성 on 10/9/25. +// + +import Foundation + +struct movie: Identifiable { + let id = UUID() + let title: String + let moviegoer: String + let imageNmae2: String +} diff --git a/Sources/MovieDetailView.swift b/Sources/MovieDetailView.swift new file mode 100644 index 0000000..c691185 --- /dev/null +++ b/Sources/MovieDetailView.swift @@ -0,0 +1,50 @@ +// +// MovieDeatailView.swift +// megabox +// +// Created by 문인성 on 10/9/25. +// + +import SwiftUI + +struct MovieDetailView: View { + let movie: Movie + + var body: some View { + ScrollView { + VStack(spacing: 20) { + Image(movie.imageName2) + .resizable() + .scaledToFit() + .frame(maxWidth: .infinity) + + Text("F1 더 무비") + Text("F1: The Movie") + Text(""" + 최고가 되지 못한 전설 VS 최고가 되고 싶은 루키 + 한때 주목받는 유망주였지만 끔찍한 사고로 F1에서 우승하지 못하고 + 한순간에 추락한 드라이버 ‘손; 헤이스'(브래드 피트). + 그의 오랜 동료인 ‘루벤 세르반테스'(하비에르 바르뎀)에게 + 레이싱 복귀를 제안받으며 최하위 팀인 APGXP에 합류한다. + """) + Spacer() + } + + } + .navigationTitle(movie.title) + .navigationBarTitleDisplayMode(.inline) + } +} + +#Preview { + let sampleMovie = Movie( + title: "F1 더 무비", + moviegoer: "누적관객수 10만", + imageName: "f1", + imageName2: "f1 2" + ) + + NavigationStack { + MovieDetailView(movie: sampleMovie) + } +} diff --git a/Sources/Reservation.swift b/Sources/Reservation.swift new file mode 100644 index 0000000..8f58f60 --- /dev/null +++ b/Sources/Reservation.swift @@ -0,0 +1,103 @@ +// +// Untitled.swift +// megabox +// +// Created by 문인성 on 10/9/25. +// + +import SwiftUI + +struct Reservation: View { + private let imageNames: [String] = [ + "poster1", + "poster2", + "poster3", + "poster4", + "poster5", + "poster6", + "poster7", + "poster8" + ] + + var body: some View { + ZStack { + Rectangle().fill(Color("purple04")) + .frame(height: 125) + Text("영화별 예매") + .foregroundStyle(Color.white) + } + + HStack { + ZStack { + + RoundedRectangle(cornerRadius: 20) + .fill(Color.orange) + .frame(width: 50, height: 50) + + Text("15") + .font(.bold24) + .multilineTextAlignment(.center) + .foregroundColor(.white) + } + .padding(.leading, 16) + + HStack { + Text("어쩔 수가 없다") + .font(.bold18) + .padding(.leading, 37) + Spacer() + Text("전체 영화") + .padding(10) + .background(.white) + .cornerRadius(8) + .overlay( + RoundedRectangle(cornerRadius: 8) + .inset(by: 0.5) + .stroke(Color(red: 0.84, green: 0.84, blue: 0.84), lineWidth: 1) + + ) + } + .padding(.trailing, 16) + + } + Spacer() + + VStack(alignment: .leading, spacing: 10) { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 15) { + ForEach(0..> 16) & 0xFF) / 255.0 + let g = Double((rgb >> 8) & 0xFF) / 255.0 + let b = Double((rgb >> 0) & 0xFF) / 255.0 + + self.init(red: r, green: g, blue: b) + } +} + + +#Preview { + UserInformation() + .environmentObject(LoginViewModel()) +} diff --git a/Sources/UserInformationManagement.swift b/Sources/UserInformationManagement.swift new file mode 100644 index 0000000..a88af3e --- /dev/null +++ b/Sources/UserInformationManagement.swift @@ -0,0 +1,87 @@ +// +// UserInformationMangement.swift +// megabox +// +// Created by 문인성 on 9/28/25. +// + +import SwiftUI + +struct UserInformationManagement: View { + + @AppStorage("saved_id") private var savedId: String = "" + @AppStorage("saved_name") private var savedName: String = "" + @State private var currentName: String = "" + + var body: some View { + VStack { + ZStack { + HStack { + Image(systemName: "arrow.left") + .resizable() + .scaledToFit() + .frame(width: 26, height: 22) + + Spacer() + } + + Text("회원정보 관리") + .font(.medium16) + } + .padding(.horizontal, 18) + .padding(.top, 44) + .padding(.bottom, 53) + + + + Text("기본정보") + .font(.bold18) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.leading, 16) + .padding(.bottom, 26) + + + VStack(alignment: .leading) { + HStack { + Text(savedId) + .font(.medium18) + .padding(.horizontal, 16) + } + + + Divider() + + HStack { + TextField(savedName, text: $currentName) + .foregroundStyle(.black) + .padding(.horizontal, 16) + + Button(action: { + savedName = currentName + }) { + Text("변경") + .foregroundStyle(Color("gray03")) + .frame(width: 38, height: 20) + .padding(.horizontal, 11) + .padding(.vertical, 5) + .background(.white) + .cornerRadius(16) + .overlay( + RoundedRectangle(cornerRadius: 16) + .stroke(Color(Color("gray02")), lineWidth: 1) + ) + } + } + Divider() + Spacer() + } + } + + + } +} + + +#Preview { + UserInformationManagement() +}