diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_01.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_01.imageset/Contents.json index c3f3e0f..e720717 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_01.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_01.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_01.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_01.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_010.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_010.imageset/Contents.json index decba56..1adb61c 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_010.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_010.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_010.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_010.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_011.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_011.imageset/Contents.json index 8b7a961..9c275c2 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_011.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_011.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_011.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_011.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_02.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_02.imageset/Contents.json index 2f3ab5c..29b6d7a 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_02.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_02.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_02.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_02.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_03.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_03.imageset/Contents.json index 1bb5447..f2cd717 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_03.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_03.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_03.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_03.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_04.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_04.imageset/Contents.json index ebcc599..5b409df 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_04.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_04.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_04.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_04.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_05.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_05.imageset/Contents.json index 94ea571..36d8b0f 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_05.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_05.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_05.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_05.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_06.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_06.imageset/Contents.json index a5e0bd3..7bffe60 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_06.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_06.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_06.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_06.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_07.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_07.imageset/Contents.json index 44ffa40..aa07899 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_07.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_07.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_07.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_07.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_08.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_08.imageset/Contents.json index 68d2e68..8b2281e 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_08.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_08.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_08.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_08.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_09.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_09.imageset/Contents.json index 73c69c8..3a859c1 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_09.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/42flip/42flip/42flip_09.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "42flip_09.png", - "idiom": "universal", - "scale": "2x" + "filename" : "42flip_09.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page0.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page0.imageset/Contents.json index 2e12dbe..f43efda 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page0.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page0.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "cat0.png", - "idiom": "universal", - "scale": "2x" + "filename" : "cat0.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page1.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page1.imageset/Contents.json index 1c2d433..2ae8956 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page1.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page1.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "cat1.png", - "idiom": "universal", - "scale": "2x" + "filename" : "cat1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page2.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page2.imageset/Contents.json index 5a36dbe..643ddc8 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page2.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page2.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "cat2.png", - "idiom": "universal", - "scale": "2x" + "filename" : "cat2.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page3.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page3.imageset/Contents.json index 59c27aa..e09cac4 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page3.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page3.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "cat3.png", - "idiom": "universal", - "scale": "2x" + "filename" : "cat3.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page4.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page4.imageset/Contents.json index fa18c78..7dfe11e 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page4.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/cat/cat_page4.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "cat4.png", - "idiom": "universal", - "scale": "2x" + "filename" : "cat4.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page0.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page0.imageset/Contents.json index 9d2d8fb..de4782f 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page0.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page0.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "fox0.png", - "idiom": "universal", - "scale": "2x" + "filename" : "fox0.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page1.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page1.imageset/Contents.json index 28696dd..3efa561 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page1.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page1.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "fox1.png", - "idiom": "universal", - "scale": "2x" + "filename" : "fox1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page2.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page2.imageset/Contents.json index 9054a45..9e46b91 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page2.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page2.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "fox2.png", - "idiom": "universal", - "scale": "2x" + "filename" : "fox2.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page3.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page3.imageset/Contents.json index c5f7545..ea3a111 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page3.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page3.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "fox3.png", - "idiom": "universal", - "scale": "2x" + "filename" : "fox3.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page4.imageset/Contents.json b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page4.imageset/Contents.json index db0dfe4..a772154 100644 --- a/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page4.imageset/Contents.json +++ b/iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page4.imageset/Contents.json @@ -1,20 +1,24 @@ { - "images": [ + "images" : [ { - "idiom": "universal", - "scale": "1x" + "idiom" : "universal", + "scale" : "1x" }, { - "filename": "fox4.png", - "idiom": "universal", - "scale": "2x" + "filename" : "fox4.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" } ], - "info": { - "author": "xcode", - "version": 1 + "info" : { + "author" : "xcode", + "version" : 1 }, - "properties": { - "template-rendering-intent": "template" + "properties" : { + "template-rendering-intent" : "template" } -} \ No newline at end of file +} diff --git a/iBox/Sources/Main/MainTabBarController.swift b/iBox/Sources/Main/MainTabBarController.swift index 6f6404b..625d21d 100644 --- a/iBox/Sources/Main/MainTabBarController.swift +++ b/iBox/Sources/Main/MainTabBarController.swift @@ -28,7 +28,7 @@ class MainTabBarController: UITabBarController { viewControllers = [ setupViewController(viewController: BoxListViewController(), image: UIImage(systemName: "square.grid.2x2.fill")), setupViewController(viewController: FavoriteViewController(), image: UIImage(systemName: "heart.fill")), - setupViewController(viewController: MyPageViewController(), image: UIImage(systemName: "person.fill")) + setupViewController(viewController: SettingsViewController(), image: UIImage(systemName: "gearshape.fill")) ] tabBar.tintColor = .box tabBar.backgroundColor = .backgroundColor @@ -46,14 +46,16 @@ class MainTabBarController: UITabBarController { appearance.setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.clear], for: .normal) appearance.setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.clear], for: .selected) } - + } extension MainTabBarController: UITabBarControllerDelegate { + func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { if tabBarController.selectedIndex == 1 && previousTabIndex == 1 { WebViewPreloader.shared.resetFavoriteView() } previousTabIndex = tabBarController.selectedIndex } + } diff --git a/iBox/Sources/Model/MyPageItem.swift b/iBox/Sources/Model/SettingsItem.swift similarity index 62% rename from iBox/Sources/Model/MyPageItem.swift rename to iBox/Sources/Model/SettingsItem.swift index 790c1c1..d725301 100644 --- a/iBox/Sources/Model/MyPageItem.swift +++ b/iBox/Sources/Model/SettingsItem.swift @@ -1,5 +1,5 @@ // -// MyPageItem.swift +// SettingsItem.swift // iBox // // Created by jiyeon on 1/3/24. @@ -7,29 +7,29 @@ import Foundation -enum MyPageType { +enum SettingsType { case theme case homeTab case preload + case reset case guide case feedback - case developer func toString() -> String { switch self { case .theme: "테마" case .homeTab: "홈화면" - case .preload: "페이지 미리 로드" - case .guide: "이용 가이드" + case .preload: "즐겨찾기 미리 로드" + case .reset: "데이터 초기화" + case .guide: "앱 소개" case .feedback: "앱 피드백" - case .developer: "개발자 정보" } } } -struct MyPageItem { - var type: MyPageType +struct SettingsItem { + var type: SettingsType var description: String? var flag: Bool? } diff --git a/iBox/Sources/MyPage/MyPageCellViewModel.swift b/iBox/Sources/MyPage/MyPageCellViewModel.swift deleted file mode 100644 index 77a77c4..0000000 --- a/iBox/Sources/MyPage/MyPageCellViewModel.swift +++ /dev/null @@ -1,30 +0,0 @@ -// -// MyPageCellViewModel.swift -// iBox -// -// Created by jiyeon on 2/22/24. -// - -import Foundation - -class MyPageCellViewModel { - - let myPageItem: MyPageItem - - init(_ myPageItem: MyPageItem) { - self.myPageItem = myPageItem - } - - var title: String { - myPageItem.type.toString() - } - - var flag: Bool? { - myPageItem.flag - } - - var description: String? { - myPageItem.description - } - -} diff --git a/iBox/Sources/MyPage/MyPageSectionViewModel.swift b/iBox/Sources/MyPage/MyPageSectionViewModel.swift deleted file mode 100644 index 53b2a81..0000000 --- a/iBox/Sources/MyPage/MyPageSectionViewModel.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// MyPageSectionViewModel.swift -// iBox -// -// Created by jiyeon on 2/22/24. -// - -import Foundation - -class MyPageSectionViewModel { - - let cellViewModels: [MyPageCellViewModel] - - init(cellViewModels: [MyPageCellViewModel]) { - self.cellViewModels = cellViewModels - } - -} diff --git a/iBox/Sources/MyPage/Profile/ProfileView.swift b/iBox/Sources/MyPage/Profile/ProfileView.swift deleted file mode 100644 index c209b83..0000000 --- a/iBox/Sources/MyPage/Profile/ProfileView.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// ProfileView.swift -// iBox -// -// Created by jiyeon on 1/3/24. -// - -import UIKit - -class ProfileView: UIView { - -} diff --git a/iBox/Sources/MyPage/Profile/ProfileViewController.swift b/iBox/Sources/MyPage/Profile/ProfileViewController.swift deleted file mode 100644 index a60cdef..0000000 --- a/iBox/Sources/MyPage/Profile/ProfileViewController.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// ProfileViewController.swift -// iBox -// -// Created by jiyeon on 1/3/24. -// - -import UIKit - -class ProfileViewController: BaseViewController, BaseViewControllerProtocol { - - // MARK: - Life Cycle - - override func viewDidLoad() { - super.viewDidLoad() - setupNavigationBar() - } - - // MARK: - BaseViewControllerProtocol - - func setupNavigationBar() { - setNavigationBarTitleLabelText("내 정보 수정하기") - setNavigationBarTitleLabelFont(.systemFont(ofSize: 17, weight: .semibold)) - setNavigationBarBackButtonHidden(false) - } - -} diff --git a/iBox/Sources/MyPage/HomeTab/HomeTabSelectorCell.swift b/iBox/Sources/Settings/HomeTab/HomeTabSelectorCell.swift similarity index 100% rename from iBox/Sources/MyPage/HomeTab/HomeTabSelectorCell.swift rename to iBox/Sources/Settings/HomeTab/HomeTabSelectorCell.swift diff --git a/iBox/Sources/MyPage/HomeTab/HomeTabSelectorView.swift b/iBox/Sources/Settings/HomeTab/HomeTabSelectorView.swift similarity index 100% rename from iBox/Sources/MyPage/HomeTab/HomeTabSelectorView.swift rename to iBox/Sources/Settings/HomeTab/HomeTabSelectorView.swift diff --git a/iBox/Sources/MyPage/HomeTab/HomeTabSelectorViewController.swift b/iBox/Sources/Settings/HomeTab/HomeTabSelectorViewController.swift similarity index 100% rename from iBox/Sources/MyPage/HomeTab/HomeTabSelectorViewController.swift rename to iBox/Sources/Settings/HomeTab/HomeTabSelectorViewController.swift diff --git a/iBox/Sources/MyPage/HomeTab/HomeTabSelectorViewModel.swift b/iBox/Sources/Settings/HomeTab/HomeTabSelectorViewModel.swift similarity index 100% rename from iBox/Sources/MyPage/HomeTab/HomeTabSelectorViewModel.swift rename to iBox/Sources/Settings/HomeTab/HomeTabSelectorViewModel.swift diff --git a/iBox/Sources/Settings/Reset/ResetView.swift b/iBox/Sources/Settings/Reset/ResetView.swift new file mode 100644 index 0000000..9f18044 --- /dev/null +++ b/iBox/Sources/Settings/Reset/ResetView.swift @@ -0,0 +1,73 @@ +// +// ResetView.swift +// iBox +// +// Created by jiyeon on 3/14/24. +// + +import UIKit + +import SnapKit + +class ResetView: UIView { + + var delegate: ResetViewDelegate? + + // MARK: - UI Components + + let label = UILabel().then { + $0.text = "경고: 이 작업을 진행하면 저장하신 모든 폴더 및 북마크 정보가 영구적으로 삭제되고 기본값으로 초기화됩니다. 진행하기 전에 중요한 정보가 없는지 다시 한번 확인해 주시기 바랍니다." + $0.numberOfLines = 0 + $0.font = .systemFont(ofSize: 15) + } + + let resetButton = UIButton().then { + $0.configuration = .plain() + $0.configuration?.attributedTitle = .init("초기화", attributes: .init([.font: UIFont.boldSystemFont(ofSize: 15)])) + $0.tintColor = .white + $0.backgroundColor = .box + $0.clipsToBounds = true + $0.layer.cornerRadius = 5 + } + + // MARK: - Initializer + + override init(frame: CGRect) { + super.init(frame: frame) + setupProperty() + setupHierarchy() + setupLayout() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - Setup Methods + + private func setupProperty() { + resetButton.addTarget(self, action: #selector(handleResetButtonTap), for: .touchUpInside) + } + + private func setupHierarchy() { + addSubview(label) + addSubview(resetButton) + } + + private func setupLayout() { + label.snp.makeConstraints { make in + make.top.leading.trailing.equalToSuperview().inset(20) + } + + resetButton.snp.makeConstraints { make in + make.top.equalTo(label.snp.bottom).offset(20) + make.trailing.leading.equalToSuperview().inset(20) + make.height.equalTo(44) + } + } + + @objc private func handleResetButtonTap() { + delegate?.showAlert() + } + +} diff --git a/iBox/Sources/Settings/Reset/ResetViewController.swift b/iBox/Sources/Settings/Reset/ResetViewController.swift new file mode 100644 index 0000000..d593220 --- /dev/null +++ b/iBox/Sources/Settings/Reset/ResetViewController.swift @@ -0,0 +1,58 @@ +// +// ResetViewController.swift +// iBox +// +// Created by jiyeon on 3/14/24. +// + +import UIKit + +protocol ResetViewDelegate { + func showAlert() +} + +class ResetViewController: BaseViewController, BaseViewControllerProtocol { + + // MARK: - Life Cycle + + override func viewDidLoad() { + super.viewDidLoad() + setupNavigationBar() + + guard let contentView = contentView as? ResetView else { return } + contentView.delegate = self + } + + // MARK: - BaseViewControllerProtocol + + func setupNavigationBar() { + setNavigationBarTitleLabelText("데이터 초기화") + setNavigationBarTitleLabelFont(.systemFont(ofSize: 17, weight: .semibold)) + setNavigationBarBackButtonHidden(false) + } + +} + +extension ResetViewController: ResetViewDelegate { + + func showAlert() { + let alertController = UIAlertController(title: "경고", message: "이 작업은 되돌릴 수 없습니다. 계속하려면 \"iBox\"라고 입력해 주세요.", preferredStyle: .alert) + alertController.addTextField() + + let cancelAction = UIAlertAction(title: "취소", style: .cancel, handler: nil) + alertController.addAction(cancelAction) + + let confirmAction = UIAlertAction(title: "확인", style: .default) { _ in + if let textField = alertController.textFields?.first, let text = textField.text, text == "iBox" { + print("정말로 초기화를 해버렷당") + self.navigationController?.popViewController(animated: true) + } else { + self.showAlert() + } + } + alertController.addAction(confirmAction) + + self.present(alertController, animated: true, completion: nil) + } + +} diff --git a/iBox/Sources/Settings/SettingsCellViewModel.swift b/iBox/Sources/Settings/SettingsCellViewModel.swift new file mode 100644 index 0000000..bd39065 --- /dev/null +++ b/iBox/Sources/Settings/SettingsCellViewModel.swift @@ -0,0 +1,30 @@ +// +// SettingsCellViewModel.swift +// iBox +// +// Created by jiyeon on 2/22/24. +// + +import Foundation + +class SettingsCellViewModel { + + let settingsItem: SettingsItem + + init(_ settingsItem: SettingsItem) { + self.settingsItem = settingsItem + } + + var title: String { + settingsItem.type.toString() + } + + var flag: Bool? { + settingsItem.flag + } + + var description: String? { + settingsItem.description + } + +} diff --git a/iBox/Sources/MyPage/MyPageItemCell.swift b/iBox/Sources/Settings/SettingsItemCell.swift similarity index 92% rename from iBox/Sources/MyPage/MyPageItemCell.swift rename to iBox/Sources/Settings/SettingsItemCell.swift index a8d29ad..b60df42 100644 --- a/iBox/Sources/MyPage/MyPageItemCell.swift +++ b/iBox/Sources/Settings/SettingsItemCell.swift @@ -1,5 +1,5 @@ // -// MyPageItemCell.swift +// SettingsItemCell.swift // iBox // // Created by jiyeon on 1/3/24. @@ -9,10 +9,10 @@ import UIKit import SnapKit -class MyPageItemCell: UITableViewCell { +class SettingsItemCell: UITableViewCell { - static let reuseIdentifier = "MyPageItemCell" - private var viewModel: MyPageCellViewModel? + static let reuseIdentifier = "SettingsItemCell" + private var viewModel: SettingsCellViewModel? // MARK: - UI Components @@ -87,7 +87,7 @@ class MyPageItemCell: UITableViewCell { // MARK: - Bind ViewModel - func bindViewModel(_ viewModel: MyPageCellViewModel) { + func bindViewModel(_ viewModel: SettingsCellViewModel) { self.viewModel = viewModel titleLabel.text = viewModel.title diff --git a/iBox/Sources/Settings/SettingsSectionViewModel.swift b/iBox/Sources/Settings/SettingsSectionViewModel.swift new file mode 100644 index 0000000..63efe2f --- /dev/null +++ b/iBox/Sources/Settings/SettingsSectionViewModel.swift @@ -0,0 +1,18 @@ +// +// SettingsSectionViewModel.swift +// iBox +// +// Created by jiyeon on 2/22/24. +// + +import Foundation + +class SettingsSectionViewModel { + + let cellViewModels: [SettingsCellViewModel] + + init(cellViewModels: [SettingsCellViewModel]) { + self.cellViewModels = cellViewModels + } + +} diff --git a/iBox/Sources/MyPage/MyPageView.swift b/iBox/Sources/Settings/SettingsView.swift similarity index 54% rename from iBox/Sources/MyPage/MyPageView.swift rename to iBox/Sources/Settings/SettingsView.swift index 8e75fd9..e1fe94c 100644 --- a/iBox/Sources/MyPage/MyPageView.swift +++ b/iBox/Sources/Settings/SettingsView.swift @@ -1,5 +1,5 @@ // -// ProfileView.swift +// SettingsView.swift // iBox // // Created by jiyeon on 1/3/24. @@ -8,37 +8,16 @@ import Combine import UIKit -final class MyPageView: UIView { +final class SettingsView: UIView { - var delegate: MyPageViewDelegate? - private var viewModel: MyPageViewModel? + var delegate: SettingsViewDelegate? + private var viewModel: SettingsViewModel? private var cancellables = Set() // MARK: - UI Components - - let profileView = UIView().then { - $0.isUserInteractionEnabled = true - } - - let profileImageView = UIImageView().then { - $0.image = UIImage(systemName: "person.crop.circle") - $0.tintColor = .box2 - } - - let profileLabel = UILabel().then { - $0.text = "예시입니당" - $0.font = .systemFont(ofSize: 17, weight: .semibold) - } - - let chevronButton = UIButton().then { - $0.configuration = .plain() - $0.configuration?.image = UIImage(systemName: "chevron.right") - $0.configuration?.preferredSymbolConfigurationForImage = .init(pointSize: 10, weight: .bold) - $0.tintColor = .systemGray3 - } let tableView = UITableView().then { - $0.register(MyPageItemCell.self, forCellReuseIdentifier: MyPageItemCell.reuseIdentifier) + $0.register(SettingsItemCell.self, forCellReuseIdentifier: SettingsItemCell.reuseIdentifier) $0.separatorStyle = .none $0.sectionHeaderTopPadding = 0 $0.backgroundColor = .clear @@ -62,55 +41,21 @@ final class MyPageView: UIView { private func setupProperty() { tableView.delegate = self tableView.dataSource = self - - profileView.addGestureRecognizer( - UITapGestureRecognizer( - target: self, - action: #selector(profileViewTapped) - ) - ) } private func setupHierarchy() { - addSubview(profileView) - profileView.addSubview(profileImageView) - profileView.addSubview(profileLabel) - profileView.addSubview(chevronButton) addSubview(tableView) } private func setupLayout() { - profileView.snp.makeConstraints { make in - make.leading.top.trailing.equalToSuperview() - make.height.equalTo(90) - } - - profileImageView.snp.makeConstraints { make in - make.leading.equalToSuperview().inset(20) - make.centerY.equalToSuperview() - make.width.height.equalTo(50) - } - - profileLabel.snp.makeConstraints { make in - make.leading.equalTo(profileImageView.snp.trailing).offset(10) - make.centerY.equalToSuperview() - } - - chevronButton.snp.makeConstraints { make in - make.trailing.equalToSuperview().inset(30) - make.centerY.equalToSuperview() - make.width.height.equalTo(20) - } - tableView.snp.makeConstraints { make in - make.top.equalTo(profileView.snp.bottom).offset(10) - make.leading.bottom.trailing.equalToSuperview() + make.edges.equalToSuperview() } } // MARK: - Bind ViewModel - func bindViewModel(_ viewModel: MyPageViewModel) { + func bindViewModel(_ viewModel: SettingsViewModel) { self.viewModel = viewModel viewModel.transform(input: viewModel.input.eraseToAnyPublisher()) .receive(on: RunLoop.main) @@ -124,10 +69,6 @@ final class MyPageView: UIView { // MARK: - Action Functions - @objc private func profileViewTapped() { - delegate?.pushViewController(ProfileViewController()) - } - @objc private func handleSwitchControlTap(_ controlSwitch: UISwitch) { guard let viewModel = viewModel else { return } viewModel.input.send(.setPreload(controlSwitch.isOn)) @@ -135,7 +76,7 @@ final class MyPageView: UIView { } -extension MyPageView: UITableViewDelegate { +extension SettingsView: UITableViewDelegate { func numberOfSections(in tableView: UITableView) -> Int { guard let viewModel = viewModel else { return 0 } @@ -158,15 +99,15 @@ extension MyPageView: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { guard let viewModel = viewModel else { return } - let myPageItem = viewModel.sectionViewModels[indexPath.section].cellViewModels[indexPath.row].myPageItem - if (myPageItem.type != MyPageType.preload) { - delegate?.pushViewController(myPageItem.type) + let settingsItem = viewModel.sectionViewModels[indexPath.section].cellViewModels[indexPath.row].settingsItem + if (settingsItem.type != SettingsType.preload) { + delegate?.pushViewController(settingsItem.type) } } } -extension MyPageView: UITableViewDataSource { +extension SettingsView: UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { guard let viewModel = viewModel else { return 0 } @@ -175,8 +116,8 @@ extension MyPageView: UITableViewDataSource { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let viewModel = viewModel, - let cell = tableView.dequeueReusableCell(withIdentifier: MyPageItemCell.reuseIdentifier) - as? MyPageItemCell else { return UITableViewCell() } + let cell = tableView.dequeueReusableCell(withIdentifier: SettingsItemCell.reuseIdentifier) + as? SettingsItemCell else { return UITableViewCell() } let cellViewModel = viewModel.sectionViewModels[indexPath.section].cellViewModels[indexPath.row] cell.bindViewModel(cellViewModel) if cellViewModel.flag != nil { diff --git a/iBox/Sources/MyPage/MyPageViewController.swift b/iBox/Sources/Settings/SettingsViewController.swift similarity index 64% rename from iBox/Sources/MyPage/MyPageViewController.swift rename to iBox/Sources/Settings/SettingsViewController.swift index 6b8e56c..bd753ad 100644 --- a/iBox/Sources/MyPage/MyPageViewController.swift +++ b/iBox/Sources/Settings/SettingsViewController.swift @@ -1,5 +1,5 @@ // -// MyPageViewController.swift +// SettingsViewController.swift // iBox // // Created by 이지현 on 12/27/23. @@ -7,14 +7,14 @@ import UIKit -protocol MyPageViewDelegate { - func pushViewController(_ type: MyPageType) +protocol SettingsViewDelegate { + func pushViewController(_ type: SettingsType) func pushViewController(_ viewController: UIViewController) } -final class MyPageViewController: BaseViewController, BaseViewControllerProtocol { +final class SettingsViewController: BaseViewController, BaseViewControllerProtocol { - private let viewModel = MyPageViewModel() + private let viewModel = SettingsViewModel() // MARK: - Life Cycle @@ -22,7 +22,7 @@ final class MyPageViewController: BaseViewController, BaseViewContro super.viewDidLoad() setupNavigationBar() - guard let contentView = contentView as? MyPageView else { return } + guard let contentView = contentView as? SettingsView else { return } contentView.delegate = self contentView.bindViewModel(viewModel) } @@ -35,25 +35,25 @@ final class MyPageViewController: BaseViewController, BaseViewContro // MARK: - BaseViewControllerProtocol func setupNavigationBar() { - setNavigationBarTitleLabelText("마이 페이지") + setNavigationBarTitleLabelText("설정") } } -extension MyPageViewController: MyPageViewDelegate { +extension SettingsViewController: SettingsViewDelegate { - func pushViewController(_ type: MyPageType) { + func pushViewController(_ type: SettingsType) { switch type { case .theme: navigationController?.pushViewController(ThemeViewController(), animated: true) case .homeTab: navigationController?.pushViewController(HomeTabSelectorViewController(), animated: true) + case .reset: + navigationController?.pushViewController(ResetViewController(), animated: true) case .guide: - print("이용 가이드 탭 !") + print("앱 소개 탭 !") case .feedback: print("앱 피드백 탭 !") - case .developer: - print("개발자 정보 탭 !") default: break } } diff --git a/iBox/Sources/MyPage/MyPageViewModel.swift b/iBox/Sources/Settings/SettingsViewModel.swift similarity index 57% rename from iBox/Sources/MyPage/MyPageViewModel.swift rename to iBox/Sources/Settings/SettingsViewModel.swift index f388ac2..a6fbda4 100644 --- a/iBox/Sources/MyPage/MyPageViewModel.swift +++ b/iBox/Sources/Settings/SettingsViewModel.swift @@ -1,5 +1,5 @@ // -// MyPageViewModel.swift +// SettingsViewModel.swift // iBox // // Created by jiyeon on 2/22/24. @@ -8,7 +8,7 @@ import Combine import Foundation -class MyPageViewModel { +class SettingsViewModel { enum Input { case viewWillAppear @@ -24,7 +24,7 @@ class MyPageViewModel { let input = PassthroughSubject() private let output = PassthroughSubject() private var cancellables = Set() - var sectionViewModels = [MyPageSectionViewModel]() + var sectionViewModels = [SettingsSectionViewModel]() func transform(input: AnyPublisher) -> AnyPublisher { input.sink { [weak self] event in @@ -41,15 +41,15 @@ class MyPageViewModel { } private func updateSectionViewModels() { - sectionViewModels.append(MyPageSectionViewModel(cellViewModels: [ - MyPageCellViewModel(MyPageItem(type: .theme, description: UserDefaultsManager.theme.toString())), - MyPageCellViewModel(MyPageItem(type: .homeTab, description: HomeTabType.allCases[UserDefaultsManager.homeTabIndex].toString())), - MyPageCellViewModel(MyPageItem(type: .preload, flag: UserDefaultsManager.isPreload)) + sectionViewModels.append(SettingsSectionViewModel(cellViewModels: [ + SettingsCellViewModel(SettingsItem(type: .theme, description: UserDefaultsManager.theme.toString())), + SettingsCellViewModel(SettingsItem(type: .homeTab, description: HomeTabType.allCases[UserDefaultsManager.homeTabIndex].toString())), + SettingsCellViewModel(SettingsItem(type: .preload, flag: UserDefaultsManager.isPreload)) ])) - sectionViewModels.append(MyPageSectionViewModel(cellViewModels: [ - MyPageCellViewModel(MyPageItem(type: .guide)), - MyPageCellViewModel(MyPageItem(type: .feedback)), - MyPageCellViewModel(MyPageItem(type: .developer)) + sectionViewModels.append(SettingsSectionViewModel(cellViewModels: [ + SettingsCellViewModel(SettingsItem(type: .reset)), + SettingsCellViewModel(SettingsItem(type: .guide)), + SettingsCellViewModel(SettingsItem(type: .feedback)) ])) } diff --git a/iBox/Sources/MyPage/Theme/ThemeCell.swift b/iBox/Sources/Settings/Theme/ThemeCell.swift similarity index 100% rename from iBox/Sources/MyPage/Theme/ThemeCell.swift rename to iBox/Sources/Settings/Theme/ThemeCell.swift diff --git a/iBox/Sources/MyPage/Theme/ThemeView.swift b/iBox/Sources/Settings/Theme/ThemeView.swift similarity index 100% rename from iBox/Sources/MyPage/Theme/ThemeView.swift rename to iBox/Sources/Settings/Theme/ThemeView.swift diff --git a/iBox/Sources/MyPage/Theme/ThemeViewController.swift b/iBox/Sources/Settings/Theme/ThemeViewController.swift similarity index 100% rename from iBox/Sources/MyPage/Theme/ThemeViewController.swift rename to iBox/Sources/Settings/Theme/ThemeViewController.swift diff --git a/iBox/Sources/MyPage/Theme/ThemeViewModel.swift b/iBox/Sources/Settings/Theme/ThemeViewModel.swift similarity index 100% rename from iBox/Sources/MyPage/Theme/ThemeViewModel.swift rename to iBox/Sources/Settings/Theme/ThemeViewModel.swift