Skip to content

Commit

Permalink
feat: module factory를 위한 util 추가 (TeamNADA#371)
Browse files Browse the repository at this point in the history
  • Loading branch information
dlwns33 committed Mar 12, 2023
1 parent a27b536 commit 3d49837
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 1 deletion.
4 changes: 4 additions & 0 deletions NADA-iOS-forRelease.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
77A4D60129BD708C00367B7C /* AroundMeResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A4D60029BD708C00367B7C /* AroundMeResponse.swift */; };
77A4D60429BD743600367B7C /* ModuleFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A4D60329BD743600367B7C /* ModuleFactory.swift */; };
77A4D60629BD747300367B7C /* controllerFromStoryBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A4D60529BD747300367B7C /* controllerFromStoryBoard.swift */; };
77A4D60829BD74BC00367B7C /* getClassName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A4D60729BD74BC00367B7C /* getClassName.swift */; };
77AA68EA273E0EC4009C89B0 /* CardAddInGroupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */; };
77B4E7482990E420006098DC /* Home.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 77B4E7472990E420006098DC /* Home.storyboard */; };
77B4E74B2990E50E006098DC /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77B4E74A2990E50E006098DC /* HomeViewController.swift */; };
Expand Down Expand Up @@ -323,6 +324,7 @@
77A4D60029BD708C00367B7C /* AroundMeResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AroundMeResponse.swift; sourceTree = "<group>"; };
77A4D60329BD743600367B7C /* ModuleFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModuleFactory.swift; sourceTree = "<group>"; };
77A4D60529BD747300367B7C /* controllerFromStoryBoard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = controllerFromStoryBoard.swift; sourceTree = "<group>"; };
77A4D60729BD74BC00367B7C /* getClassName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getClassName.swift; sourceTree = "<group>"; };
77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardAddInGroupRequest.swift; sourceTree = "<group>"; };
77B4E7422990E00B006098DC /* Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
77B4E7432990E015006098DC /* Beta.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Beta.xcconfig; sourceTree = "<group>"; };
Expand Down Expand Up @@ -744,6 +746,7 @@
isa = PBXGroup;
children = (
77A4D5EA29AE20CB00367B7C /* makeVibrate.swift */,
77A4D60729BD74BC00367B7C /* getClassName.swift */,
);
path = Utils;
sourceTree = "<group>";
Expand Down Expand Up @@ -1612,6 +1615,7 @@
39523E09270184A700536900 /* CardListViewController.swift in Sources */,
F85711A5274A6B2200F59F0B /* CardCreationPreviewViewController.swift in Sources */,
39DC069A2778BEFB00C8ECCC /* CardListLookUp.swift in Sources */,
77A4D60829BD74BC00367B7C /* getClassName.swift in Sources */,
777FF89B27359B7800BF69D3 /* Groups.swift in Sources */,
77F47D93276C79B600414659 /* Header.swift in Sources */,
397B75102763A5F5004AEB03 /* OpenSourceViewController.swift in Sources */,
Expand Down
36 changes: 36 additions & 0 deletions NADA-iOS-forRelease/Resouces/Constants/Storyboard.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,42 @@
//

import Foundation
import UIKit

/*
- Description:
enum형태로 Storybaords 값을 안전하게 가져오기 위해 사용합니다.
스토리보드를 추가할때마다 case 과 값을 추가하면 됩니다!
- UIStoryboard.list(.base)와 같이 사용
@creds to Song jihun (github: https://github.com/i-colours-u)
*/

enum Storyboards: String {
case cardCreation = "CardCreation"
case login = "Login"
case cardList = "CardList"
case front = "Front"
case group = "Group"
case groupEdit = "GroupEdit"
case qrScan = "QRScan"
case cardDetail = "CardDetail"
case cardHarmony = "CardHarmony"
case tabBar = "TabBar"
case cardCreationPreview = "CardCreationPreview"
case more = "More"
case splash = "Splash"
case onboarding = "Onboarding"
case openSource = "OpenSource"
case teamNADA = "TeamNADA"
}

extension UIStoryboard {
static func list(_ name: Storyboards) -> UIStoryboard {
return UIStoryboard(name: name.rawValue, bundle: nil)
}
}

extension Const {
struct Storyboard {
Expand Down
28 changes: 28 additions & 0 deletions NADA-iOS-forRelease/Resouces/Utils/getClassName.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//
// getClassName.swift
// NADA-iOS-forRelease
//
// Created by Yi Joon Choi on 2023/03/12.
//

import Foundation
import UIKit

/*
- Description:
각 VC,TVC,CVC의 className을 String으로 가져올 수 있도록 연산 프로퍼티를 설정합니다.
요 값들은 나중에 Identifier에 잘 써먹을 수 있습니다.
@creds to Song jihun (github: https://github.com/i-colours-u)
*/

extension NSObject {

static var className: String {
NSStringFromClass(self.classForCoder()).components(separatedBy: ".").last!
}
var className: String {
NSStringFromClass(self.classForCoder).components(separatedBy: ".").last!
}
}
6 changes: 5 additions & 1 deletion NADA-iOS-forRelease/Sources/Factory/ModuleFactory.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,14 @@ import UIKit
/*
- 사용법:
1) ModuelFactoryProtocol에 넘겨야할 VC를 메서드 형태로 정의만 한다.
2) ModuleFactory를 extension해서 구현해야 할 부분을 직접 작성한다.
controllerFromStoryboard(익스텐션)를 활용해서 인스턴스를 생성한다
-> storyboard를 사용하지 않으면 가져오지 않고 뷰컨 자체를 가지고 오면 될 것 같다
-> storyboard를 사용하지 않으면 가져오지 않고 뷰컨 자체를 가지고 오면 된다.
3) 각각 필요한 VC내에서 MoudleFactory를 가지고 뷰컨을 가져오면 끝!
@creds to Song jihun (github: https://github.com/i-colours-u)
*/

protocol ModuleFactoryProtocol {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import UIKit
다음 메서드는 ModuleFactory에서 사용됩니다.
@creds to Song jihun (github: https://github.com/i-colours-u)
*/

extension UIViewController {
Expand Down

0 comments on commit 3d49837

Please sign in to comment.